[python-fabio] 11/31: Imported Upstream version 0.1.3

Frédéric-Emmanuel Picca picca at moszumanska.debian.org
Fri Dec 27 19:05:46 UTC 2013


This is an automated email from the git hooks/post-receive script.

picca pushed a commit to branch master
in repository python-fabio.

commit c7cde110ccd74f27fc53ba0688efc07e2fa8a2be
Author: Jerome Kieffer <jerome.kieffer at terre-adelie.org>
Date:   Sun Oct 27 21:36:04 2013 +0100

    Imported Upstream version 0.1.3
---
 MANIFEST.in                                        |   15 +-
 PKG-INFO                                           |   23 +-
 README.TXT                                         |  212 -
 README.txt                                         |  121 +
 build-deb.sh                                       |   10 -
 doc/Makefile                                       |  130 +
 doc/html/.buildinfo                                |    4 +
 doc/html/Changelog.html                            |  196 +
 doc/html/INSTALL.html                              |  221 +
 doc/html/_modules/fabio/GEimage.html               |  428 +
 doc/html/_modules/fabio/HiPiCimage.html            |  199 +
 doc/html/_modules/fabio/OXDimage.html              |  537 ++
 doc/html/_modules/fabio/TiffIO.html                | 1290 +++
 doc/html/_modules/fabio/adscimage.html             |  231 +
 doc/html/_modules/fabio/binaryimage.html           |  196 +
 doc/html/_modules/fabio/bruker100image.html        |  190 +
 doc/html/_modules/fabio/brukerimage.html           |  513 ++
 doc/html/_modules/fabio/cbfimage.html              |  852 ++
 doc/html/_modules/fabio/compression.html           |  515 ++
 doc/html/_modules/fabio/converters.html            |  148 +
 doc/html/_modules/fabio/datIO.html                 |  152 +
 doc/html/_modules/fabio/dm3image.html              |  312 +
 doc/html/_modules/fabio/edfimage.html              | 1027 +++
 doc/html/_modules/fabio/fabioimage.html            |  651 ++
 doc/html/_modules/fabio/fabioutils.html            |  668 ++
 doc/html/_modules/fabio/file_series.html           |  496 ++
 doc/html/_modules/fabio/fit2dmaskimage.html        |  188 +
 doc/html/_modules/fabio/fit2dspreadsheetimage.html |  177 +
 doc/html/_modules/fabio/kcdimage.html              |  225 +
 doc/html/_modules/fabio/mar345image.html           |  420 +
 doc/html/_modules/fabio/marccdimage.html           |  407 +
 doc/html/_modules/fabio/openimage.html             |  251 +
 doc/html/_modules/fabio/pilatusimage.html          |  175 +
 doc/html/_modules/fabio/pnmimage.html              |  259 +
 doc/html/_modules/fabio/readbytestream.html        |  180 +
 doc/html/_modules/fabio/tifimage.html              |  383 +
 doc/html/_modules/fabio/xsdimage.html              |  224 +
 doc/html/_modules/index.html                       |  119 +
 doc/html/_sources/Changelog.txt                    |   53 +
 doc/html/_sources/INSTALL.txt                      |  126 +
 doc/html/_sources/api/fabio.txt                    |   11 +
 doc/html/_sources/api/modules.txt                  |  242 +
 doc/html/_sources/getting_started.txt              |  294 +
 doc/html/_sources/index.txt                        |   26 +
 doc/html/_static/ajax-loader.gif                   |  Bin 0 -> 673 bytes
 doc/html/_static/basic.css                         |  417 +
 doc/html/_static/comment-bright.png                |  Bin 0 -> 3500 bytes
 doc/html/_static/comment-close.png                 |  Bin 0 -> 3578 bytes
 doc/html/_static/comment.png                       |  Bin 0 -> 3445 bytes
 doc/html/_static/default.css                       |  256 +
 doc/html/_static/doctools.js                       |  247 +
 doc/html/_static/down-pressed.png                  |  Bin 0 -> 368 bytes
 doc/html/_static/down.png                          |  Bin 0 -> 363 bytes
 doc/html/_static/file.png                          |  Bin 0 -> 392 bytes
 doc/html/_static/jquery.js                         | 9404 ++++++++++++++++++++
 doc/html/_static/minus.png                         |  Bin 0 -> 199 bytes
 doc/html/_static/placeholder                       |    1 +
 doc/html/_static/plus.png                          |  Bin 0 -> 199 bytes
 doc/html/_static/pygments.css                      |   62 +
 doc/html/_static/searchtools.js                    |  560 ++
 doc/html/_static/sidebar.js                        |  151 +
 doc/html/_static/underscore.js                     |  977 ++
 doc/html/_static/up-pressed.png                    |  Bin 0 -> 372 bytes
 doc/html/_static/up.png                            |  Bin 0 -> 363 bytes
 doc/html/_static/websupport.js                     |  808 ++
 doc/html/api/fabio.html                            |  119 +
 doc/html/api/modules.html                          | 2782 ++++++
 doc/html/genindex.html                             | 1639 ++++
 doc/html/getting_started.html                      |  522 ++
 doc/html/index.html                                |  186 +
 doc/html/objects.inv                               |  Bin 0 -> 2623 bytes
 doc/html/py-modindex.html                          |  256 +
 doc/html/search.html                               |  105 +
 doc/html/searchindex.js                            |    1 +
 doc/make.bat                                       |  170 +
 doc/pdf/FabIO.pdf                                  |  Bin 0 -> 229300 bytes
 doc/source/Changelog.rst                           |   53 +
 doc/source/INSTALL.rst                             |  126 +
 doc/source/_static/placeholder                     |    1 +
 doc/source/api/modules.rst                         |  242 +
 doc/source/conf.py                                 |  238 +
 doc/source/getting_started.rst                     |  294 +
 doc/source/index.rst                               |   26 +
 epydoc/api-objects.txt                             | 1223 +++
 epydoc/class-tree.html                             |  290 +
 epydoc/crarr.png                                   |  Bin 0 -> 340 bytes
 epydoc/epydoc.css                                  |  322 +
 epydoc/epydoc.js                                   |  293 +
 epydoc/fabio-module.html                           |  226 +
 epydoc/fabio-pysrc.html                            |  144 +
 epydoc/fabio.GEimage-module.html                   |  255 +
 epydoc/fabio.GEimage-pysrc.html                    |  638 ++
 epydoc/fabio.GEimage.GEimage-class.html            |  565 ++
 epydoc/fabio.GEimage_old-module.html               |  174 +
 epydoc/fabio.GEimage_old-pysrc.html                | 1056 +++
 epydoc/fabio.GEimage_old.GEimage-class.html        |  368 +
 epydoc/fabio.HiPiCimage-module.html                |  177 +
 epydoc/fabio.HiPiCimage-pysrc.html                 |  483 +
 epydoc/fabio.HiPiCimage.HiPiCimage-class.html      |  369 +
 epydoc/fabio.OXDimage-module.html                  |  336 +
 epydoc/fabio.OXDimage-pysrc.html                   | 1056 +++
 epydoc/fabio.OXDimage.OXDimage-class.html          |  490 +
 epydoc/fabio.OXDimage.Section-class.html           |  350 +
 epydoc/fabio.TiffIO-module.html                    |  454 +
 epydoc/fabio.TiffIO-pysrc.html                     | 1786 ++++
 epydoc/fabio.TiffIO.TiffIO-class.html              |  524 ++
 epydoc/fabio.adscimage-module.html                 |  211 +
 epydoc/fabio.adscimage-pysrc.html                  |  479 +
 epydoc/fabio.adscimage.adscimage-class.html        |  448 +
 epydoc/fabio.binaryimage-module.html               |  249 +
 epydoc/fabio.binaryimage-pysrc.html                |  399 +
 epydoc/fabio.binaryimage.binaryimage-class.html    |  466 +
 epydoc/fabio.bruker100image-module.html            |  161 +
 epydoc/fabio.bruker100image-pysrc.html             |  345 +
 .../fabio.bruker100image.bruker100image-class.html |  375 +
 epydoc/fabio.brukerimage-module.html               |  212 +
 epydoc/fabio.brukerimage-pysrc.html                |  557 ++
 epydoc/fabio.brukerimage.brukerimage-class.html    |  450 +
 epydoc/fabio.byte_offset-module.html               |  158 +
 epydoc/fabio.cbfimage-module.html                  |  296 +
 epydoc/fabio.cbfimage-pysrc.html                   | 1210 +++
 epydoc/fabio.cbfimage.CIF-class.html               | 1068 +++
 epydoc/fabio.cbfimage.cbfimage-class.html          |  554 ++
 epydoc/fabio.cf_io-module.html                     |  205 +
 epydoc/fabio.compression-module.html               |  772 ++
 epydoc/fabio.compression-pysrc.html                | 1013 +++
 epydoc/fabio.converters-module.html                |  375 +
 epydoc/fabio.converters-pysrc.html                 |  195 +
 epydoc/fabio.datIO-module.html                     |  179 +
 epydoc/fabio.datIO-pysrc.html                      |  220 +
 epydoc/fabio.datIO.columnfile-class.html           |  243 +
 epydoc/fabio.datIO.fabiodata-class.html            |  269 +
 epydoc/fabio.dm3image-module.html                  |  276 +
 epydoc/fabio.dm3image-pysrc.html                   |  831 ++
 epydoc/fabio.dm3image.dm3image-class.html          |  491 +
 epydoc/fabio.edfimage-module.html                  |  341 +
 epydoc/fabio.edfimage-pysrc.html                   | 2405 +++++
 epydoc/fabio.edfimage.Frame-class.html             |  529 ++
 epydoc/fabio.edfimage.edfimage-class.html          | 1759 ++++
 epydoc/fabio.fabioimage-module.html                |  212 +
 epydoc/fabio.fabioimage-pysrc.html                 | 1189 +++
 epydoc/fabio.fabioimage.fabioimage-class.html      |  991 +++
 epydoc/fabio.fabioutils-module.html                |  723 ++
 epydoc/fabio.fabioutils-pysrc.html                 | 1163 +++
 epydoc/fabio.fabioutils.BZ2File-class.html         |  358 +
 epydoc/fabio.fabioutils.File-class.html            |  374 +
 epydoc/fabio.fabioutils.FilenameObject-class.html  |  356 +
 epydoc/fabio.fabioutils.GzipFile-class.html        |  452 +
 epydoc/fabio.fabioutils.StringIO-class.html        |  313 +
 ...bio.fabioutils.UnknownCompressedFile-class.html |  303 +
 epydoc/fabio.fabioutils.filename_object-class.html |  182 +
 epydoc/fabio.file_series-module.html               |  326 +
 epydoc/fabio.file_series-pysrc.html                |  731 ++
 epydoc/fabio.file_series.file_series-class.html    |  900 ++
 .../fabio.file_series.filename_series-class.html   |  350 +
 ...bio.file_series.numbered_file_series-class.html |  339 +
 epydoc/fabio.fit2dmaskimage-module.html            |  158 +
 epydoc/fabio.fit2dmaskimage-pysrc.html             |  283 +
 .../fabio.fit2dmaskimage.fit2dmaskimage-class.html |  453 +
 epydoc/fabio.fit2dspreadsheetimage-module.html     |  162 +
 epydoc/fabio.fit2dspreadsheetimage-pysrc.html      |  247 +
 ...readsheetimage.fit2dspreadsheetimage-class.html |  369 +
 epydoc/fabio.kcdimage-module.html                  |  238 +
 epydoc/fabio.kcdimage-pysrc.html                   |  416 +
 epydoc/fabio.kcdimage.kcdimage-class.html          |  411 +
 epydoc/fabio.mar345_IO-module.html                 |  165 +
 epydoc/fabio.mar345image-module.html               |  240 +
 epydoc/fabio.mar345image-pysrc.html                |  804 ++
 epydoc/fabio.mar345image.mar345image-class.html    |  571 ++
 epydoc/fabio.marccdimage-module.html               |  420 +
 epydoc/fabio.marccdimage-pysrc.html                |  538 ++
 epydoc/fabio.marccdimage.marccdimage-class.html    |  368 +
 epydoc/fabio.mytest-module.html                    |  104 +
 epydoc/fabio.mytest-pysrc.html                     |  113 +
 epydoc/fabio.openimage-module.html                 |  298 +
 epydoc/fabio.openimage-pysrc.html                  |  665 ++
 epydoc/fabio.pdf                                   |  Bin 0 -> 658344 bytes
 epydoc/fabio.pilatusimage-module.html              |  172 +
 epydoc/fabio.pilatusimage-pysrc.html               |  237 +
 epydoc/fabio.pilatusimage.pilatusimage-class.html  |  367 +
 epydoc/fabio.pnmimage-module.html                  |  231 +
 epydoc/fabio.pnmimage-pysrc.html                   |  499 ++
 epydoc/fabio.pnmimage.pnmimage-class.html          |  614 ++
 epydoc/fabio.readbytestream-module.html            |  312 +
 epydoc/fabio.readbytestream-pysrc.html             |  241 +
 epydoc/fabio.tifimage-module.html                  |  417 +
 epydoc/fabio.tifimage-pysrc.html                   |  721 ++
 .../fabio.tifimage.Image_File_Directory-class.html |  256 +
 ....tifimage.Image_File_Directory_entry-class.html |  276 +
 epydoc/fabio.tifimage.Tiff_header-class.html       |  236 +
 epydoc/fabio.tifimage.tifimage-class.html          |  465 +
 epydoc/fabio.xsdimage-module.html                  |  184 +
 epydoc/fabio.xsdimage-pysrc.html                   |  460 +
 epydoc/fabio.xsdimage.xsdimage-class.html          |  419 +
 epydoc/frames.html                                 |   17 +
 epydoc/help.html                                   |  268 +
 epydoc/identifier-index.html                       | 1731 ++++
 epydoc/index.html                                  |   17 +
 epydoc/module-tree.html                            |  151 +
 epydoc/redirect.html                               |   38 +
 epydoc/str-class.html                              | 2113 +++++
 epydoc/toc-everything.html                         |  250 +
 epydoc/toc-fabio-module.html                       |   33 +
 epydoc/toc-fabio.GEimage-module.html               |   37 +
 epydoc/toc-fabio.GEimage_old-module.html           |   33 +
 epydoc/toc-fabio.HiPiCimage-module.html            |   34 +
 epydoc/toc-fabio.OXDimage-module.html              |   40 +
 epydoc/toc-fabio.TiffIO-module.html                |   58 +
 epydoc/toc-fabio.adscimage-module.html             |   36 +
 epydoc/toc-fabio.binaryimage-module.html           |   35 +
 epydoc/toc-fabio.bruker100image-module.html        |   34 +
 epydoc/toc-fabio.brukerimage-module.html           |   36 +
 epydoc/toc-fabio.byte_offset-module.html           |   32 +
 epydoc/toc-fabio.cbfimage-module.html              |   39 +
 epydoc/toc-fabio.cf_io-module.html                 |   33 +
 epydoc/toc-fabio.compression-module.html           |   50 +
 epydoc/toc-fabio.converters-module.html            |   38 +
 epydoc/toc-fabio.datIO-module.html                 |   34 +
 epydoc/toc-fabio.dm3image-module.html              |   36 +
 epydoc/toc-fabio.edfimage-module.html              |   40 +
 epydoc/toc-fabio.fabioimage-module.html            |   36 +
 epydoc/toc-fabio.fabioutils-module.html            |   58 +
 epydoc/toc-fabio.file_series-module.html           |   39 +
 epydoc/toc-fabio.fit2dmaskimage-module.html        |   33 +
 epydoc/toc-fabio.fit2dspreadsheetimage-module.html |   33 +
 epydoc/toc-fabio.kcdimage-module.html              |   37 +
 epydoc/toc-fabio.mar345_IO-module.html             |   32 +
 epydoc/toc-fabio.mar345image-module.html           |   35 +
 epydoc/toc-fabio.marccdimage-module.html           |   43 +
 epydoc/toc-fabio.mytest-module.html                |   29 +
 epydoc/toc-fabio.openimage-module.html             |   40 +
 epydoc/toc-fabio.pilatusimage-module.html          |   33 +
 epydoc/toc-fabio.pnmimage-module.html              |   37 +
 epydoc/toc-fabio.readbytestream-module.html        |   35 +
 epydoc/toc-fabio.tifimage-module.html              |   44 +
 epydoc/toc-fabio.xsdimage-module.html              |   34 +
 epydoc/toc.html                                    |   65 +
 {fabio => fabio-src}/GEimage.py                    |    0
 {fabio => fabio-src}/GEimage_old.py                |    0
 {fabio => fabio-src}/HiPiCimage.py                 |    0
 {fabio => fabio-src}/OXDimage.py                   |   23 +-
 {fabio => fabio-src}/TiffIO.py                     |    0
 fabio-src/__init__.py                              |   27 +
 {fabio => fabio-src}/adscimage.py                  |    0
 {fabio => fabio-src}/binaryimage.py                |   51 +-
 {fabio => fabio-src}/bruker100image.py             |    2 +-
 fabio-src/brukerimage.py                           |  421 +
 {fabio => fabio-src}/cbfimage.py                   |   11 +-
 {fabio => fabio-src}/compression.py                |   97 +-
 {fabio => fabio-src}/converters.py                 |    0
 {fabio => fabio-src}/datIO.py                      |    0
 {fabio => fabio-src}/dm3image.py                   |    0
 {fabio => fabio-src}/edfimage.py                   |   96 +-
 {fabio => fabio-src}/fabioimage.py                 |    8 +-
 {fabio => fabio-src}/fabioutils.py                 |  423 +-
 {fabio => fabio-src}/file_series.py                |  213 +-
 {fabio => fabio-src}/fit2dmaskimage.py             |    0
 {fabio => fabio-src}/fit2dspreadsheetimage.py      |    0
 {fabio => fabio-src}/kcdimage.py                   |    0
 {fabio => fabio-src}/mar345image.py                |   38 +-
 {fabio => fabio-src}/marccdimage.py                |   20 +-
 {fabio => fabio-src}/openimage.py                  |    6 +-
 {fabio => fabio-src}/pilatusimage.py               |   28 +-
 {fabio => fabio-src}/pnmimage.py                   |    0
 {fabio => fabio-src}/readbytestream.py             |    0
 fabio-src/templateimage.py                         |   96 +
 {fabio => fabio-src}/tifimage.py                   |   26 +-
 {fabio => fabio-src}/xsdimage.py                   |    0
 fabio.egg-info/SOURCES.txt                         |  370 +
 fabio/__init__.py                                  |   10 -
 fabio/brukerimage.py                               |  195 -
 pylint/.pylintrc                                   |  308 +
 pylint/GEimage.py.lint                             |  124 +
 pylint/GEimage_old.py.lint                         |  166 +
 pylint/HiPiCimage.py.lint                          |  120 +
 pylint/OXDimage.py.lint                            |  221 +
 pylint/TiffIO.py.lint                              |  214 +
 pylint/__init__.py.lint                            |   93 +
 pylint/adscimage.py.lint                           |  104 +
 pylint/benchheader.py.lint                         |   96 +
 pylint/binaryimage.py.lint                         |  126 +
 pylint/bruker100image.py.lint                      |  118 +
 pylint/brukerimage.py.lint                         |  203 +
 pylint/cbfimage.py.lint                            |  282 +
 pylint/compression.py.lint                         |  160 +
 pylint/converters.py.lint                          |   88 +
 pylint/datIO.py.lint                               |  107 +
 pylint/dm3image.py.lint                            |  150 +
 pylint/edfimage.py.lint                            |  308 +
 pylint/fabian_mar_header.py.lint                   |  421 +
 pylint/fabioimage.py.lint                          |  164 +
 pylint/fabioutils.py.lint                          |  171 +
 pylint/file_series.py.lint                         |  118 +
 pylint/fit2dmaskimage.py.lint                      |  101 +
 pylint/fit2dspreadsheetimage.py.lint               |  112 +
 pylint/kcdimage.py.lint                            |  125 +
 pylint/lintem.py                                   |   49 +
 pylint/mar345image.py.lint                         |  183 +
 pylint/marccdimage.py.lint                         |   96 +
 pylint/oldtifimage.py.lint                         |  131 +
 pylint/openimage.py.lint                           |  120 +
 pylint/pilatusimage.py.lint                        |   94 +
 pylint/pnmimage.py.lint                            |  173 +
 pylint/profile_compressed.py.lint                  |  121 +
 pylint/readbytestream.py.lint                      |   96 +
 pylint/templateimage.py.lint                       |  131 +
 pylint/testGEimage.py.lint                         |  119 +
 pylint/testOXDimage.py.lint                        |  132 +
 pylint/testXSDimage.py.lint                        |  127 +
 pylint/test_all.py.lint                            |  124 +
 pylint/test_all_images.py.lint                     |   93 +
 pylint/test_file_series.py.lint                    |  113 +
 pylint/test_filename_steps.py.lint                 |  120 +
 pylint/test_flat_binary.py.lint                    |  118 +
 pylint/testadscimage.py.lint                       |  121 +
 pylint/testbrukerimage.py.lint                     |  141 +
 pylint/testcbfimage.py.lint                        |  133 +
 pylint/testcompression.py.lint                     |  138 +
 pylint/testedfimage.py.lint                        |  225 +
 pylint/testfabioimage.py.lint                      |  146 +
 pylint/testfilenames.py.lint                       |  102 +
 pylint/testfit2dmaskimage.py.lint                  |  118 +
 pylint/testheadernotsingleton.py.lint              |  109 +
 pylint/testkcdimage.py.lint                        |  118 +
 pylint/testmar345image.py.lint                     |  122 +
 pylint/testmccdimage.py.lint                       |  128 +
 pylint/testopenheader.py.lint                      |  113 +
 pylint/testopenimage.py.lint                       |  161 +
 pylint/testtifgz.py.lint                           |  118 +
 pylint/testtifimage.py.lint                        |  132 +
 pylint/tifimage.py.lint                            |  165 +
 pylint/utilstest.py.lint                           |  115 +
 pylint/xsdimage.py.lint                            |  125 +
 setup.py                                           |   80 +-
 src/byte_offset.html                               | 1240 ---
 src/ccp4_pack.c                                    |   15 +-
 src/ccp4_pack.h                                    |    3 +
 src/cf_io.pyx                                      |   92 +
 src/mar345_IO.c                                    | 3397 ++++---
 src/mar345_IO.html                                 | 1739 ----
 src/mar345_IO.pyx                                  |   95 +-
 src/pack_c.c                                       | 1521 ----
 src/pack_c.h                                       |  140 -
 src/setup.py                                       |   27 -
 test/coral31_benchheaders                          |   46 -
 test/coral31_benchmark                             |   53 -
 test/eeepc-jonathanw_benchheaders                  |   46 -
 test/eeepc-jonathanw_benchmark                     |   53 -
 test/esrflinux1-1a_benchheaders                    |   46 -
 test/esrflinux1-1a_benchmark                       | 3563 --------
 test/get_test_images.sh                            |   36 -
 test/lapwright_benchheaders                        |   47 -
 test/lapwright_benchmark                           |   54 -
 test/lintaillefer_benchHeaders                     |   95 -
 test/profile/coral31_benchheaders                  |   46 -
 test/profile/coral31_benchmark                     |   53 -
 test/profile/eeepc-jonathanw_benchheaders          |   46 -
 test/profile/eeepc-jonathanw_benchmark             |   53 -
 test/profile/esrflinux1-1a_benchheaders            |   46 -
 test/profile/esrflinux1-1a_benchmark               | 3563 --------
 test/profile/get_test_images.sh                    |   36 -
 test/profile/lapwright_benchheaders                |   47 -
 test/profile/lapwright_benchmark                   |   54 -
 test/profile/lintaillefer_benchHeaders             |   95 -
 test/profile/win32_benchheaders                    |   46 -
 test/profile/win32_benchmark                       | 3285 -------
 test/testOXDimage.py                               |    0
 test/test_all.bat                                  |   26 -
 test/test_all.sh                                   |   32 -
 test/test_file_series.py                           |    0
 test/test_filename_steps.py                        |    0
 test/testbrukerimage.py                            |   43 +-
 test/testedfimage.py                               |   45 +-
 test/testfilenames.py                              |    2 +-
 test/testfit2dmaskimage.py                         |    0
 test/testheadernotsingleton.py                     |    0
 test/testmar345image.py                            |   13 +-
 test/testopenheader.py                             |    0
 test/testopenimage.py                              |    0
 test/testtifgz.py                                  |    0
 test/win32_benchheaders                            |   46 -
 test/win32_benchmark                               | 3285 -------
 382 files changed, 102910 insertions(+), 21749 deletions(-)

diff --git a/MANIFEST.in b/MANIFEST.in
index b37be60..08a2d98 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,14 +1,17 @@
-include README.TXT
+include README.txt
 include stdeb.cfg
-recursive-exclude fabio.egg-info *
-recursive-exclude debian *
 recursive-include src *.c *.h *.pyx 
 recursive-include test *.py
-recursive-exclude pylint *
-recursive-exclude pydoc *
-recursive-exclude epydoc *
+recursive-include doc *
+recursive-include pylint *
+recursive-include epydoc *
+# recursive-exclude pylint *
+# recursive-exclude pydoc *
+# recursive-exclude epydoc *
 recursive-exclude build *
 recursive-exclude dist *
 recursive-exclude test/tiftest *
 recursive-exclude test/testimages *
+recursive-exclude fabio.egg-info *
+# recursive-exclude debian *
 
diff --git a/PKG-INFO b/PKG-INFO
index 6ace28f..049b8a9 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,11 +1,28 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
 Name: fabio
-Version: 0.1.1
+Version: 0.1.3
 Summary: Image IO for fable
 Home-page: http://fable.wiki.sourceforge.net/fabio
 Author: Henning Sorensen, Erik Knudsen, Jon Wright, Regis Perdreau, Jérôme Kieffer and Gael Goret
 Author-email: fable-talk at lists.sourceforge.net
 License: UNKNOWN
-Download-URL: http://sourceforge.net/projects/fable/files/fabio/0.0.9
+Download-URL: http://sourceforge.net/projects/fable/files/fabio/0.1.2
 Description: UNKNOWN
 Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Console
+Classifier: Intended Audience :: End Users/Desktop
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Science/Research
+Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
+Classifier: Operating System :: MacOS :: MacOS X
+Classifier: Operating System :: Microsoft :: Windows
+Classifier: Operating System :: POSIX
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Cython
+Classifier: Programming Language :: C
+Classifier: Topic :: Scientific/Engineering :: Chemistry
+Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
+Classifier: Topic :: Scientific/Engineering :: Physics
+Classifier: Topic :: Scientific/Engineering :: Visualization
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
diff --git a/README.TXT b/README.TXT
deleted file mode 100644
index 64af93a..0000000
--- a/README.TXT
+++ /dev/null
@@ -1,212 +0,0 @@
-FabIO 
-=====
-FabIO is an I/O library for images produced by 2D X-ray detectors and written in python.
-FabIO support images detectors from a dozen of companies (including Mar, Dectris, ADSC, Hamamatsu, Oxford, ...), 
-for a total of 20 different file formats (like CBF, EDF, TIFF, ...) and offers an unified interface to their 
-headers (as a python dictionary) and datasets (as a numpy ndarray of integers or floats)
-  
-
-
-Changelog
-=========
-From FabIO-0.0.8 to FabIO-0.1.0:
-- OXD reader improved and writer implemented
-- Mar345 reader improved and writer implemented
-- CBF writer implemented 
-- Clean-up of the code & bug fixes 
-- Move towards python3
-- Make PIL optional dependency  
-Python3 is not yet tested but blocking points have been identified and some fixed. 
-
-From FabIO-0.0.7 to FabIO-0.0.8:
-- Support for Tiff using TiffIO module from V.A.Solé
-- Clean-up of the code & bug fixes 
-
-From FabIO-0.0.6 to FabIO-0.0.7:
-- Support for multi-frames EDF files
-- Support for XML images/2D arrays used in EDNA 
-- new method: fabio.open(filename) that is an alias for fabio.openimage.openimage(filename)
- 
-From FabIO-0.0.4 to FabIO-0.0.6:
-- Support for CBF files from Pilatus detectors
-- Support for KCD files from Nonius Kappa CCD images 
-- write EDF with their native data type (instead of uint16 by default)
-
-
-Installation
-============
-fabio can be downloaded from the fable download page on sourceforge.net. Presently the source code has been distributed as a zip package and a compressed tarball. Download either one and unpack it.
-http://sourceforge.net/projects/fable/files/fabio/
-
-e.g.
-tar xvzf fabio-0.1.0.tar.gz
-or
-unzip fabio-0.1.0.zip
-
-all files are unpacked into the directory fabio-0.1.0. To install these do
-
-cd fabio-0.1.0
-
-and install fabio with
-
-python setup.py install
-
-most likely you will need to do this with root privileges (e.g. put sudo in front of the command).
-The newest development version can be obtained by checking it out from the subversion (SVN) repository. Do
-
-svn checkout https://svn.sourceforge.net/svnroot/fable/ fabio
-cd fabio/trunk
-sudo python setup.py install
-
-If you are using MS Windows you also download a binary version packaged as executable installation files. 
-Dependent on your python version open either:
-
-fabio-0.1.0.win32-py2.6.msi or fabio-0.1.0.win32-py2.6.msi or fabio-0.0.8.win32-py2.7.msi
-
-
-Dependencies
-============
-Python 2.5 or later (we are workin on python 3.x)
-For full functionality of fabio the following modules need to be installed.
-* numpy - http://www.numpy.org
-
-Optional dependency
-* PIL (python imaging library) - http://www.pythonware.com
-* lxml (library for reading XSDimages) 
-
-Ubuntu and Debian Like linux distributions:
--------------------------------------------
-
-Fabio is included in latest development versions of Debian, it can be installed by apt-get:
-sudo apt-get install python-fabio
-
-If fabio is not yet available for you flavor of linux, you will need to install it from the sources:
-To install the needed python modules can be installed either through the Synaptic Package Manager (found in System -> Administration) 
-or using apt-get on from the command line in a terminal.
-The extra ubuntu packages needed are:
-
-* python-imaging
-* python-imaging-tk
-* python-numpy
-* python-dev
-
-using apt-get these can be installed as:
-
-sudo apt-get install python-imaging python-imaging-tk python-numpy
-
-using Synaptic Package Manager:
-
-**search** to find the specific ubuntu packages instead
-**mark** them for installation
-**Apply** to install
-
-Transparent handling of compressed files
-========================================
-Fabio is expected to handle gzip and bzip2 compressed files transparently. 
-Following a query about the performance of reading compressed data, some 
-benchmarking details have been collected at fabio_compressed_speed. 
-This means that when your python was configured and built you needed the 
-bzip and gzip modules to be present (eg libbz2-dev package for ubuntu)
-Using fabio in your own python programs 
-Example:
-
->>> import fabio
->>> obj = fabio.edfimage("mydata0000.edf")
->>> obj.data.shape
-(2048, 2048)
->>> obj.header["Omega"]
-23.5
-
-Adding new file formats 
-=======================
-We hope it will be relatively easy to add new file formats to fabio in the future. The basic idea is the following:
-   1. inherit from fabioimage overriding the methods _readheader, read and optionally write. Name your new module XXXimage where XXX means something (eg tifimage).
-   2. readheader fills in a dictionary of "name":"value" pairs in self.header. No one expects to find anything much in there.
-   3. read fills in self.data with a numpy array holding the image. Some redundant info which also appears are self.dim1 and self.dim2: the image dimensions, self.bpp is the bytes per pixel and self.bytecode is the numpy.dtype.type of the data.
-   4. The member variables "_need_a_seek_to_read" and "_need_a_real_file" are there in case you have trouble with the transparent handling of bz2 and gz files.
-   5. Register the file type (extension naming) in init__.py:FILETYPES
-   6. Add your new module as an import into fabio.openimage
-   7. Fill out the magic numbers for your format in fabio.openimage if you know them (the characteristic first few bytes in the file)
-   8. Upload a testimage to the file release system and create a unittest testcase which opens an example of your new format, confirming the image has actually been read in successfully (eg check the mean, max, min and esd are all correct, perhaps orientation too)
-   9. Run pylint on your code and then please go clean it up. Have a go at mine while you are at it.
-  10. Bask in the warm glow of appreciation when someone unexpectedly learns they don't need to convert their data into another format 
-
-
-Design Specifications
-=====================
-Name: Fabio = Fable Input/Output 
-
-Idea: 
------
-Have a base class for all our 2D diffraction greyscale images. This consists of a 2D array (numpy ndarray) 
-and a python dictionary of header information in (string key, string value) pairs.
-
-Class fabioimage  
-----------------
-Needs a name which will not to be confused with an RGB color image.
-
-Class attributes:
-* data   					-> 2D array
-* header 					-> dictionary
-* rows, columns, dim1, dim2 -> data.shape
-* header_keys               -> header.keys() used to retain the order of the header when writing an image to disk
-* bytecode                 	-> data.typecode()
-* m, minval, maxval, stddev	-> image statistics, could add others, eg roi[slice]
-
-Class methods (functions):
---------------------------
-integrate_area()      -> return sum(self.data) within slice
-rebin(fact)           -> rebins data, adjusts dims
-toPIL16()             -> returns a PILimage
-getheader()           -> returns self.header
-resetvals()           -> resets the statistics
-getmean()             -> (computes) returns self.m
-getmin()              -> (computes) returns self.minval
-getmax()              -> (computes) returns self.maxval
-getstddev()           -> (computes) returns self.stddev
-read()        		  -> read image from file [or stream, or shared memory]
-write()       		  -> write image to file  [or stream, or shared memory]
-readheader()          -> read only the header [much faster for scanning files]
-
-Each individual file format would then inherit all the functionality of this class and just make new read and write methods.
-There are also fileseries related methods (next(), previous(), ...) which return a fabioimage instance of the next/previous frame in a fileserie 
-
-Other feature:
-    * possibility for using on-the-fly external compression - i.e. if files are stored as something as .gz, .bz2 etc could decompress them, using an external compression mechanism (if available). This is present in fabian but requires that images are edfs. 
-
-
-Known file formats
-===================
-* Bruker
-  o brukerimage
-  o bruker100image
-  o kcdimage: Nonius KappaCCD diffractometer
-* Mar Research
-  o marccd (fileformat derived from Tiff)
-  o mar345 imaging plate with PCK compression
-* Dectris 
-  o cbfimage (implements a fast byte offset decompression scheme in python/cython)
-  o pilatusimage (fileformat derived from Tiff)
-* ESRF
-  o edfimage: The ESRF data Format 
-  o xsdimage: XML serialized image from EDNA
-  o fit2dmaskimage: Fit2d Mask format
-  o fit2dspreadsheetimage: Fit2d ascii tables (spread-sheet)
-* ADSC
-  o adscimage 
-* GE detector at APS
-  o GEimage 
-* PNM
-  o pnmimage 
-* Tiff
-  o tifimage  
-* D3M
-  o d3mimage
-* Hamamatsu
-  o HiPiCimage 
-* Oxford Diffraction Sapphire 3 
-  o OXDimage
-* Nonius
- o KappaCCD
-* Raw Binary without compression
-  
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..a0f619d
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,121 @@
+FabIO
+=====
+FabIO is an I/O library for images produced by 2D X-ray detectors and written in python.
+FabIO support images detectors from a dozen of companies (including Mar, Dectris, ADSC, Hamamatsu, Oxford, ...),
+for a total of 20 different file formats (like CBF, EDF, TIFF, ...) and offers an unified interface to their
+headers (as a python dictionary) and datasets (as a numpy ndarray of integers or floats)
+
+Citation:
+---------
+The general philosophy of the library is described in:
+FabIO: easy access to two-dimensional X-ray detector images in Python
+E. B. Knudsen, H. O. Sørensen, J. P. Wright, G. Goret and J. Kieffer
+Journal of Applied Crystallography, Volume 46, Part 2, pages 537-539.
+http://dx.doi.org/10.1107/S0021889813000150
+
+Transparent handling of compressed files
+----------------------------------------
+Fabio is expected to handle gzip and bzip2 compressed files transparently.
+Following a query about the performance of reading compressed data, some
+benchmarking details have been collected at fabio_compressed_speed.
+This means that when your python was configured and built you needed the
+bzip and gzip modules to be present (eg libbz2-dev package for ubuntu)
+Using fabio in your own python programs
+Example:
+
+>>> import fabio
+>>> obj = fabio.edfimage("mydata0000.edf")
+>>> obj.data.shape
+(2048, 2048)
+>>> obj.header["Omega"]
+23.5
+
+
+Design Specifications
+---------------------
+Name: Fabio = Fable Input/Output
+
+Idea:
+.....
+Have a base class for all our 2D diffraction greyscale images. This consists of a 2D array (numpy ndarray)
+and a python dictionary of header information in (string key, string value) pairs.
+
+Class fabioimage
+................
+Needs a name which will not to be confused with an RGB color image.
+
+Class attributes:
+* data   					-> 2D array
+* header 					-> dictionary
+* rows, columns, dim1, dim2 -> data.shape
+* header_keys               -> header.keys() used to retain the order of the header when writing an image to disk
+* bytecode                 	-> data.typecode()
+* m, minval, maxval, stddev	-> image statistics, could add others, eg roi[slice]
+
+Class methods (functions):
+..........................
+integrate_area()      -> return sum(self.data) within slice
+rebin(fact)           -> rebins data, adjusts dims
+toPIL16()             -> returns a PILimage
+getheader()           -> returns self.header
+resetvals()           -> resets the statistics
+getmean()             -> (computes) returns self.m
+getmin()              -> (computes) returns self.minval
+getmax()              -> (computes) returns self.maxval
+getstddev()           -> (computes) returns self.stddev
+read()        		  -> read image from file [or stream, or shared memory]
+write()       		  -> write image to file  [or stream, or shared memory]
+readheader()          -> read only the header [much faster for scanning files]
+
+Each individual file format would then inherit all the functionality of this class and just make new read and write methods.
+There are also fileseries related methods (next(), previous(), ...) which return a fabioimage instance of the next/previous frame in a fileserie
+
+Other feature:
+    * possibility for using on-the-fly external compression - i.e. if files are stored as something as .gz, .bz2 etc could decompress them, using an external compression mechanism (if available). This is present in fabian but requires that images are edfs.
+
+
+Known file formats
+------------------
+* Bruker
+  o brukerimage
+  o bruker100image
+  o kcdimage: Nonius KappaCCD diffractometer
+* Mar Research
+  o marccd (fileformat derived from Tiff)
+  o mar345 imaging plate with PCK compression
+* Dectris
+  o cbfimage (implements a fast byte offset decompression scheme in python/cython)
+  o pilatusimage (fileformat derived from Tiff)
+* ESRF
+  o edfimage: The ESRF data Format
+  o xsdimage: XML serialized image from EDNA
+  o fit2dmaskimage: Fit2d Mask format
+  o fit2dspreadsheetimage: Fit2d ascii tables (spread-sheet)
+* ADSC
+  o adscimage
+* GE detector at APS
+  o GEimage
+* PNM
+  o pnmimage
+* Tiff
+  o tifimage
+* D3M
+  o d3mimage
+* Hamamatsu
+  o HiPiCimage
+* Oxford Diffraction Sapphire 3
+  o OXDimage
+* Nonius
+ o KappaCCD
+* Raw Binary without compression
+
+Installation
+------------
+
+Please see doc/source/INSTALL.rst
+
+Changelog
+---------
+
+Please see doc/source/Changelog.rst
+
diff --git a/build-deb.sh b/build-deb.sh
deleted file mode 100755
index b3f2036..0000000
--- a/build-deb.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-rm -rf dist
-python setup.py sdist
-cd dist
-tar -xzf  fabio-*.tar.gz
-cd fabio*
-python setup.py --command-packages=stdeb.command bdist_deb
-sudo dpkg -i deb_dist/python-fabio*.deb
-cd ../..
-
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000..dbb4797
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,130 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+BUILDDIR      = build
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
+
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html       to make standalone HTML files"
+	@echo "  dirhtml    to make HTML files named index.html in directories"
+	@echo "  singlehtml to make a single large HTML file"
+	@echo "  pickle     to make pickle files"
+	@echo "  json       to make JSON files"
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
+	@echo "  qthelp     to make HTML files and a qthelp project"
+	@echo "  devhelp    to make HTML files and a Devhelp project"
+	@echo "  epub       to make an epub"
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
+	@echo "  text       to make text files"
+	@echo "  man        to make manual pages"
+	@echo "  changes    to make an overview of all changed/added/deprecated items"
+	@echo "  linkcheck  to check all external links for integrity"
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+	-rm -rf $(BUILDDIR)/*
+
+html:
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+	@echo
+	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files."
+
+json:
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+	@echo
+	@echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+	@echo
+	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
+	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/FabIO.qhcp"
+	@echo "To view the help file:"
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/FabIO.qhc"
+
+devhelp:
+	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+	@echo
+	@echo "Build finished."
+	@echo "To view the help file:"
+	@echo "# mkdir -p $$HOME/.local/share/devhelp/FabIO"
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/FabIO"
+	@echo "# devhelp"
+
+epub:
+	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+	@echo
+	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+	@echo "Run \`make' in that directory to run these through (pdf)latex" \
+	      "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through pdflatex..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+	@echo
+	@echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+	@echo
+	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+changes:
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+	@echo
+	@echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+	@echo "Testing of doctests in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/doc/html/.buildinfo b/doc/html/.buildinfo
new file mode 100644
index 0000000..987abdf
--- /dev/null
+++ b/doc/html/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: 59333a03b9d7fc243eb1812d88ec7e8e
+tags: fbb0d17656682115ca4d033fb2f83ba1
diff --git a/doc/html/Changelog.html b/doc/html/Changelog.html
new file mode 100644
index 0000000..58c3022
--- /dev/null
+++ b/doc/html/Changelog.html
@@ -0,0 +1,196 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Changelog — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="index.html" />
+    <link rel="next" title="FabIO Package" href="api/modules.html" />
+    <link rel="prev" title="Installation" href="INSTALL.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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="right" >
+          <a href="api/modules.html" title="FabIO Package"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="INSTALL.html" title="Installation"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="changelog">
+<h1>Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="from-fabio-0-1-2-to-fabio-0-1-3">
+<h2>From FabIO-0.1.2 to FabIO-0.1.3:<a class="headerlink" href="#from-fabio-0-1-2-to-fabio-0-1-3" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Fixed a memory-leak in mar345 module</li>
+<li>Improved support for bruker format (writer & reader)</li>
+<li>Fixed a bug in EDF headers (very long headers)</li>
+<li>Provide template for new file-formats</li>
+<li>Fix a bug related to PIL in new MacOSX</li>
+<li>Allow binary-images to be read from end</li>
+</ul>
+</div>
+<div class="section" id="from-fabio-0-1-1-to-fabio-0-1-2">
+<h2>From FabIO-0.1.1 to FabIO-0.1.2:<a class="headerlink" href="#from-fabio-0-1-1-to-fabio-0-1-2" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Fixed a bug in fabioimage.write (impacted all writers)</li>
+<li>added Sphinx documentation “python setup.py build_doc”</li>
+<li>PyLint compliance of some classes (rename, ...)</li>
+<li>tests from installer with “python setup.py build test”</li>
+</ul>
+</div>
+<div class="section" id="from-fabio-0-1-0-to-fabio-0-1-1">
+<h2>From FabIO-0.1.0 to FabIO-0.1.1:<a class="headerlink" href="#from-fabio-0-1-0-to-fabio-0-1-1" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Merged Mar345 image reader and writer with cython bindings (towards python3 compliance)</li>
+<li>Improve CBF image writing under windows</li>
+<li>Bz2, Gzip and Flat files are managed through a common way ... classes are more (python v2.5) or less (python v2.7) overloaded</li>
+<li>Fast EDF reading if one assumes offsets are the same between files, same for ROIs</li>
+</ul>
+</div>
+<div class="section" id="from-fabio-0-0-8-to-fabio-0-1-0">
+<h2>From FabIO-0.0.8 to FabIO-0.1.0:<a class="headerlink" href="#from-fabio-0-0-8-to-fabio-0-1-0" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>OXD reader improved and writer implemented</li>
+<li>Mar345 reader improved and writer implemented</li>
+<li>CBF writer implemented</li>
+<li>Clean-up of the code & bug fixes</li>
+<li>Move towards python3</li>
+<li>Make PIL optional dependency</li>
+</ul>
+<p>Python3 is not yet tested but some blocking points have been identified and some fixed.</p>
+</div>
+<div class="section" id="from-fabio-0-0-7-to-fabio-0-0-8">
+<h2>From FabIO-0.0.7 to FabIO-0.0.8:<a class="headerlink" href="#from-fabio-0-0-7-to-fabio-0-0-8" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Support for Tiff using TiffIO module from V.A.Solé</li>
+<li>Clean-up of the code & bug fixes</li>
+</ul>
+</div>
+<div class="section" id="from-fabio-0-0-6-to-fabio-0-0-7">
+<h2>From FabIO-0.0.6 to FabIO-0.0.7:<a class="headerlink" href="#from-fabio-0-0-6-to-fabio-0-0-7" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Support for multi-frames EDF files</li>
+<li>Support for XML images/2D arrays used in EDNA</li>
+<li>new method: fabio.open(filename) that is an alias for fabio.openimage.openimage(filename)</li>
+</ul>
+</div>
+<div class="section" id="from-fabio-0-0-4-to-fabio-0-0-6">
+<h2>From FabIO-0.0.4 to FabIO-0.0.6:<a class="headerlink" href="#from-fabio-0-0-4-to-fabio-0-0-6" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Support for CBF files from Pilatus detectors</li>
+<li>Support for KCD files from Nonius Kappa CCD images</li>
+<li>write EDF with their native data type (instead of uint16 by default)</li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Changelog</a><ul>
+<li><a class="reference internal" href="#from-fabio-0-1-2-to-fabio-0-1-3">From FabIO-0.1.2 to FabIO-0.1.3:</a></li>
+<li><a class="reference internal" href="#from-fabio-0-1-1-to-fabio-0-1-2">From FabIO-0.1.1 to FabIO-0.1.2:</a></li>
+<li><a class="reference internal" href="#from-fabio-0-1-0-to-fabio-0-1-1">From FabIO-0.1.0 to FabIO-0.1.1:</a></li>
+<li><a class="reference internal" href="#from-fabio-0-0-8-to-fabio-0-1-0">From FabIO-0.0.8 to FabIO-0.1.0:</a></li>
+<li><a class="reference internal" href="#from-fabio-0-0-7-to-fabio-0-0-8">From FabIO-0.0.7 to FabIO-0.0.8:</a></li>
+<li><a class="reference internal" href="#from-fabio-0-0-6-to-fabio-0-0-7">From FabIO-0.0.6 to FabIO-0.0.7:</a></li>
+<li><a class="reference internal" href="#from-fabio-0-0-4-to-fabio-0-0-6">From FabIO-0.0.4 to FabIO-0.0.6:</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="INSTALL.html"
+                        title="previous chapter">Installation</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="api/modules.html"
+                        title="next chapter">FabIO Package</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/Changelog.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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="right" >
+          <a href="api/modules.html" title="FabIO Package"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="INSTALL.html" title="Installation"
+             >previous</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/INSTALL.html b/doc/html/INSTALL.html
new file mode 100644
index 0000000..788b44f
--- /dev/null
+++ b/doc/html/INSTALL.html
@@ -0,0 +1,221 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Installation — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="index.html" />
+    <link rel="next" title="Changelog" href="Changelog.html" />
+    <link rel="prev" title="Getting Started" href="getting_started.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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="right" >
+          <a href="Changelog.html" title="Changelog"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="getting_started.html" title="Getting Started"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="installation">
+<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1>
+<p>FabIO can, as any Python module, be installed from its sources,
+available on sourceforge but we advice to use binary
+packages provided for the most common platforms on sourceforge:
+Windows, MacOSX and Linux. Moreover FabIO is part of the common
+Linux distributions Ubuntu (since 11.10) and Debian7 where the
+package is named python-fabio and can be installed via:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># apt-get install python-fabio</span>
+</pre></div>
+</div>
+<p>If you are using MS Windows or MacOSX; binary version have been packaged.
+Windows installers are executable, just download the one corresponding to you python version and run it.
+MacOSX builds are zipped: unzip them at the right place.</p>
+<div class="section" id="dependencies">
+<h2>Dependencies<a class="headerlink" href="#dependencies" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Python 2.5 or later (python 3.x is not yet ready)</li>
+<li>numpy - <a class="reference external" href="http://www.numpy.org">http://www.numpy.org</a></li>
+</ul>
+<p>For full functionality of Fabio the following modules need to be installed:</p>
+<ul class="simple">
+<li>PIL (python imaging library) - <a class="reference external" href="http://www.pythonware.com">http://www.pythonware.com</a></li>
+<li>lxml (library for reading XSDimages)</li>
+</ul>
+</div>
+<div class="section" id="installation-from-sources">
+<h2>Installation from sources<a class="headerlink" href="#installation-from-sources" title="Permalink to this headline">¶</a></h2>
+<p>FabIO can be downloaded from the fable download page on sourceforge.net.
+Presently the source code has been distributed as a zip package and a compressed tarball.
+Download either one and unpack it.</p>
+<div class="highlight-python"><pre>http://sourceforge.net/projects/fable/files/fabio/</pre>
+</div>
+<p>e.g.</p>
+<div class="highlight-python"><pre>tar xvzf fabio-0.1.3.tar.gz</pre>
+</div>
+<p>or</p>
+<div class="highlight-python"><pre>unzip fabio-0.1.3.zip</pre>
+</div>
+<p>all files are unpacked into the directory fabio-0.1.3. To install these do</p>
+<div class="highlight-python"><pre>cd fabio-0.1.3</pre>
+</div>
+<p>and install fabio with</p>
+<div class="highlight-python"><pre>python setup.py build
+sudo python setup.py install</pre>
+</div>
+<p>most likely you will need to gain root privileges (with sudo in front of the command) to install the built package.</p>
+</div>
+<div class="section" id="development-versions">
+<h2>Development versions<a class="headerlink" href="#development-versions" title="Permalink to this headline">¶</a></h2>
+<p>The newest development version can be obtained by checking it out from the subversion (SVN) repository:</p>
+<div class="highlight-python"><pre>svn checkout https://svn.sourceforge.net/svnroot/fable/fabio/trunk fabio
+cd fabio
+python setup.py build
+sudo python setup.py install</pre>
+</div>
+<p>For Ubuntu/Debian users, you will need:</p>
+<ul class="simple">
+<li>python-imaging</li>
+<li>python-imaging-tk</li>
+<li>python-numpy</li>
+<li>python-dev</li>
+</ul>
+<div class="highlight-python"><pre>sudo apt-get install python-imaging python-imaging-tk python-numpy</pre>
+</div>
+<p>We provide also a debian-package builder based on stdeb:</p>
+<div class="highlight-python"><pre>sudo apt-get install python-stdeb
+./build-deb.sh</pre>
+</div>
+<p>which builds a debian package and installs it in a single command. Handy for testing.</p>
+</div>
+<div class="section" id="test-suite">
+<h2>Test suite<a class="headerlink" href="#test-suite" title="Permalink to this headline">¶</a></h2>
+<p>FabIO has a comprehensive test-suite to ensure non regression (about 100 tests).
+When you run the test for the first time, many test images will be download and converted into various compressed format like gzip and bzip2 (this takes a lot of time).
+Be sure you have an internet connection (and your environment variable http_proxy is correctly set-up, if you are behind a proxy).</p>
+<div class="highlight-python"><pre>python setup.py build
+cd test
+python test_all.py
+........................................WARNING:compression:Encounter the python-gzip bug with trailing garbage, trying subprocess gzip
+..............................WARNING:edfimage:Non complete datablock: got 6928, expected 8388608
+WARNING:edfimage:Non complete datablock: got 6928, expected 8388608
+WARNING:edfimage:Non complete datablock: got 6928, expected 8388608
+.....................WARNING:edfimage:Unknown compression scheme TY1
+.....WARNING:edfimage:Unknown compression scheme FALSE
+...WARNING: Non standard TIFF. Rows per strip TAG missing
+WARNING: Non standard TIFF. Strip byte counts TAG missing
+....
+----------------------------------------------------------------------
+Ran 103 tests in 21.696s
+OK</pre>
+</div>
+<p>Many tests are there to deal with malformed files, don’t worry if the programs comaplins in warnings about “bad files”, it is done on purpose.</p>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Installation</a><ul>
+<li><a class="reference internal" href="#dependencies">Dependencies</a></li>
+<li><a class="reference internal" href="#installation-from-sources">Installation from sources</a></li>
+<li><a class="reference internal" href="#development-versions">Development versions</a></li>
+<li><a class="reference internal" href="#test-suite">Test suite</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="getting_started.html"
+                        title="previous chapter">Getting Started</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="Changelog.html"
+                        title="next chapter">Changelog</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/INSTALL.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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="right" >
+          <a href="Changelog.html" title="Changelog"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="getting_started.html" title="Getting Started"
+             >previous</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/GEimage.html b/doc/html/_modules/fabio/GEimage.html
new file mode 100644
index 0000000..154002e
--- /dev/null
+++ b/doc/html/_modules/fabio/GEimage.html
@@ -0,0 +1,428 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.GEimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.GEimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+
+<span class="c">#</span>
+<span class="c"># Reads the header from a GE a-Si Angio Detector</span>
+<span class="c"># Using version 8001 of the header from file:</span>
+<span class="c">#     c:\adept\core\DefaultImageInfoConfig.csv</span>
+<span class="c">#</span>
+<span class="c">#  Antonino Miceli</span>
+<span class="c">#  Thu Jan  4 13:46:31 CST 2007</span>
+<span class="c">#</span>
+
+<span class="c"># modifications by Jon Wright for style, pychecker and fabio</span>
+<span class="c"># </span>
+
+<span class="kn">import</span> <span class="nn">numpy</span>
+<span class="kn">import</span> <span class="nn">struct</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"GEimage"</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">from</span> <span class="nn">fabioutils</span> <span class="kn">import</span> <span class="n">next_filename</span><span class="p">,</span> <span class="n">previous_filename</span>
+
+<span class="n">GE_HEADER_INFO</span> <span class="o">=</span> <span class="p">[</span>
+    <span class="c"># Name, length in bytes, format for struct (None means string)</span>
+    <span class="p">(</span><span class="s">'ImageFormat'</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'VersionOfStandardHeader'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'StandardHeaderSizeInBytes'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'VersionOfUserHeader'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'UserHeaderSizeInBytes'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'NumberOfFrames'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'NumberOfRowsInFrame'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'NumberOfColsInFrame'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ImageDepthInBits'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'AcquisitionDate'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'AcquisitionTime'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DUTID'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'Operator'</span><span class="p">,</span> <span class="mi">50</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DetectorSignature'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TestSystemName'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TestStationRevision'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'CoreBundleRevision'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'AcquisitionName'</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'AcquisitionParameterRevision'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'OriginalNumberOfRows'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'OriginalNumberOfColumns'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'RowNumberUpperLeftPointArchiveROI'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ColNumberUpperLeftPointArchiveROI'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'Swapped'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'Reordered'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'HorizontalFlipped'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'VerticalFlipped'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'WindowValueDesired'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'LevelValueDesired'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'AcquisitionMode'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'AcquisitionType'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'UserAcquisitionCoffFileName1'</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'UserAcquisitionCoffFileName2'</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FramesBeforeExpose'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FramesDuringExpose'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FramesAfterExpose'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'IntervalBetweenFrames'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ExposeTimeDelayInMicrosecs'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TimeBetweenFramesInMicrosecs'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FramesToSkipExpose'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ExposureMode'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'PrepPresetTimeInMicrosecs'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ExposePresetTimeInMicrosecs'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'AcquisitionFrameRateInFps'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FOVSelect'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ExpertMode'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetVCommon1'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetVCommon2'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetAREF'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetAREFTrim'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetSpareVoltageSource'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetCompensationVoltageSource'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetRowOffVoltage'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetRowOnVoltage'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'StoreCompensationVoltage'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'RampSelection'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TimingMode'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'Bandwidth'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ARCIntegrator'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ARCPostIntegrator'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'NumberOfRows'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'RowEnable'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'EnableStretch'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'CompEnable'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'CompStretch'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'LeftEvenTristate'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'RightOddTristate'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TestModeSelect'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'AnalogTestSource'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'VCommonSelect'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DRCColumnSum'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TestPatternFrameDelta'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TestPatternRowDelta'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TestPatternColumnDelta'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DetectorHorizontalFlip'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DetectorVerticalFlip'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DFNAutoScrubOnOff'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FiberChannelTimeOutInMicrosecs'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DFNAutoScrubDelayInMicrosecs'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'StoreAECROI'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TestPatternSaturationValue'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TestPatternSeed'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ExposureTimeInMillisecs'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FrameRateInFps'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'kVp'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'mA'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'mAs'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FocalSpotInMM'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'GeneratorType'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'StrobeIntensityInFtL'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'NDFilterSelection'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'RefRegTemp1'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'RefRegTemp2'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'RefRegTemp3'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'Humidity1'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'Humidity2'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DetectorControlTemp'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DoseValueInmR'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TargetLevelROIRow0'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TargetLevelROICol0'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TargetLevelROIRow1'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TargetLevelROICol1'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FrameNumberForTargetLevelROI'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'PercentRangeForTargetLevel'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TargetValue'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ComputedMedianValue'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'LoadZero'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'MaxLUTOut'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'MinLUTOut'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'MaxLinear'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'Reserved'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ElectronsPerCount'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ModeGain'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'TemperatureInDegC'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'LineRepaired'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'LineRepairFileName'</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'CurrentLongitudinalInMM'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'CurrentTransverseInMM'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'CurrentCircularInMM'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=f'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'CurrentFilterSelection'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s">'=L'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DisableScrubAck'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ScanModeSelect'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DetectorAppSwVersion'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DetectorNIOSVersion'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DetectorPeripheralSetVersion'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DetectorPhysicalAddress'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'PowerDown'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'InitialVoltageLevel_VCOMMON'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FinalVoltageLevel_VCOMMON'</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="s">'=d'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DmrCollimatorSpotSize'</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DmrTrack'</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'DmrFilter'</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FilterCarousel'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'Phantom'</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetEnableHighTime'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetEnableLowTime'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetCompHighTime'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetCompLowTime'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetSyncLowTime'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetConvertLowTime'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetSyncHighTime'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetEOLTime'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'SetRampOffsetTime'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FOVStartingValue'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'ColumnBinning'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'RowBinning'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'BorderColumns64'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'BorderRows64'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FETOffRows64'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FOVStartColumn128'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'FOVStartRow128'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'NumberOfColumns128'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'NumberOfRows128'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s">'=H'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'VFPAquisition'</span><span class="p">,</span> <span class="mi">2000</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'Comment'</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
+    <span class="p">]</span>
+
+
+<div class="viewcode-block" id="GEimage"><a class="viewcode-back" href="../../api/modules.html#fabio.GEimage.GEimage">[docs]</a><span class="k">class</span> <span class="nc">GEimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+
+    <span class="n">_need_a_seek_to_read</span> <span class="o">=</span> <span class="bp">True</span>
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">""" Read a GE image header """</span>
+
+        <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">nbytes</span><span class="p">,</span> <span class="n">format</span> <span class="ow">in</span> <span class="n">GE_HEADER_INFO</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">format</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span> <span class="n">name</span> <span class="p">]</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">nbytes</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span> <span class="n">name</span> <span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">format</span><span class="p">,</span>
+                                                     <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">nbytes</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span>
+
+<div class="viewcode-block" id="GEimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.GEimage.GEimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in header into self.header and</span>
+<span class="sd">        the data   into self.data</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">frame</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">frame</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">sequencefilename</span> <span class="o">=</span> <span class="n">fname</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NumberOfFrames'</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readframe</span><span class="p">(</span><span class="n">infile</span><span class="p">,</span> <span class="n">frame</span><span class="p">)</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div>
+    <span class="k">def</span> <span class="nf">_makeframename</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" The thing to be printed for the user to represent a frame inside</span>
+<span class="sd">        a file """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">$</span><span class="si">%04d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequencefilename</span><span class="p">,</span>
+                                   <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">_readframe</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filepointer</span><span class="p">,</span> <span class="n">img_num</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        # Load only one image from the sequence</span>
+<span class="sd">        #    Note: the first image in the sequence 0</span>
+<span class="sd">        # raises an exception if you give an invalid image</span>
+<span class="sd">        # otherwise fills in self.data</span>
+<span class="sd">        """</span>
+        <span class="k">if</span><span class="p">(</span><span class="n">img_num</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span> <span class="ow">or</span> <span class="n">img_num</span> <span class="o"><</span> <span class="mi">0</span><span class="p">):</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Bad image number"</span><span class="p">)</span>
+        <span class="n">imgstart</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'StandardHeaderSizeInBytes'</span><span class="p">]</span> <span class="o">+</span> \
+                   <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'UserHeaderSizeInBytes'</span><span class="p">]</span> <span class="o">+</span> \
+                   <span class="n">img_num</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NumberOfRowsInFrame'</span><span class="p">]</span> <span class="o">*</span> \
+                   <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NumberOfColsInFrame'</span><span class="p">]</span> <span class="o">*</span> \
+                   <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'ImageDepthInBits'</span><span class="p">]</span> <span class="o">/</span> <span class="mi">8</span>
+        <span class="c"># whence = 0 means seek from start of file</span>
+        <span class="n">filepointer</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">imgstart</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'ImageDepthInBits'</span><span class="p">]</span> <span class="o">/</span> <span class="mi">8</span> <span class="c"># hopefully 2        </span>
+        <span class="n">imglength</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NumberOfRowsInFrame'</span><span class="p">]</span> <span class="o">*</span> \
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NumberOfColsInFrame'</span><span class="p">]</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">!=</span> <span class="mi">2</span><span class="p">:</span>
+            <span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Using uint16 for GE but seems to be wrong"</span><span class="p">)</span>
+
+        <span class="c"># Guessing it is always unsigned int?</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">filepointer</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">imglength</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NumberOfRowsInFrame'</span><span class="p">],</span>
+                            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NumberOfColsInFrame'</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">img_num</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_makeframename</span><span class="p">()</span>
+
+
+<div class="viewcode-block" id="GEimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.GEimage.GEimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">force_type</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">):</span>
+        <span class="sd">""" Not yet implemented"""</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Write is not implemented"</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="GEimage.getframe"><a class="viewcode-back" href="../../api/modules.html#fabio.GEimage.GEimage.getframe">[docs]</a>    <span class="k">def</span> <span class="nf">getframe</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Returns a frame as a new fabioimage object</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">num</span> <span class="o"><</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">num</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Requested frame number is out of range"</span><span class="p">)</span>
+        <span class="c"># Do a deep copy of the header to make a new one</span>
+        <span class="n">newheader</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+            <span class="n">newheader</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">k</span><span class="p">]</span>
+        <span class="n">frame</span> <span class="o">=</span> <span class="n">GEimage</span><span class="p">(</span><span class="n">header</span><span class="o">=</span><span class="n">newheader</span><span class="p">)</span>
+        <span class="n">frame</span><span class="o">.</span><span class="n">nframes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span>
+        <span class="n">frame</span><span class="o">.</span><span class="n">sequencefilename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sequencefilename</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="n">frame</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequencefilename</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="n">frame</span><span class="o">.</span><span class="n">_readframe</span><span class="p">(</span><span class="n">infile</span><span class="p">,</span> <span class="n">num</span><span class="p">)</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="k">return</span> <span class="n">frame</span>
+</div>
+<div class="viewcode-block" id="GEimage.next"><a class="viewcode-back" href="../../api/modules.html#fabio.GEimage.GEimage.next">[docs]</a>    <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Get the next image in a series as a fabio image</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o"><</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nframes</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span> <span class="o">></span> <span class="mi">1</s [...]
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">getframe</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">newobj</span> <span class="o">=</span> <span class="n">GEimage</span><span class="p">()</span>
+            <span class="n">newobj</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">next_filename</span><span class="p">(</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">sequencefilename</span><span class="p">))</span>
+            <span class="k">return</span> <span class="n">newobj</span>
+</div>
+<div class="viewcode-block" id="GEimage.previous"><a class="viewcode-back" href="../../api/modules.html#fabio.GEimage.GEimage.previous">[docs]</a>    <span class="k">def</span> <span class="nf">previous</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Get the previous image in a series as a fabio image</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">getframe</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">newobj</span> <span class="o">=</span> <span class="n">GEimage</span><span class="p">()</span>
+            <span class="n">newobj</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">previous_filename</span><span class="p">(</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">sequencefilename</span><span class="p">))</span>
+            <span class="k">return</span> <span class="n">newobj</span>
+
+</div></div>
+<div class="viewcode-block" id="demo"><a class="viewcode-back" href="../../api/modules.html#fabio.GEimage.demo">[docs]</a><span class="k">def</span> <span class="nf">demo</span><span class="p">():</span>
+    <span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">time</span>
+
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span> <span class="o"><</span> <span class="mi">2</span><span class="p">:</span>
+        <span class="k">print</span> <span class="s">"USAGE: GE_script.py <GEaSi_raw_image_file>"</span>
+        <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">()</span>
+
+    <span class="n">image_file</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+
+    <span class="k">print</span> <span class="s">"init read_GEaSi_data class and load header.."</span>
+    <span class="n">sequence1</span> <span class="o">=</span> <span class="n">GEimage</span><span class="p">()</span>
+    <span class="n">sequence1</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">image_file</span><span class="p">)</span>
+
+    <span class="k">print</span> <span class="s">"TimeBetweenFramesInMicrosecs = "</span><span class="p">,</span>
+    <span class="k">print</span> <span class="n">sequence1</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'TimeBetweenFramesInMicrosecs'</span><span class="p">]</span>
+    <span class="k">print</span> <span class="s">"AcquisitionTime = "</span><span class="p">,</span>
+    <span class="k">print</span> <span class="n">sequence1</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'AcquisitionTime'</span><span class="p">]</span>
+
+
+    <span class="k">print</span> <span class="s">"Mean = "</span><span class="p">,</span> <span class="n">sequence1</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ravel</span><span class="p">()</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span>
+
+    <span class="k">while</span> <span class="mi">1</span><span class="p">:</span>
+        <span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">sequence1</span> <span class="o">=</span> <span class="n">sequence1</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
+            <span class="k">print</span> <span class="n">sequence1</span><span class="o">.</span><span class="n">currentframe</span><span class="p">,</span> <span class="n">sequence1</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ravel</span><span class="p">()</span><span class="o">.</span><span class="n">mean</span><span class="p">(),</span> \
+                  <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">start</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">ex</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="n">ex</span>
+
+
+
+</div>
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span>
+    <span class="n">demo</span><span class="p">()</span>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/HiPiCimage.html b/doc/html/_modules/fabio/HiPiCimage.html
new file mode 100644
index 0000000..8d85755
--- /dev/null
+++ b/doc/html/_modules/fabio/HiPiCimage.html
@@ -0,0 +1,199 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.HiPiCimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.HiPiCimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="sd">"""</span>
+<span class="sd">Authors: Henning O. Sorensen & Erik Knudsen</span>
+<span class="sd">         Center for Fundamental Research: Metal Structures in Four Dimensions</span>
+<span class="sd">         Risoe National Laboratory</span>
+<span class="sd">         Frederiksborgvej 399</span>
+<span class="sd">         DK-4000 Roskilde</span>
+<span class="sd">         email:erik.knudsen at risoe.dk</span>
+
+<span class="sd">        + Jon Wright, ESRF</span>
+
+<span class="sd">Information about the file format from Masakatzu Kobayashi is highly appreciated</span>
+<span class="sd">"""</span>
+
+<span class="kn">import</span> <span class="nn">numpy</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"HiPiCimage"</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+
+<span class="k">class</span> <span class="nc">HiPiCimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+<div class="viewcode-block" id="HiPiCimage"><a class="viewcode-back" href="../../api/modules.html#fabio.HiPiCimage.HiPiCimage">[docs]</a>    <span class="sd">""" Read HiPic images e.g. collected with a Hamamatsu CCD camera"""</span>
+
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in a header from an already open file</span>
+
+<span class="sd">        """</span>
+        <span class="n">Image_tag</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+        <span class="k">print</span> <span class="n">Image_tag</span>
+        <span class="n">Comment_len</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+        <span class="n">Dim_1</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">Dim_2</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">Dim_1_offset</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">Dim_2_offset</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">HeaderType</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">Dump</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
+        <span class="n">Comment</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">Comment_len</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Image_tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">Image_tag</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_1'</span><span class="p">]</span> <span class="o">=</span> <span class="n">Dim_1</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_2'</span><span class="p">]</span> <span class="o">=</span> <span class="n">Dim_2</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_1_offset'</span><span class="p">]</span> <span class="o">=</span> <span class="n">Dim_1_offset</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_2_offset'</span><span class="p">]</span> <span class="o">=</span> <span class="n">Dim_2_offset</span>
+        <span class="c">#self.header['Comment'] = Comment</span>
+        <span class="k">if</span> <span class="n">Image_tag</span> <span class="o">!=</span> <span class="s">'IM'</span> <span class="p">:</span>
+            <span class="c"># This does not look like an HiPic file</span>
+            <span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"no opening.  Corrupt header of HiPic file "</span> <span class="o">+</span> \
+                            <span class="nb">str</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+        <span class="n">Comment_split</span> <span class="o">=</span> <span class="n">Comment</span><span class="p">[:</span><span class="n">Comment</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">'</span><span class="se">\x00</span><span class="s">'</span><span class="p">)]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'</span><span class="se">\r\n</span><span class="s">' [...]
+
+        <span class="k">for</span> <span class="n">topcomment</span> <span class="ow">in</span> <span class="n">Comment_split</span><span class="p">:</span>
+            <span class="n">topsplit</span> <span class="o">=</span> <span class="n">topcomment</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">','</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">topsplit</span><span class="p">:</span>
+                <span class="k">if</span> <span class="s">'='</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
+                    <span class="n">key</span><span class="p">,</span> <span class="n">val</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'='</span> <span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+                    <span class="c"># Users cannot type in significant whitespace</span>
+                    <span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span><span class="o">.</span><span class="n">lstrip</span><span class="p">(</span><span class="s">'"'</span><span class="p">)</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s">'"'</span><span cla [...]
+
+    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+<div class="viewcode-block" id="HiPiCimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.HiPiCimage.HiPiCimage.read">[docs]</a>        <span class="sd">"""</span>
+<span class="sd">        Read in header into self.header and</span>
+<span class="sd">            the data   into self.data</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="c"># Compute image size</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_1'</span><span class="p">])</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_2'</span><span class="p">])</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"HiPic file"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="o">+</span> \
+                                <span class="s">"is corrupt, cannot read it"</span><span class="p">)</span>
+        <span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+
+        <span class="c"># Read image data</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span><span class="p">)</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+        <span class="c">#now read the data into the array</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span>
+                <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">),</span>
+                <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">])</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">print</span> <span class="nb">len</span><span class="p">(</span><span class="n">block</span><span class="p">),</span> <span class="n">bytecode</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> \
+              <span class="s">'Size spec in HiPic-header does not match size of image data field'</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">type</span>
+
+        <span class="c"># Sometimes these files are not saved as 12 bit,</span>
+        <span class="c"># But as 16 bit after bg subtraction - which results </span>
+        <span class="c"># negative values saved as 16bit. Therefore values higher </span>
+        <span class="c"># 4095 is really negative values</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">max</span><span class="p">()</span> <span class="o">></span> <span class="mi">4095</span><span class="p">:</span>
+            <span class="n">gt12bit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">></span> <span class="mi">4095</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">-</span> <span class="n">gt12bit</span> <span class="o">*</span> <span class="p">(</span><span class="mi">2</span> <span class="o">**</span> <span class="mi">16</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
+
+        <span class="c"># ensure the PIL image is reset</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</pre></div></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/OXDimage.html b/doc/html/_modules/fabio/OXDimage.html
new file mode 100644
index 0000000..26fa978
--- /dev/null
+++ b/doc/html/_modules/fabio/OXDimage.html
@@ -0,0 +1,537 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.OXDimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.OXDimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#coding: utf8</span>
+
+<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">with_statement</span>
+<span class="n">__doc__</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">Reads Oxford Diffraction Sapphire 3 images</span>
+
+<span class="s">Authors:</span>
+<span class="s">........</span>
+<span class="s">* Henning O. Sorensen & Erik Knudsen:</span>
+<span class="s">  Center for Fundamental Research: Metal Structures in Four Dimensions;</span>
+<span class="s">  Risoe National Laboratory;</span>
+<span class="s">  Frederiksborgvej 399;</span>
+<span class="s">  DK-4000 Roskilde;</span>
+<span class="s">  email:erik.knudsen at risoe.dk</span>
+<span class="s">* Jon Wright, Jérôme Kieffer & Gaël Goret:</span>
+<span class="s">  European Synchrotron Radiation Facility;</span>
+<span class="s">  Grenoble (France)</span>
+
+<span class="s">"""</span>
+
+<span class="kn">import</span> <span class="nn">time</span><span class="o">,</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">struct</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"OXDimage"</span><span class="p">)</span>
+<span class="kn">import</span> <span class="nn">numpy</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">from</span> <span class="nn">compression</span> <span class="kn">import</span> <span class="n">decTY1</span><span class="p">,</span> <span class="n">compTY1</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">rad2deg</span><span class="p">,</span> <span class="n">deg2rad</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span> <span class="c">#naive implementation for very old numpy (v1.0.1 on MacOSX from Risoe)</span>
+    <span class="n">rad2deg</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="mf">180.0</span> <span class="o">*</span> <span class="n">x</span> <span class="o">/</span> <span class="n">numpy</span><span class="o">.</span><span class="n">pi</span>
+    <span class="n">deg2rad</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span> <span class="o">*</span> <span class="n">numpy</span><span class="o">.</span><span class="n">pi</span> <span class="o">/</span> <span class="mf">180.</span>
+
+<span class="n">DETECTOR_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">:</span> <span class="s">'Sapphire/KM4CCD (1x1: 0.06mm, 2x2: 0.12mm)'</span><span class="p">,</span>
+<span class="mi">1</span><span class="p">:</span> <span class="s">'Sapphire2-Kodak (1x1: 0.06mm, 2x2: 0.12mm)'</span><span class="p">,</span>
+<span class="mi">2</span><span class="p">:</span> <span class="s">'Sapphire3-Kodak (1x1: 0.03mm, 2x2: 0.06mm, 4x4: 0.12mm)'</span><span class="p">,</span>
+<span class="mi">3</span><span class="p">:</span> <span class="s">'Onyx-Kodak (1x1: 0.06mm, 2x2: 0.12mm, 4x4: 0.24mm)'</span><span class="p">,</span>
+<span class="mi">4</span><span class="p">:</span> <span class="s">'Unknown Oxford diffraction detector'</span><span class="p">}</span>
+
+<span class="n">DEFAULT_HEADERS</span> <span class="o">=</span> <span class="p">{</span><span class="s">'Header Version'</span><span class="p">:</span>  <span class="s">'OD SAPPHIRE  3.0'</span><span class="p">,</span>
+                   <span class="s">'Compression'</span><span class="p">:</span> <span class="s">"TY1"</span><span class="p">,</span>
+                   <span class="s">'Header Size In Bytes'</span><span class="p">:</span> <span class="mi">5120</span><span class="p">,</span>
+                   <span class="s">"ASCII Section size in Byte"</span><span class="p">:</span> <span class="mi">256</span><span class="p">,</span>
+                   <span class="s">"General Section size in Byte"</span><span class="p">:</span> <span class="mi">512</span><span class="p">,</span>
+                   <span class="s">"Special Section size in Byte"</span><span class="p">:</span> <span class="mi">768</span><span class="p">,</span>
+                   <span class="s">"KM4 Section size in Byte"</span><span class="p">:</span> <span class="mi">1024</span><span class="p">,</span>
+                   <span class="s">"Statistic Section in Byte"</span><span class="p">:</span> <span class="mi">512</span><span class="p">,</span>
+                   <span class="s">"History Section in Byte"</span><span class="p">:</span> <span class="mi">2048</span><span class="p">,</span>
+                   <span class="s">'NSUPPLEMENT'</span><span class="p">:</span><span class="mi">0</span>
+                   <span class="p">}</span>
+
+<div class="viewcode-block" id="OXDimage"><a class="viewcode-back" href="../../api/modules.html#fabio.OXDimage.OXDimage">[docs]</a><span class="k">class</span> <span class="nc">OXDimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Oxford Diffraction Sapphire 3 images reader/writer class</span>
+<span class="sd">    """</span>
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+
+        <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+
+        <span class="c"># Ascii header part 256 byes long</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Header Version'</span><span class="p">]</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()[:</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Compression'</span><span class="p">]</span> <span class="o">=</span> <span class="n">block</span><span class="p">[</span><span class="mi">12</span><span class="p">:</span><span class="mi">15</span><span class="p">]</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NX'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">3</span><span class="p">:</span><span class="mi">7</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NY'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">11</span><span class="p">:</span><span class="mi">15</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'OI'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">19</span><span class="p">:</span><span class="mi">26</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'OL'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">30</span><span class="p">:</span><span class="mi">37</span><span class="p">])</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Header Size In Bytes'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">8</span><span class="p">:</span><span class="mi">15</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'General Section size in Byte'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">19</span><span class="p">:</span><span class="mi">26</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Special Section size in Byte'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">30</span><span class="p">:</span><span class="mi">37</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'KM4 Section size in Byte'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">41</span><span class="p">:</span><span class="mi">48</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Statistic Section in Byte'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">52</span><span class="p">:</span><span class="mi">59</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'History Section in Byte'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">63</span><span class="p">:])</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NSUPPLEMENT'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">12</span><span class="p">:</span><span class="mi">19</span><span class="p">])</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Time'</span><span class="p">]</span> <span class="o">=</span> <span class="n">block</span><span class="p">[</span><span class="mi">5</span><span class="p">:</span><span class="mi">29</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"ASCII Section size in Byte"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Header Size In Bytes'</span><span class="p">]</span>\
+                                                <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'General Section size in Byte'</span><span class="p">]</span>\
+                                                <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Special Section size in Byte'</span><span class="p">]</span> \
+                                                <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'KM4 Section size in Byte'</span><span class="p">]</span>\
+                                                <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Statistic Section in Byte'</span><span class="p">]</span>\
+                                                <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'History Section in Byte'</span><span class="p">]</span>\
+        <span class="c"># Skip to general section (NG) 512 byes long <<<<<<"</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"ASCII Section size in Byte"</span><span class="p">])</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'General Section size in Byte'</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Binning in x'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">2</span><span class="p">],</span> <span class="n">numpy</ [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Binning in y'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">2</span><span class="p">:</span><span class="mi">4</span><span class="p">],</span> <span class="n">numpy</ [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Detector size x'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">22</span><span class="p">:</span><span class="mi">24</span><span class="p">],</span> <span class="n">nu [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Detector size y'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">24</span><span class="p">:</span><span class="mi">26</span><span class="p">],</span> <span class="n">nu [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Pixels in x'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">26</span><span class="p">:</span><span class="mi">28</span><span class="p">],</span> <span class="n">numpy< [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Pixels in y'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">28</span><span class="p">:</span><span class="mi">30</span><span class="p">],</span> <span class="n">numpy< [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'No of pixels'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">36</span><span class="p">:</span><span class="mi">40</span><span class="p">],</span> <span class="n">numpy [...]
+
+        <span class="c"># Speciel section (NS) 768 bytes long</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Special Section size in Byte'</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Gain'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">56</span><span class="p">:</span><span class="mi">64</span><span class="p">],</span> <span class="n">numpy</span>< [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Overflows flag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">464</span><span class="p">:</span><span class="mi">466</span><span class="p">],</span> <span class="n">n [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Overflow after remeasure flag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">466</span><span class="p">:</span><span class="mi">468</span><span class="p">],</span> <s [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Overflow threshold'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">472</span><span class="p">:</span><span class="mi">476</span><span class="p">],</span> <span class=" [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Exposure time in sec'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">480</span><span class="p">:</span><span class="mi">488</span><span class="p">],</span> <span class [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Overflow time in sec'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">488</span><span class="p">:</span><span class="mi">496</span><span class="p">],</span> <span class [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Monitor counts of raw image 1'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">528</span><span class="p">:</span><span class="mi">532</span><span class="p">],</span> <s [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Monitor counts of raw image 2'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">532</span><span class="p">:</span><span class="mi">536</span><span class="p">],</span> <s [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Monitor counts of overflow raw image 1'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">536</span><span class="p">:</span><span class="mi">540</span><span class="p">],< [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Monitor counts of overflow raw image 2'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">540</span><span class="p">:</span><span class="mi">544</span><span class="p">],< [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Unwarping'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">544</span><span class="p">:</span><span class="mi">548</span><span class="p">],</span> <span class="n">numpy< [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Detector type'</span><span class="p">]</span> <span class="o">=</span> <span class="n">DETECTOR_TYPES</span><span class="p">[</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">548</span><span class="p">:</span><span clas [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Real pixel size x (mm)'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">568</span><span class="p">:</span><span class="mi">576</span><span class="p">],</span> <span cla [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Real pixel size y (mm)'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">576</span><span class="p">:</span><span class="mi">584</span><span class="p">],</span> <span cla [...]
+
+        <span class="c"># KM4 goniometer section (NK) 1024 bytes long</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'KM4 Section size in Byte'</span><span class="p">])</span>
+        <span class="c"># Spatial correction file</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Spatial correction file'</span><span class="p">]</span> <span class="o">=</span> <span class="n">block</span><span class="p">[</span><span class="mi">26</span><span class="p">:</span><span class="mi">272</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">"</span><span class="se [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Spatial correction file date'</span><span class="p">]</span> <span class="o">=</span> <span class="n">block</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">26</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">"</span><span class= [...]
+        <span class="c"># Angles are in steps due to stepper motors - conversion factor RAD</span>
+        <span class="c"># angle[0] = omega, angle[1] = theta, angle[2] = kappa, angle[3] = phi,   </span>
+        <span class="n">start_angles_step</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">284</span><span class="p">:</span><span class="mi">304</span><span class="p">],</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">end_angles_step</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">324</span><span class="p">:</span><span class="mi">344</span><span class="p">],</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">step2rad</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">368</span><span class="p">:</span><span class="mi">408</span><span class="p">],</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float</span><span class="p">)</span>
+        <span class="n">step_angles_deg</span> <span class="o">=</span> <span class="n">rad2deg</span><span class="p">(</span><span class="n">step2rad</span><span class="p">)</span>
+        <span class="c"># calc angles</span>
+        <span class="n">start_angles_deg</span> <span class="o">=</span> <span class="n">start_angles_step</span> <span class="o">*</span> <span class="n">step_angles_deg</span>
+        <span class="n">end_angles_deg</span> <span class="o">=</span> <span class="n">end_angles_step</span> <span class="o">*</span> <span class="n">step_angles_deg</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Omega start in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">start_angles_deg</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Theta start in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">start_angles_deg</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Kappa start in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">start_angles_deg</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Phi start in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">start_angles_deg</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Omega end in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">end_angles_deg</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Theta end in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">end_angles_deg</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Kappa end in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">end_angles_deg</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Phi end in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">end_angles_deg</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Omega step in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">step_angles_deg</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Theta step in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">step_angles_deg</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Kappa step in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">step_angles_deg</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Phi step in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">step_angles_deg</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
+
+
+        <span class="n">zero_correction_soft_step</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">512</span><span class="p">:</span><span class="mi">532</span><span class="p">],</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">zero_correction_soft_deg</span> <span class="o">=</span> <span class="n">zero_correction_soft_step</span> <span class="o">*</span> <span class="n">step_angles_deg</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Omega zero corr. in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">zero_correction_soft_deg</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Theta zero corr. in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">zero_correction_soft_deg</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Kappa zero corr. in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">zero_correction_soft_deg</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Phi zero corr. in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">zero_correction_soft_deg</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
+        <span class="c"># Beam rotation about e2,e3</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Beam rot in deg (e2)'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">552</span><span class="p">:</span><span class="mi">560</span><span class="p">],</span> <span class [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Beam rot in deg (e3)'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">560</span><span class="p">:</span><span class="mi">568</span><span class="p">],</span> <span class [...]
+        <span class="c"># Wavelenghts alpha1, alpha2, beta</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Wavelength alpha1'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">568</span><span class="p">:</span><span class="mi">576</span><span class="p">],</span> <span class="n [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Wavelength alpha2'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">576</span><span class="p">:</span><span class="mi">584</span><span class="p">],</span> <span class="n [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Wavelength alpha'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">584</span><span class="p">:</span><span class="mi">592</span><span class="p">],</span> <span class="n" [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Wavelength beta'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">592</span><span class="p">:</span><span class="mi">600</span><span class="p">],</span> <span class="n"> [...]
+
+        <span class="c"># Detector tilts around e1,e2,e3 in deg</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Detector tilt e1 in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">640</span><span class="p">:</span><span class="mi">648</span><span class="p">],</span> <span cl [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Detector tilt e2 in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">648</span><span class="p">:</span><span class="mi">656</span><span class="p">],</span> <span cl [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Detector tilt e3 in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">656</span><span class="p">:</span><span class="mi">664</span><span class="p">],</span> <span cl [...]
+
+
+        <span class="c"># Beam center</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Beam center x'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">664</span><span class="p">:</span><span class="mi">672</span><span class="p">],</span> <span class="n">nu [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Beam center y'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">672</span><span class="p">:</span><span class="mi">680</span><span class="p">],</span> <span class="n">nu [...]
+        <span class="c"># Angle (alpha) between kappa rotation axis and e3 (ideally 50 deg)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Alpha angle in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">672</span><span class="p">:</span><span class="mi">680</span><span class="p">],</span> <span class=" [...]
+        <span class="c"># Angle (beta) between phi rotation axis and e3 (ideally 0 deg)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Beta angle in deg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">672</span><span class="p">:</span><span class="mi">680</span><span class="p">],</span> <span class="n [...]
+
+        <span class="c"># Detector distance</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Distance in mm'</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">712</span><span class="p">:</span><span class="mi">720</span><span class="p">],</span> <span class="n">n [...]
+        <span class="c"># Statistics section (NS) 512 bytes long</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Statistic Section in Byte'</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Stat: Min '</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">],</span> <span class="n">numpy</sp [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Stat: Max '</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">4</span><span class="p">:</span><span class="mi">8</span><span class="p">],</span> <span class="n">numpy</sp [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Stat: Average '</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">24</span><span class="p">:</span><span class="mi">32</span><span class="p">],</span> <span class="n">num [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Stat: Stddev '</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">32 [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Stat: Skewness '</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">block</span><span class="p">[</span><span class="mi">40</span><span class="p">:</span><span class="mi">48</span><span class="p">],</span> <span class="n">nu [...]
+
+        <span class="c"># History section (NH) 2048 bytes long</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'History Section in Byte'</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Flood field image'</span><span class="p">]</span> <span class="o">=</span> <span class="n">block</span><span class="p">[</span><span class="mi">99</span><span class="p">:</span><span class="mi">126</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">"</span><span class="se">\x00 [...]
+
+<div class="viewcode-block" id="OXDimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.OXDimage.OXDimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in header into self.header and</span>
+<span class="sd">            the data   into self.data</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+
+        <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Header Size In Bytes'</span><span class="p">])</span>
+
+        <span class="c"># Compute image size</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NX'</span><span class="p">])</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NY'</span><span class="p">])</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Oxford  file"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="o">+</span> \
+                                <span class="s">"is corrupt, cannot read it"</span><span class="p">)</span>
+        <span class="c">#</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Compression'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'TY1'</span><span class="p">:</span>
+            <span class="c">#Compressed with the KM4CCD compression</span>
+            <span class="n">raw8</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">)</span>
+            <span class="n">raw16</span> <span class="o">=</span> <span class="bp">None</span>
+            <span class="n">raw32</span> <span class="o">=</span> <span class="bp">None</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'OI'</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">raw16</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'OI'</span><span class="p">]</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'OL'</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">raw32</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'OL'</span><span class="p">]</span> <span class="o">*</span> <span class="mi">4</span><span class="p">)</span>
+            <span class="c">#DEBUG stuff ... </span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">raw8</span> <span class="o">=</span> <span class="n">raw8</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">raw16</span> <span class="o">=</span> <span class="n">raw16</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">raw32</span> <span class="o">=</span> <span class="n">raw32</span>
+            <span class="c">#END DEBUG</span>
+            <span class="n">block</span> <span class="o">=</span> <span class="n">decTY1</span><span class="p">(</span><span class="n">raw8</span><span class="p">,</span> <span class="n">raw16</span><span class="p">,</span> <span class="n">raw32</span><span class="p">)</span>
+            <span class="n">bytecode</span> <span class="o">=</span> <span class="n">block</span><span class="o">.</span><span class="n">dtype</span>
+
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+            <span class="n">ReadBytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span>
+            <span class="n">block</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">ReadBytes</span><span class="p">),</span> <span class="n">bytecode</span><span class="p">)</span>
+
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'OVER_SHORT2: </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="n">block</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">block</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">sum</span><span class="p">())</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"BYTECODE: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">block</span><span class="o">.</span><span class="n">reshape</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">))</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">type</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div>
+    <span class="k">def</span> <span class="nf">_writeheader</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        @return a string containing the header for Oxford images</span>
+<span class="sd">        """</span>
+        <span class="n">linesep</span> <span class="o">=</span> <span class="s">"</span><span class="se">\r\n</span><span class="s">"</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">DEFAULT_HEADERS</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">DEFAULT_HEADERS</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+
+        <span class="k">if</span> <span class="s">"NX"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> <span class="ow">or</span> <span class="s">"NY"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span  [...]
+			<span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NX'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span>
+			<span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NY'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span>
+        <span class="n">ascii_headers</span> <span class="o">=</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Header Version'</span><span class="p">],</span>
+                       <span class="s">"COMPRESSION=</span><span class="si">%s</span><span class="s"> (</span><span class="si">%5.1f</span><span class="s">)"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"Compression"</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">getCompressionRatio</sp [...]
+                       <span class="s">"NX=</span><span class="si">%4i</span><span class="s"> NY=</span><span class="si">%4i</span><span class="s"> OI=</span><span class="si">%7i</span><span class="s"> OL=</span><span class="si">%7i</span><span class="s"> "</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"NX"</span><span class="p">],</span>  [...]
+                       <span class="s">"NHEADER=</span><span class="si">%7i</span><span class="s"> NG=</span><span class="si">%7i</span><span class="s"> NS=</span><span class="si">%7i</span><span class="s"> NK=</span><span class="si">%7i</span><span class="s"> NS=</span><span class="si">%7i</span><span class="s"> NH=</span><span class="si">%7i</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><spa [...]
+                                                                                 <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'General Section size in Byte'</span><span class="p">],</span>
+                                                                                 <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Special Section size in Byte'</span><span class="p">],</span>
+                                                                                 <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'KM4 Section size in Byte'</span><span class="p">],</span>
+                                                                                 <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Statistic Section in Byte'</span><span class="p">],</span>
+                                                                                 <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'History Section in Byte'</span><span class="p">]),</span>
+                        <span class="s">"NSUPPLEMENT=</span><span class="si">%7i</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"NSUPPLEMENT"</span><span class="p">])]</span>
+        <span class="k">if</span> <span class="s">"Time"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">ascii_headers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"TIME=</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"Time"</span><span class="p">])</span>
+        <span class="k">else</span><span class="p">:</span>
+
+            <span class="n">ascii_headers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"TIME=</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">time</span><span class="o">.</span><span class="n">ctime</span><span class="p">())</span>
+
+        <span class="n">header</span> <span class="o">=</span> <span class="p">(</span><span class="n">linesep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ascii_headers</span><span class="p">))</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">256</span><span class="p">)</span>
+
+
+        <span class="n">NG</span> <span class="o">=</span> <span class="n">Section</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'General Section size in Byte'</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span>
+        <span class="n">NG</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Binning in x'</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+        <span class="n">NG</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Binning in y'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+        <span class="n">NG</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Detector size x'</span><span class="p">,</span> <span class="mi">22</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+        <span class="n">NG</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Detector size y'</span><span class="p">,</span> <span class="mi">24</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+        <span class="n">NG</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Pixels in x'</span><span class="p">,</span> <span class="mi">26</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+        <span class="n">NG</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Pixels in y'</span><span class="p">,</span> <span class="mi">28</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+        <span class="n">NG</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'No of pixels'</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)</span>
+        <span class="n">header</span> <span class="o">+=</span> <span class="n">NG</span><span class="o">.</span><span class="n">__repr__</span><span class="p">()</span>
+
+        <span class="n">NS</span> <span class="o">=</span> <span class="n">Section</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Special Section size in Byte'</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Gain'</span><span class="p">,</span> <span class="mi">56</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Overflows flag'</span><span class="p">,</span> <span class="mi">464</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int16</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Overflow after remeasure flag'</span><span class="p">,</span> <span class="mi">466</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int16</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Overflow threshold'</span><span class="p">,</span> <span class="mi">472</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Exposure time in sec'</span><span class="p">,</span> <span class="mi">480</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Overflow time in sec'</span><span class="p">,</span> <span class="mi">488</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Monitor counts of raw image 1'</span><span class="p">,</span> <span class="mi">528</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Monitor counts of raw image 2'</span><span class="p">,</span> <span class="mi">532</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Monitor counts of overflow raw image 1'</span><span class="p">,</span> <span class="mi">536</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Monitor counts of overflow raw image 2'</span><span class="p">,</span> <span class="mi">540</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Unwarping'</span><span class="p">,</span> <span class="mi">544</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="k">if</span> <span class="s">'Detector type'</span> <span class="ow">in</span>  <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span>  <span class="n">DETECTOR_TYPES</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                <span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Detector type'</span><span class="p">]:</span>
+                    <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">548</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">key</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Real pixel size x (mm)'</span><span class="p">,</span> <span class="mi">568</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float</span><span class="p">)</span>
+        <span class="n">NS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Real pixel size y (mm)'</span><span class="p">,</span> <span class="mi">576</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float</span><span class="p">)</span>
+        <span class="n">header</span> <span class="o">+=</span> <span class="n">NS</span><span class="o">.</span><span class="n">__repr__</span><span class="p">()</span>
+
+        <span class="n">KM</span> <span class="o">=</span> <span class="n">Section</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'KM4 Section size in Byte'</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Spatial correction file date'</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"|S26"</span><span class="p">)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Spatial correction file'</span><span class="p">,</span> <span class="mi">26</span><span class="p">,</span> <span class="s">"|S246"</span><span class="p">)</span>
+        <span class="c"># Angles are in steps due to stepper motors - conversion factor RAD</span>
+        <span class="c"># angle[0] = omega, angle[1] = theta, angle[2] = kappa, angle[3] = phi,</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Omega step in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+            <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">368</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">,</span> <span class="n">deg2rad</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span  [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Omega start in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">284</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"Omega start in deg"</span><span [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Omega end in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">324</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"Omega end in deg"</span><span c [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Omega zero corr. in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">512</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Omega zero corr. in deg'</span><s [...]
+
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Theta step in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+            <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">368</span> <span class="o">+</span> <span class="mi">8</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">,</span> <span class="n">deg2rad</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span cl [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Theta start in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">284</span> <span class="o">+</span> <span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span c [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Theta end in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">324</span> <span class="o">+</span> <span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span c [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Theta zero corr. in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">512</span> <span class="o">+</span> <span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span c [...]
+
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Kappa step in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+            <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">368</span> <span class="o">+</span> <span class="mi">16</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">,</span> <span class="n">deg2rad</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span c [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Kappa start in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">284</span> <span class="o">+</span> <span class="mi">8</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span c [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Kappa end in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">324</span> <span class="o">+</span> <span class="mi">8</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span c [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Kappa zero corr. in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">512</span> <span class="o">+</span> <span class="mi">8</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span c [...]
+
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Phi step in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+            <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">368</span> <span class="o">+</span> <span class="mi">24</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">,</span> <span class="n">deg2rad</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span c [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Phi start in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">284</span> <span class="o">+</span> <span class="mi">12</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span  [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Phi end in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">324</span> <span class="o">+</span> <span class="mi">12</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span  [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Phi zero corr. in deg'</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">512</span> <span class="o">+</span> <span class="mi">12</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span  [...]
+
+        <span class="c"># Beam rotation about e2,e3</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Beam rot in deg (e2)'</span><span class="p">,</span> <span class="mi">552</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Beam rot in deg (e3)'</span><span class="p">,</span> <span class="mi">560</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="c"># Wavelenghts alpha1, alpha2, beta</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Wavelength alpha1'</span><span class="p">,</span> <span class="mi">568</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Wavelength alpha2'</span><span class="p">,</span> <span class="mi">576</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Wavelength alpha'</span><span class="p">,</span> <span class="mi">584</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Wavelength beta'</span><span class="p">,</span> <span class="mi">592</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+
+        <span class="c"># Detector tilts around e1,e2,e3 in deg</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Detector tilt e1 in deg'</span><span class="p">,</span> <span class="mi">640</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Detector tilt e2 in deg'</span><span class="p">,</span> <span class="mi">648</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Detector tilt e3 in deg'</span><span class="p">,</span> <span class="mi">656</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+
+        <span class="c"># Beam center</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Beam center x'</span><span class="p">,</span> <span class="mi">664</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Beam center y'</span><span class="p">,</span> <span class="mi">672</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="c"># Angle (alpha) between kappa rotation axis and e3 (ideally 50 deg)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Alpha angle in deg'</span><span class="p">,</span> <span class="mi">672</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="c"># Angle (beta) between phi rotation axis and e3 (ideally 0 deg)</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Beta angle in deg'</span><span class="p">,</span> <span class="mi">672</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+
+        <span class="c"># Detector distance</span>
+        <span class="n">KM</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Distance in mm'</span><span class="p">,</span> <span class="mi">712</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="n">header</span> <span class="o">+=</span> <span class="n">KM</span><span class="o">.</span><span class="n">__repr__</span><span class="p">()</span>
+
+        <span class="n">SS</span> <span class="o">=</span> <span class="n">Section</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Statistic Section in Byte'</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span>
+        <span class="n">SS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Stat: Min '</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">SS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Stat: Max '</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="n">SS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Stat: Average '</span><span class="p">,</span> <span class="mi">24</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'Stat: Stddev '</span><span class="p">,</span> <span class="bp">None</span><span class="p">):</span>
+            <span class="n">SS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Stat: Stddev '</span><span class="p" [...]
+        <span class="n">SS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Stat: Skewness '</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">)</span>
+        <span class="n">header</span> <span class="o">+=</span> <span class="n">SS</span><span class="o">.</span><span class="n">__repr__</span><span class="p">()</span>
+
+        <span class="n">HS</span> <span class="o">=</span> <span class="n">Section</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'History Section in Byte'</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span>
+        <span class="n">HS</span><span class="o">.</span><span class="n">setData</span><span class="p">(</span><span class="s">'Flood field image'</span><span class="p">,</span> <span class="mi">99</span><span class="p">,</span> <span class="s">"|S27"</span><span class="p">)</span>
+        <span class="n">header</span> <span class="o">+=</span> <span class="n">HS</span><span class="o">.</span><span class="n">__repr__</span><span class="p">()</span>
+
+        <span class="k">return</span> <span class="n">header</span>
+
+
+<div class="viewcode-block" id="OXDimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.OXDimage.OXDimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""Write Oxford diffraction images: this is still beta</span>
+<span class="sd">        @param fname: output filename </span>
+<span class="sd">        """</span>
+        <span class="n">datablock8</span><span class="p">,</span> <span class="n">datablock16</span><span class="p">,</span> <span class="n">datablock32</span> <span class="o">=</span> <span class="n">compTY1</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"OI"</span><span class="p">]</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">datablock16</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"OL"</span><span class="p">]</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">datablock32</span><span class="p">)</span> <span class="o">/</span> <span class="mi">4</span>
+        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">"wb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_writeheader</span><span class="p">())</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">datablock8</span><span class="p">)</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">datablock16</span><span class="p">)</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">datablock32</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="OXDimage.getCompressionRatio"><a class="viewcode-back" href="../../api/modules.html#fabio.OXDimage.OXDimage.getCompressionRatio">[docs]</a>    <span class="k">def</span> <span class="nf">getCompressionRatio</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="s">"calculate the compression factor obtained vs raw data"</span>
+        <span class="k">return</span> <span class="mf">100.0</span> <span class="o">*</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">size</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"OI"</span><span class="p">]</span> < [...]
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="OXDimage.checkData"><a class="viewcode-back" href="../../api/modules.html#fabio.OXDimage.OXDimage.checkData">[docs]</a>    <span class="k">def</span> <span class="nf">checkData</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">None</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
+</div></div>
+<div class="viewcode-block" id="Section"><a class="viewcode-back" href="../../api/modules.html#fabio.OXDimage.Section">[docs]</a><span class="k">class</span> <span class="nc">Section</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Small helper class for writing binary headers</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">size</span><span class="p">,</span> <span class="n">dictHeader</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        @param size: size of the header section in bytes</span>
+<span class="sd">        @param dictHeader: headers of the image</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">size</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="n">dictHeader</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">lstChr</span> <span class="o">=</span> <span class="p">[</span><span class="s">"</span><span class="se">\x00</span><span class="s">"</span><span class="p">]</span> <span class="o">*</span> <span class="n">size</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_dictSize</span> <span class="o">=</span> <span class="p">{}</span>
+    <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span class="s">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lstChr</span><span class="p">)</span>
+
+<div class="viewcode-block" id="Section.getSize"><a class="viewcode-back" href="../../api/modules.html#fabio.OXDimage.Section.getSize">[docs]</a>    <span class="k">def</span> <span class="nf">getSize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">):</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_dictSize</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_dictSize</span><span class="p">[</span><span class="n">dtype</span><span class="p">]</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtype</span><span cla [...]
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_dictSize</span><span class="p">[</span><span class="n">dtype</span><span class="p">]</span>
+</div>
+<div class="viewcode-block" id="Section.setData"><a class="viewcode-back" href="../../api/modules.html#fabio.OXDimage.Section.setData">[docs]</a>    <span class="k">def</span> <span class="nf">setData</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">offset</span><span class="p">,</span> <span class="n">dtype</span><span class="p">,</span> <span class="n">default</span><span class="o">=</s [...]
+        <span class="sd">"""</span>
+<span class="sd">        @param offset: int, starting position in the section</span>
+<span class="sd">        @param key: name of the header key</span>
+<span class="sd">        @param dtype: type of the data to insert (defines the size!)</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+        <span class="k">elif</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">DEFAULT_HEADERS</span><span class="p">:</span>
+            <span class="n">value</span> <span class="o">=</span> <span class="n">DEFAULT_HEADERS</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">value</span> <span class="o">=</span> <span class="n">default</span>
+        <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">value</span> <span class="o">=</span> <span class="s">"</span><span class="se">\x00</span><span class="s">"</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">getSize</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">value</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">value</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">lstChr</span><span class="p">[</span><span class="n">offset</span><span class="p">:</span><span class="n">offset</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">getSize</span><span class="p">(</span><span class="n">dtype</span><span class="p">)]</span> <span class="o">=</span> <span class="n">value</span></div></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/TiffIO.html b/doc/html/_modules/fabio/TiffIO.html
new file mode 100644
index 0000000..19da0a5
--- /dev/null
+++ b/doc/html/_modules/fabio/TiffIO.html
@@ -0,0 +1,1290 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.TiffIO — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.TiffIO</h1><div class="highlight"><pre>
+<span class="c">#/*##########################################################################</span>
+<span class="c"># Copyright (C) 2012 European Synchrotron Radiation Facility</span>
+<span class="c">#</span>
+<span class="c"># This file is part of the PyMca X-ray Fluorescence Toolkit developed at</span>
+<span class="c"># the ESRF by the Software group.</span>
+<span class="c">#</span>
+<span class="c"># This file is free software; you can redistribute it and/or modify it </span>
+<span class="c"># under the terms of the GNU Lesser General Public License as published by the Free</span>
+<span class="c"># Software Foundation; either version 2 of the License, or (at your option) </span>
+<span class="c"># any later version.</span>
+<span class="c">#</span>
+<span class="c"># PyMca is distributed in the hope that it will be useful, but WITHOUT ANY</span>
+<span class="c"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
+<span class="c"># FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more</span>
+<span class="c"># details.</span>
+<span class="c">#</span>
+<span class="c">#############################################################################*/</span>
+<span class="n">__author__</span> <span class="o">=</span> <span class="s">"V.A. Sole - ESRF Data Analysis"</span>
+<span class="n">__revision__</span> <span class="o">=</span> <span class="mi">1501</span>
+
+<span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">struct</span>
+<span class="kn">import</span> <span class="nn">numpy</span>
+
+<span class="n">DEBUG</span> <span class="o">=</span> <span class="mi">0</span>
+<span class="n">ALLOW_MULTIPLE_STRIPS</span> <span class="o">=</span> <span class="bp">False</span>
+
+<span class="n">TAG_ID</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">256</span><span class="p">:</span><span class="s">"NumberOfColumns"</span><span class="p">,</span> <span class="c"># S or L ImageWidth</span>
+            <span class="mi">257</span><span class="p">:</span><span class="s">"NumberOfRows"</span><span class="p">,</span> <span class="c"># S or L ImageHeight</span>
+            <span class="mi">258</span><span class="p">:</span><span class="s">"BitsPerSample"</span><span class="p">,</span> <span class="c"># S Number of bits per component</span>
+            <span class="mi">259</span><span class="p">:</span><span class="s">"Compression"</span><span class="p">,</span> <span class="c"># SHORT (1 - NoCompression, ... </span>
+            <span class="mi">262</span><span class="p">:</span><span class="s">"PhotometricInterpretation"</span><span class="p">,</span> <span class="c"># SHORT (0 - WhiteIsZero, 1 -BlackIsZero, 2 - RGB, 3 - Palette color</span>
+            <span class="mi">270</span><span class="p">:</span><span class="s">"ImageDescription"</span><span class="p">,</span> <span class="c"># ASCII</span>
+            <span class="mi">273</span><span class="p">:</span><span class="s">"StripOffsets"</span><span class="p">,</span> <span class="c"># S or L, for each strip, the byte offset of the strip</span>
+            <span class="mi">278</span><span class="p">:</span><span class="s">"RowsPerStrip"</span><span class="p">,</span> <span class="c"># S or L, number of rows in each back may be not for the last</span>
+            <span class="mi">279</span><span class="p">:</span><span class="s">"StripByteCounts"</span><span class="p">,</span> <span class="c"># S or L, The number of bytes in the strip AFTER any compression</span>
+            <span class="mi">305</span><span class="p">:</span><span class="s">"Software"</span><span class="p">,</span> <span class="c"># ASCII</span>
+            <span class="mi">306</span><span class="p">:</span><span class="s">"Date"</span><span class="p">,</span> <span class="c"># ASCII</span>
+            <span class="mi">320</span><span class="p">:</span><span class="s">"Colormap"</span><span class="p">,</span> <span class="c"># Colormap of Palette-color Images </span>
+            <span class="mi">339</span><span class="p">:</span><span class="s">"SampleFormat"</span><span class="p">,</span> <span class="c"># SHORT Interpretation of data in each pixel</span>
+            <span class="p">}</span>
+
+<span class="c">#TILES ARE TO BE SUPPORTED TOO ...</span>
+<span class="n">TAG_NUMBER_OF_COLUMNS</span> <span class="o">=</span> <span class="mi">256</span>
+<span class="n">TAG_NUMBER_OF_ROWS</span> <span class="o">=</span> <span class="mi">257</span>
+<span class="n">TAG_BITS_PER_SAMPLE</span> <span class="o">=</span> <span class="mi">258</span>
+<span class="n">TAG_PHOTOMETRIC_INTERPRETATION</span> <span class="o">=</span> <span class="mi">262</span>
+<span class="n">TAG_COMPRESSION</span> <span class="o">=</span> <span class="mi">259</span>
+<span class="n">TAG_IMAGE_DESCRIPTION</span> <span class="o">=</span> <span class="mi">270</span>
+<span class="n">TAG_STRIP_OFFSETS</span> <span class="o">=</span> <span class="mi">273</span>
+<span class="n">TAG_ROWS_PER_STRIP</span> <span class="o">=</span> <span class="mi">278</span>
+<span class="n">TAG_STRIP_BYTE_COUNTS</span> <span class="o">=</span> <span class="mi">279</span>
+<span class="n">TAG_SOFTWARE</span> <span class="o">=</span> <span class="mi">305</span>
+<span class="n">TAG_DATE</span> <span class="o">=</span> <span class="mi">306</span>
+<span class="n">TAG_COLORMAP</span> <span class="o">=</span> <span class="mi">320</span>
+<span class="n">TAG_SAMPLE_FORMAT</span> <span class="o">=</span> <span class="mi">339</span>
+
+<span class="n">FIELD_TYPE</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">:(</span><span class="s">'BYTE'</span><span class="p">,</span> <span class="s">"B"</span><span class="p">),</span>
+               <span class="mi">2</span><span class="p">:(</span><span class="s">'ASCII'</span><span class="p">,</span> <span class="s">"s"</span><span class="p">),</span> <span class="c">#string ending with binary zero</span>
+               <span class="mi">3</span><span class="p">:(</span><span class="s">'SHORT'</span><span class="p">,</span> <span class="s">"H"</span><span class="p">),</span>
+               <span class="mi">4</span><span class="p">:(</span><span class="s">'LONG'</span><span class="p">,</span> <span class="s">"I"</span><span class="p">),</span>
+               <span class="mi">5</span><span class="p">:(</span><span class="s">'RATIONAL'</span><span class="p">,</span> <span class="s">"II"</span><span class="p">),</span>
+               <span class="mi">6</span><span class="p">:(</span><span class="s">'SBYTE'</span><span class="p">,</span> <span class="s">"b"</span><span class="p">),</span>
+               <span class="mi">7</span><span class="p">:(</span><span class="s">'UNDEFINED'</span><span class="p">,</span> <span class="s">"B"</span><span class="p">),</span>
+               <span class="mi">8</span><span class="p">:(</span><span class="s">'SSHORT'</span><span class="p">,</span> <span class="s">"h"</span><span class="p">),</span>
+               <span class="mi">9</span><span class="p">:(</span><span class="s">'SLONG'</span><span class="p">,</span> <span class="s">"i"</span><span class="p">),</span>
+               <span class="mi">10</span><span class="p">:(</span><span class="s">'SRATIONAL'</span><span class="p">,</span> <span class="s">"ii"</span><span class="p">),</span>
+               <span class="mi">11</span><span class="p">:(</span><span class="s">'FLOAT'</span><span class="p">,</span> <span class="s">"f"</span><span class="p">),</span>
+               <span class="mi">12</span><span class="p">:(</span><span class="s">'DOUBLE'</span><span class="p">,</span> <span class="s">"d"</span><span class="p">)}</span>
+
+<span class="n">FIELD_TYPE_OUT</span> <span class="o">=</span> <span class="p">{</span> <span class="s">'B'</span><span class="p">:</span>   <span class="mi">1</span><span class="p">,</span>
+                   <span class="s">'s'</span><span class="p">:</span>   <span class="mi">2</span><span class="p">,</span>
+                   <span class="s">'H'</span><span class="p">:</span>   <span class="mi">3</span><span class="p">,</span>
+                   <span class="s">'I'</span><span class="p">:</span>   <span class="mi">4</span><span class="p">,</span>
+                   <span class="s">'II'</span><span class="p">:</span>  <span class="mi">5</span><span class="p">,</span>
+                   <span class="s">'b'</span><span class="p">:</span>   <span class="mi">6</span><span class="p">,</span>
+                   <span class="s">'h'</span><span class="p">:</span>   <span class="mi">8</span><span class="p">,</span>
+                   <span class="s">'i'</span><span class="p">:</span>   <span class="mi">9</span><span class="p">,</span>
+                   <span class="s">'ii'</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
+                   <span class="s">'f'</span><span class="p">:</span>  <span class="mi">11</span><span class="p">,</span>
+                   <span class="s">'d'</span><span class="p">:</span>  <span class="mi">12</span><span class="p">}</span>
+
+<span class="c">#sample formats (http://www.awaresystems.be/imaging/tiff/tiffflags/sampleformat.html)</span>
+<span class="n">SAMPLE_FORMAT_UINT</span> <span class="o">=</span> <span class="mi">1</span>
+<span class="n">SAMPLE_FORMAT_INT</span> <span class="o">=</span> <span class="mi">2</span>
+<span class="n">SAMPLE_FORMAT_FLOAT</span> <span class="o">=</span> <span class="mi">3</span>   <span class="c">#floating point</span>
+<span class="n">SAMPLE_FORMAT_VOID</span> <span class="o">=</span> <span class="mi">4</span>   <span class="c">#undefined data, usually assumed UINT</span>
+<span class="n">SAMPLE_FORMAT_COMPLEXINT</span> <span class="o">=</span> <span class="mi">5</span>
+<span class="n">SAMPLE_FORMAT_COMPLEXIEEEFP</span> <span class="o">=</span> <span class="mi">6</span>
+
+
+
+<div class="viewcode-block" id="TiffIO"><a class="viewcode-back" href="../../api/modules.html#fabio.TiffIO.TiffIO">[docs]</a><span class="k">class</span> <span class="nc">TiffIO</span><span class="p">(</span><span class="nb">object</span><span class="p">):</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">filename</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">cache_length</span><span class="o">=</span><span class="mi">20</span><span class="p">,</span> <span class="n">mono_output</span><span class="o">=</span><span class="bp">False</ [...]
+        <span class="k">if</span> <span class="n">mode</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">mode</span> <span class="o">=</span> <span class="s">'rb'</span>
+        <span class="k">if</span> <span class="s">'b'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">mode</span><span class="p">:</span>
+            <span class="n">mode</span> <span class="o">=</span> <span class="n">mode</span> <span class="o">+</span> <span class="s">'b'</span>
+        <span class="k">if</span> <span class="s">'a'</span> <span class="ow">in</span> <span class="n">mode</span><span class="o">.</span><span class="n">lower</span><span class="p">():</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="s">"Mode </span><span class="si">%s</span><span class="s"> makes no sense on TIFF files. Consider 'rb+'"</span> <span class="o">%</span> <span class="n">mode</span><span class="p">)</span>
+        <span class="k">if</span> <span class="p">(</span><span class="s">'w'</span> <span class="ow">in</span> <span class="n">mode</span><span class="p">):</span>
+            <span class="k">if</span> <span class="s">'+'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">mode</span><span class="p">:</span>
+                <span class="n">mode</span> <span class="o">+=</span> <span class="s">'+'</span>
+        <span class="c">#if isinstance(filename, file): #does not work in python 3</span>
+        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s">"seek"</span><span class="p">):</span>
+            <span class="n">fd</span> <span class="o">=</span> <span class="n">filename</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_access</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c">#the b is needed for windows and python 3</span>
+            <span class="n">fd</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_access</span> <span class="o">=</span> <span class="n">mode</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">_initInternalVariables</span><span class="p">(</span><span class="n">fd</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_maxImageCacheLength</span> <span class="o">=</span> <span class="n">cache_length</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_forceMonoOutput</span> <span class="o">=</span> <span class="n">mono_output</span>
+
+    <span class="k">def</span> <span class="nf">_initInternalVariables</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fd</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">fd</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">fd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">fd</span> <span class="o">=</span> <span class="n">fd</span>
+        <span class="c"># read the order</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+        <span class="n">order</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">()</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">order</span><span class="p">):</span>
+            <span class="k">if</span> <span class="n">order</span> <span class="o">==</span> <span class="s">"II"</span><span class="p">:</span>
+                <span class="c">#intel, little endian</span>
+                <span class="n">fileOrder</span> <span class="o">=</span> <span class="s">"little"</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span> <span class="o">=</span> <span class="s">'<'</span>
+            <span class="k">elif</span> <span class="n">order</span> <span class="o">==</span> <span class="s">"MM"</span><span class="p">:</span>
+                <span class="c">#motorola, high endian</span>
+                <span class="n">fileOrder</span> <span class="o">=</span> <span class="s">"big"</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span> <span class="o">=</span> <span class="s">'>'</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="s">"File is not a Mar CCD file, nor a TIFF file"</span><span class="p">)</span>
+            <span class="n">a</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+            <span class="n">fortyTwo</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span> <span class="o">+</span> <span class="s">"H"</span><span class="p">,</span> <span class="n">a</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="k">if</span> <span class="n">fortyTwo</span> <span class="o">!=</span> <span class="mi">42</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="s">"Invalid TIFF version </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">fortyTwo</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+                    <span class="k">print</span><span class="p">(</span><span class="s">"VALID TIFF VERSION"</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">byteorder</span> <span class="o">!=</span> <span class="n">fileOrder</span><span class="p">:</span>
+                <span class="n">swap</span> <span class="o">=</span> <span class="bp">True</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">swap</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">byteorder</span> <span class="o">==</span> <span class="s">"little"</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span> <span class="o">=</span> <span class="s">'<'</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span> <span class="o">=</span> <span class="s">'>'</span>
+            <span class="n">swap</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_swap</span> <span class="o">=</span> <span class="n">swap</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCacheIndex</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCache</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCacheIndex</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCache</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">getImageFileDirectories</span><span class="p">(</span><span class="n">fd</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">__makeSureFileIsOpen</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span><span class="o">.</span><span class="n">closed</span><span class="p">:</span>
+            <span class="k">return</span>
+        <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"Reopening closed file"</span><span class="p">)</span>
+        <span class="n">fileName</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span><span class="o">.</span><span class="n">name</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_access</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="c">#we do not own the file</span>
+            <span class="c">#open in read mode</span>
+            <span class="n">newFile</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fileName</span><span class="p">,</span> <span class="s">'rb'</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">newFile</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fileName</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_access</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">fd</span> <span class="o">=</span> <span class="n">newFile</span>
+
+    <span class="k">def</span> <span class="nf">__makeSureFileIsClosed</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_access</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="c">#we do not own the file</span>
+            <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"Not closing not owned file"</span><span class="p">)</span>
+            <span class="k">return</span>
+
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span><span class="o">.</span><span class="n">closed</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">fd</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+<div class="viewcode-block" id="TiffIO.getNumberOfImages"><a class="viewcode-back" href="../../api/modules.html#fabio.TiffIO.TiffIO.getNumberOfImages">[docs]</a>    <span class="k">def</span> <span class="nf">getNumberOfImages</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="c">#update for the case someone has done anything?</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_updateIFD</span><span class="p">()</span>
+        <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span><span class="p">)</span>
+</div>
+    <span class="k">def</span> <span class="nf">_updateIFD</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsOpen</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">getImageFileDirectories</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsClosed</span><span class="p">()</span>
+
+<div class="viewcode-block" id="TiffIO.getImageFileDirectories"><a class="viewcode-back" href="../../api/modules.html#fabio.TiffIO.TiffIO.getImageFileDirectories">[docs]</a>    <span class="k">def</span> <span class="nf">getImageFileDirectories</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fd</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">fd</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">fd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">fd</span> <span class="o">=</span> <span class="n">fd</span>
+        <span class="n">st</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">nImages</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'I'</span>
+        <span class="n">inStr</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">fmt</span><span class="p">))</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">inStr</span><span class="p">):</span>
+            <span class="n">offsetToIFD</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">offsetToIFD</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">inStr</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"Offset to first IFD = </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">offsetToIFD</span><span class="p">)</span>
+        <span class="k">while</span> <span class="n">offsetToIFD</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">offsetToIFD</span><span class="p">)</span>
+            <span class="n">nImages</span> <span class="o">+=</span> <span class="mi">1</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">offsetToIFD</span><span class="p">)</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'H'</span>
+            <span class="n">numberOfDirectoryEntries</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">fmt</span><span class="p"> [...]
+            <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"Number of directory entries = </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">numberOfDirectoryEntries</span><span class="p">)</span>
+
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'I'</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">offsetToIFD</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">12</span> <span class="o">*</span> <span class="n">numberOfDirectoryEntries</span><span class="p">)</span>
+            <span class="n">offsetToIFD</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">fmt</span><span class="p">)))[</span><s [...]
+            <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"Next Offset to IFD = </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">offsetToIFD</span><span class="p">)</span>
+            <span class="c">#offsetToIFD = 0 </span>
+        <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"Number of images found = </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">nImages</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">nImages</span>
+</div>
+    <span class="k">def</span> <span class="nf">_parseImageFileDirectory</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nImage</span><span class="p">):</span>
+        <span class="n">offsetToIFD</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span><span class="p">[</span><span class="n">nImage</span><span class="p">]</span>
+        <span class="n">st</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span>
+        <span class="n">fd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">offsetToIFD</span><span class="p">)</span>
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'H'</span>
+        <span class="n">numberOfDirectoryEntries</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">fmt</span><span class="p">)))[ [...]
+        <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"Number of directory entries = </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">numberOfDirectoryEntries</span><span class="p">)</span>
+
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHI4s'</span>
+        <span class="n">tagIDList</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">fieldTypeList</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">nValuesList</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">valueOffsetList</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">numberOfDirectoryEntries</span><span class="p">):</span>
+            <span class="n">tagID</span><span class="p">,</span> <span class="n">fieldType</span><span class="p">,</span> <span class="n">nValues</span><span class="p">,</span> <span class="n">valueOffset</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</spa [...]
+            <span class="n">tagIDList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tagID</span><span class="p">)</span>
+            <span class="n">fieldTypeList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">fieldType</span><span class="p">)</span>
+            <span class="n">nValuesList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">nValues</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">nValues</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+                <span class="n">ftype</span><span class="p">,</span> <span class="n">vfmt</span> <span class="o">=</span> <span class="n">FIELD_TYPE</span><span class="p">[</span><span class="n">fieldType</span><span class="p">]</span>
+                <span class="k">if</span> <span class="n">ftype</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'ASCII'</span><span class="p">,</span> <span class="s">'RATIONAL'</span><span class="p">,</span> <span class="s">'SRATIONAL'</span><span class="p">]:</span>
+                    <span class="n">vfmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="n">vfmt</span>
+                    <span class="n">actualValue</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">vfmt</span><span class="p">,</span> <span class="n">valueOffset</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span> <span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">vfmt</span><span class [...]
+                    <span class="n">valueOffsetList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">actualValue</span><span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">valueOffsetList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">valueOffset</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="p">(</span><span class="n">nValues</span> <span class="o"><</span> <span class="mi">5</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">fieldType</span> <span class="o">==</span> <span class="mi">2</span><span class="p">):</span>
+                <span class="n">ftype</span><span class="p">,</span> <span class="n">vfmt</span> <span class="o">=</span> <span class="n">FIELD_TYPE</span><span class="p">[</span><span class="n">fieldType</span><span class="p">]</span>
+                <span class="n">vfmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">"</span><span class="si">%d%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">nValues</span><span class="p">,</span> <span class="n">vfmt</span><span class="p">)</span>
+                <span class="n">actualValue</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">vfmt</span><span class="p">,</span> <span class="n">valueOffset</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span> <span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">vfmt</span><span class="p" [...]
+                <span class="n">valueOffsetList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">actualValue</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">valueOffsetList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">valueOffset</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">tagID</span> <span class="ow">in</span> <span class="n">TAG_ID</span><span class="p">:</span>
+                    <span class="k">print</span><span class="p">(</span><span class="s">"tagID = </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">TAG_ID</span><span class="p">[</span><span class="n">tagID</span><span class="p">])</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="k">print</span><span class="p">(</span><span class="s">"tagID        = </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">tagID</span><span class="p">)</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"fieldType    = </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">FIELD_TYPE</span><span class="p">[</span><span class="n">fieldType</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"nValues      = </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">nValues</span><span class="p">)</span>
+                <span class="c">#if nValues == 1:</span>
+                <span class="c">#    print("valueOffset =  %s" % valueOffset)</span>
+        <span class="k">return</span> <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span>
+
+
+
+    <span class="k">def</span> <span class="nf">_readIFDEntry</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">,</span> <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">):</span>
+        <span class="n">fd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span>
+        <span class="n">st</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span>
+        <span class="n">idx</span> <span class="o">=</span> <span class="n">tagIDList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">tag</span><span class="p">)</span>
+        <span class="n">nValues</span> <span class="o">=</span> <span class="n">nValuesList</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
+        <span class="n">output</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">ftype</span><span class="p">,</span> <span class="n">vfmt</span> <span class="o">=</span> <span class="n">FIELD_TYPE</span><span class="p">[</span><span class="n">fieldTypeList</span><span class="p">[</span><span class="n">idx</span><span class="p">]]</span>
+        <span class="n">vfmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">"</span><span class="si">%d%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">nValues</span><span class="p">,</span> <span class="n">vfmt</span><span class="p">)</span>
+        <span class="n">requestedBytes</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">vfmt</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">nValues</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">output</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">valueOffsetList</span><span class="p">[</span><span class="n">idx</span><span class="p">])</span>
+        <span class="k">elif</span> <span class="n">requestedBytes</span> <span class="o"><</span> <span class="mi">5</span><span class="p">:</span>
+            <span class="n">output</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">valueOffsetList</span><span class="p">[</span><span class="n">idx</span><span class="p">])</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">offset</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">st</span> <span class="o">+</span> <span class="s">"I"</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">[</span><span class="n">idx</span><span class="p">])[ [...]
+            <span class="n">output</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">vfmt</span><span class="p">,</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">requestedBytes</span><span class="p">))</span>
+        <span class="k">return</span> <span class="n">output</span>
+
+<div class="viewcode-block" id="TiffIO.getData"><a class="viewcode-back" href="../../api/modules.html#fabio.TiffIO.TiffIO.getData">[docs]</a>    <span class="k">def</span> <span class="nf">getData</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nImage</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">nImage</span> <span class="o">>=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span><span class="p">):</span>
+            <span class="c">#update prior to raise an index error error</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_updateIFD</span><span class="p">()</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readImage</span><span class="p">(</span><span class="n">nImage</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="TiffIO.getImage"><a class="viewcode-back" href="../../api/modules.html#fabio.TiffIO.TiffIO.getImage">[docs]</a>    <span class="k">def</span> <span class="nf">getImage</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nImage</span><span class="p">):</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">getData</span><span class="p">(</span><span class="n">nImage</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="TiffIO.getInfo"><a class="viewcode-back" href="../../api/modules.html#fabio.TiffIO.TiffIO.getInfo">[docs]</a>    <span class="k">def</span> <span class="nf">getInfo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nImage</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">nImage</span> <span class="o">>=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span><span class="p">):</span>
+            <span class="c">#update prior to raise an index error error</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_updateIFD</span><span class="p">()</span>
+        <span class="n">current</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span><span class="p">[</span><span class="n">nImage</span><span class="p">]</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readInfo</span><span class="p">(</span><span class="n">nImage</span><span class="p">)</span>
+</div>
+    <span class="k">def</span> <span class="nf">_readInfo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nImage</span><span class="p">,</span> <span class="n">close</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">nImage</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCacheIndex</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"Reading info from cache"</span><span class="p">)</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCache</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCacheIndex</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">nImage</span><span class="p">)]</span>
+
+        <span class="c">#read the header</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsOpen</span><span class="p">()</span>
+        <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parseImageFileDirectory</span><span class="p">(</span><span class="n">nImage</span><span class="p">)</span>
+
+        <span class="c">#rows and columns</span>
+        <span class="n">nColumns</span> <span class="o">=</span> <span class="n">valueOffsetList</span><span class="p">[</span><span class="n">tagIDList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">TAG_NUMBER_OF_COLUMNS</span><span class="p">)]</span>
+        <span class="n">nRows</span> <span class="o">=</span> <span class="n">valueOffsetList</span><span class="p">[</span><span class="n">tagIDList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">TAG_NUMBER_OF_ROWS</span><span class="p">)]</span>
+
+        <span class="c">#bits per sample</span>
+        <span class="n">idx</span> <span class="o">=</span> <span class="n">tagIDList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">TAG_BITS_PER_SAMPLE</span><span class="p">)</span>
+        <span class="n">nBits</span> <span class="o">=</span> <span class="n">valueOffsetList</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">nValuesList</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="c">#this happens with RGB and friends, nBits is not a single value</span>
+            <span class="n">nBits</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readIFDEntry</span><span class="p">(</span><span class="n">TAG_BITS_PER_SAMPLE</span><span class="p">,</span>
+                                          <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">)</span>
+
+
+        <span class="k">if</span> <span class="n">TAG_COLORMAP</span> <span class="ow">in</span> <span class="n">tagIDList</span><span class="p">:</span>
+            <span class="n">idx</span> <span class="o">=</span> <span class="n">tagIDList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">TAG_COLORMAP</span><span class="p">)</span>
+            <span class="n">tmpColormap</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readIFDEntry</span><span class="p">(</span><span class="n">TAG_COLORMAP</span><span class="p">,</span>
+                                          <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">max</span><span class="p">(</span><span class="n">tmpColormap</span><span class="p">)</span> <span class="o">></span> <span class="mi">255</span><span class="p">:</span>
+                <span class="n">tmpColormap</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">tmpColormap</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+                <span class="n">tmpColormap</span> <span class="o">=</span> <span class="p">(</span><span class="n">tmpColormap</span> <span class="o">/</span> <span class="mf">256.</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">tmpColormap</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">tmpColormap</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span>
+            <span class="n">tmpColormap</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span>
+            <span class="n">colormap</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">tmpColormap</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="mi">3</span><span class="p">),</span> <span class="n">tmpColormap</span><span class="o">.</span><span class="n">dtype</s [...]
+            <span class="n">colormap</span><span class="p">[:,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">tmpColormap</span><span class="o">.</span><span class="n">T</span>
+            <span class="n">tmpColormap</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">colormap</span> <span class="o">=</span> <span class="bp">None</span>
+
+        <span class="c">#sample format</span>
+        <span class="k">if</span> <span class="n">TAG_SAMPLE_FORMAT</span> <span class="ow">in</span> <span class="n">tagIDList</span><span class="p">:</span>
+            <span class="n">sampleFormat</span> <span class="o">=</span> <span class="n">valueOffsetList</span><span class="p">[</span><span class="n">tagIDList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">TAG_SAMPLE_FORMAT</span><span class="p">)]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c">#set to unknown</span>
+            <span class="n">sampleFormat</span> <span class="o">=</span> <span class="n">SAMPLE_FORMAT_VOID</span>
+
+        <span class="c"># compression</span>
+        <span class="n">compression</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="n">compression_type</span> <span class="o">=</span> <span class="mi">1</span>
+        <span class="k">if</span> <span class="n">TAG_COMPRESSION</span> <span class="ow">in</span> <span class="n">tagIDList</span><span class="p">:</span>
+            <span class="n">compression_type</span> <span class="o">=</span> <span class="n">valueOffsetList</span><span class="p">[</span><span class="n">tagIDList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">TAG_COMPRESSION</span><span class="p">)]</span>
+            <span class="k">if</span> <span class="n">compression_type</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+                <span class="n">compression</span> <span class="o">=</span> <span class="bp">False</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">compression</span> <span class="o">=</span> <span class="bp">True</span>
+
+        <span class="c">#photometric interpretation</span>
+        <span class="n">interpretation</span> <span class="o">=</span> <span class="mi">1</span>
+        <span class="k">if</span> <span class="n">TAG_PHOTOMETRIC_INTERPRETATION</span> <span class="ow">in</span> <span class="n">tagIDList</span><span class="p">:</span>
+            <span class="n">interpretation</span> <span class="o">=</span> <span class="n">valueOffsetList</span><span class="p">[</span><span class="n">tagIDList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">TAG_PHOTOMETRIC_INTERPRETATION</span><span class="p">)]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"WARNING: Non standard TIFF. Photometric interpretation TAG missing"</span><span class="p">)</span>
+        <span class="n">helpString</span> <span class="o">=</span> <span class="s">""</span>
+        <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o">></span> <span class="s">'2.6'</span><span class="p">:</span>
+            <span class="n">helpString</span> <span class="o">=</span> <span class="nb">eval</span><span class="p">(</span><span class="s">'b""'</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">TAG_IMAGE_DESCRIPTION</span> <span class="ow">in</span> <span class="n">tagIDList</span><span class="p">:</span>
+            <span class="n">imageDescription</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readIFDEntry</span><span class="p">(</span><span class="n">TAG_IMAGE_DESCRIPTION</span><span class="p">,</span>
+                    <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">imageDescription</span><span class="p">)</span> <span class="ow">in</span> <span class="p">[</span><span class="nb">type</span><span class="p">([</span><span class="mi">1</span><span class="p">]),</span> <span class="nb">type</span><span class="p">((</span><span class="mi">1</span><span class="p">,))]:</span>
+                <span class="n">imageDescription</span> <span class="o">=</span> <span class="n">helpString</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">imageDescription</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">imageDescription</span> <span class="o">=</span> <span class="s">"</span><span class="si">%d</span><span class="s">/</span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">nImage</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_IFD</s [...]
+
+        <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o"><</span> <span class="s">'3.0'</span><span class="p">:</span>
+            <span class="n">defaultSoftware</span> <span class="o">=</span> <span class="s">"Unknown Software"</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">defaultSoftware</span> <span class="o">=</span> <span class="nb">bytes</span><span class="p">(</span><span class="s">"Unknown Software"</span><span class="p">,</span>
+                                    <span class="n">encoding</span><span class="o">=</span><span class="s">'utf-8'</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">TAG_SOFTWARE</span> <span class="ow">in</span> <span class="n">tagIDList</span><span class="p">:</span>
+            <span class="n">software</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readIFDEntry</span><span class="p">(</span><span class="n">TAG_SOFTWARE</span><span class="p">,</span>
+                    <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">software</span><span class="p">)</span> <span class="ow">in</span> <span class="p">[</span><span class="nb">type</span><span class="p">([</span><span class="mi">1</span><span class="p">]),</span> <span class="nb">type</span><span class="p">((</span><span class="mi">1</span><span class="p">,))]:</span>
+                <span class="n">software</span> <span class="o">=</span> <span class="n">helpString</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">software</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">software</span> <span class="o">=</span> <span class="n">defaultSoftware</span>
+
+        <span class="k">if</span> <span class="n">software</span> <span class="o">==</span> <span class="n">defaultSoftware</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o"><</span> <span class="s">'3.0'</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="n">imageDescription</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"IMAGEJ"</span><span class="p">):</span>
+                        <span class="n">software</span> <span class="o">=</span> <span class="n">imageDescription</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"="</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">tmpString</span> <span class="o">=</span> <span class="n">imageDescription</span><span class="o">.</span><span class="n">decode</span><span class="p">()</span>
+                    <span class="k">if</span> <span class="n">tmpString</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"IMAGEJ"</span><span class="p">):</span>
+                        <span class="n">software</span> <span class="o">=</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">tmpString</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"="</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span>
+                                         <span class="n">encoding</span><span class="o">=</span><span class="s">'utf-8'</span><span class="p">)</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="k">pass</span>
+
+        <span class="k">if</span> <span class="n">TAG_DATE</span> <span class="ow">in</span> <span class="n">tagIDList</span><span class="p">:</span>
+            <span class="n">date</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readIFDEntry</span><span class="p">(</span><span class="n">TAG_DATE</span><span class="p">,</span>
+                    <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">date</span><span class="p">)</span> <span class="ow">in</span> <span class="p">[</span><span class="nb">type</span><span class="p">([</span><span class="mi">1</span><span class="p">]),</span> <span class="nb">type</span><span class="p">((</span><span class="mi">1</span><span class="p">,))]:</span>
+                <span class="n">date</span> <span class="o">=</span> <span class="n">helpString</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">date</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">date</span> <span class="o">=</span> <span class="s">"Unknown Date"</span>
+
+        <span class="n">stripOffsets</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readIFDEntry</span><span class="p">(</span><span class="n">TAG_STRIP_OFFSETS</span><span class="p">,</span>
+                        <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">TAG_ROWS_PER_STRIP</span> <span class="ow">in</span> <span class="n">tagIDList</span><span class="p">:</span>
+            <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readIFDEntry</span><span class="p">(</span><span class="n">TAG_ROWS_PER_STRIP</span><span class="p">,</span>
+                        <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="n">nRows</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"WARNING: Non standard TIFF. Rows per strip TAG missing"</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">TAG_STRIP_BYTE_COUNTS</span> <span class="ow">in</span> <span class="n">tagIDList</span><span class="p">:</span>
+            <span class="n">stripByteCounts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readIFDEntry</span><span class="p">(</span><span class="n">TAG_STRIP_BYTE_COUNTS</span><span class="p">,</span>
+                        <span class="n">tagIDList</span><span class="p">,</span> <span class="n">fieldTypeList</span><span class="p">,</span> <span class="n">nValuesList</span><span class="p">,</span> <span class="n">valueOffsetList</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"WARNING: Non standard TIFF. Strip byte counts TAG missing"</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">nBits</span><span class="p">,</span> <span class="s">'index'</span><span class="p">):</span>
+                <span class="n">expectedSum</span> <span class="o">=</span> <span class="mi">0</span>
+                <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">nBits</span><span class="p">:</span>
+                    <span class="n">expectedSum</span> <span class="o">+=</span> <span class="nb">int</span><span class="p">(</span><span class="n">nRows</span> <span class="o">*</span> <span class="n">nColumns</span> <span class="o">*</span> <span class="n">n</span> <span class="o">/</span> <span class="mi">8</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">expectedSum</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">nRows</span> <span class="o">*</span> <span class="n">nColumns</span> <span class="o">*</span> <span class="n">nBits</span> <span class="o">/</span> <span class="mi">8</span><span class="p">)</span>
+            <span class="n">stripByteCounts</span> <span class="o">=</span> <span class="p">[</span><span class="n">expectedSum</span><span class="p">]</span>
+
+        <span class="k">if</span> <span class="n">close</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsClosed</span><span class="p">()</span>
+
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_forceMonoOutput</span> <span class="ow">and</span> <span class="p">(</span><span class="n">interpretation</span> <span class="o">></span> <span class="mi">1</span><span class="p">):</span>
+            <span class="c">#color image but asked monochrome output</span>
+            <span class="n">nBits</span> <span class="o">=</span> <span class="mi">32</span>
+            <span class="n">colormap</span> <span class="o">=</span> <span class="bp">None</span>
+            <span class="n">sampleFormat</span> <span class="o">=</span> <span class="n">SAMPLE_FORMAT_FLOAT</span>
+            <span class="n">interpretation</span> <span class="o">=</span> <span class="mi">1</span>
+            <span class="c">#we cannot rely on any cache in this case</span>
+            <span class="n">useInfoCache</span> <span class="o">=</span> <span class="bp">False</span>
+            <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"FORCED MONO"</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">useInfoCache</span> <span class="o">=</span> <span class="bp">True</span>
+
+        <span class="n">info</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"nRows"</span><span class="p">]</span> <span class="o">=</span> <span class="n">nRows</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"nColumns"</span><span class="p">]</span> <span class="o">=</span> <span class="n">nColumns</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"nBits"</span><span class="p">]</span> <span class="o">=</span> <span class="n">nBits</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"compression"</span><span class="p">]</span> <span class="o">=</span> <span class="n">compression</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"compression_type"</span><span class="p">]</span> <span class="o">=</span> <span class="n">compression_type</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"imageDescription"</span><span class="p">]</span> <span class="o">=</span> <span class="n">imageDescription</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"stripOffsets"</span><span class="p">]</span> <span class="o">=</span> <span class="n">stripOffsets</span> <span class="c">#This contains the file offsets to the data positions</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"rowsPerStrip"</span><span class="p">]</span> <span class="o">=</span> <span class="n">rowsPerStrip</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"stripByteCounts"</span><span class="p">]</span> <span class="o">=</span> <span class="n">stripByteCounts</span> <span class="c">#bytes in strip since I do not support compression</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"software"</span><span class="p">]</span> <span class="o">=</span> <span class="n">software</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"date"</span><span class="p">]</span> <span class="o">=</span> <span class="n">date</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"colormap"</span><span class="p">]</span> <span class="o">=</span> <span class="n">colormap</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"sampleFormat"</span><span class="p">]</span> <span class="o">=</span> <span class="n">sampleFormat</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"photometricInterpretation"</span><span class="p">]</span> <span class="o">=</span> <span class="n">interpretation</span>
+        <span class="n">infoDict</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o"><</span> <span class="s">'3.0'</span><span class="p">:</span>
+            <span class="n">testString</span> <span class="o">=</span> <span class="s">'PyMca'</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">testString</span> <span class="o">=</span> <span class="nb">eval</span><span class="p">(</span><span class="s">'b"PyMca"'</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">software</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">testString</span><span class="p">):</span>
+            <span class="c">#str to make sure python 2.x sees it as string and not unicode</span>
+            <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o"><</span> <span class="s">'3.0'</span><span class="p">:</span>
+                <span class="n">descriptionString</span> <span class="o">=</span> <span class="n">imageDescription</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">descriptionString</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">imageDescription</span><span class="o">.</span><span class="n">decode</span><span class="p">())</span>
+            <span class="c">#interpret the image description in terms of supplied</span>
+            <span class="c">#information at writing time</span>
+            <span class="n">items</span> <span class="o">=</span> <span class="n">descriptionString</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'='</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">items</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
+                <span class="n">key</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">items</span><span class="p">[</span><span class="n">i</span> <span class="o">*</span> <span class="mi">2</span><span class="p">]</span>
+                <span class="c">#get rid of the \n at the end of the value </span>
+                <span class="n">value</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">items</span><span class="p">[</span><span class="n">i</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+                <span class="n">infoDict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">'info'</span><span class="p">]</span> <span class="o">=</span> <span class="n">infoDict</span>
+
+        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_maxImageCacheLength</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="ow">and</span> <span class="n">useInfoCache</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCacheIndex</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">nImage</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCache</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCacheIndex</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_maxImageCacheLength</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCacheIndex</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCacheIndex</span><span class="p">[:</span><span class="bp">self</span><span class="o">.</span><span class="n">_maxImageCacheLength</span><span class="p">]</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCache</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_imageInfoCache</span><span class="p">[:</span><span class="bp">self</span><span class="o">.</span><span class="n">_maxImageCacheLength</span><span class="p">]</span>
+        <span class="k">return</span> <span class="n">info</span>
+
+    <span class="k">def</span> <span class="nf">_readImage</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nImage</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"Reading image </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">nImage</span><span class="p">)</span>
+        <span class="k">if</span> <span class="s">'close'</span> <span class="ow">in</span> <span class="n">kw</span><span class="p">:</span>
+            <span class="n">close</span> <span class="o">=</span> <span class="n">kw</span><span class="p">[</span><span class="s">'close'</span><span class="p">]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">close</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="n">rowMin</span> <span class="o">=</span> <span class="n">kw</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'rowMin'</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
+        <span class="n">rowMax</span> <span class="o">=</span> <span class="n">kw</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'rowMax'</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">nImage</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCacheIndex</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"Reading image data from cache"</span><span class="p">)</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCache</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCacheIndex</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">nImage</span><span class="p">)]</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsOpen</span><span class="p">()</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_forceMonoOutput</span><span class="p">:</span>
+            <span class="n">oldMono</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">oldMono</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_forceMonoOutput</span> <span class="o">=</span> <span class="bp">False</span>
+            <span class="n">info</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readInfo</span><span class="p">(</span><span class="n">nImage</span><span class="p">,</span> <span class="n">close</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_forceMonoOutput</span> <span class="o">=</span> <span class="n">oldMono</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_forceMonoOutput</span> <span class="o">=</span> <span class="n">oldMono</span>
+            <span class="k">raise</span>
+        <span class="n">compression</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">'compression'</span><span class="p">]</span>
+        <span class="n">compression_type</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">'compression_type'</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">compression</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">compression_type</span> <span class="o">!=</span> <span class="mi">32773</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="s">"Compressed TIFF images not supported except packbits"</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="c">#PackBits compression</span>
+                <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+                    <span class="k">print</span><span class="p">(</span><span class="s">"Using PackBits compression"</span><span class="p">)</span>
+
+        <span class="n">interpretation</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">"photometricInterpretation"</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">interpretation</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
+            <span class="c">#RGB</span>
+            <span class="k">pass</span>
+            <span class="c">#raise IOError("RGB Image. Only grayscale images supported")</span>
+        <span class="k">elif</span> <span class="n">interpretation</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
+            <span class="c">#Palette Color Image</span>
+            <span class="k">pass</span>
+            <span class="c">#raise IOError("Palette-color Image. Only grayscale images supported")</span>
+        <span class="k">elif</span> <span class="n">interpretation</span> <span class="o">></span> <span class="mi">2</span><span class="p">:</span>
+            <span class="c">#Palette Color Image</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="s">"Only grayscale images supported"</span><span class="p">)</span>
+
+        <span class="n">nRows</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">"nRows"</span><span class="p">]</span>
+        <span class="n">nColumns</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">"nColumns"</span><span class="p">]</span>
+        <span class="n">nBits</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">"nBits"</span><span class="p">]</span>
+        <span class="n">colormap</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">"colormap"</span><span class="p">]</span>
+        <span class="n">sampleFormat</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">"sampleFormat"</span><span class="p">]</span>
+
+        <span class="k">if</span> <span class="n">rowMin</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">rowMin</span> <span class="o">=</span> <span class="mi">0</span>
+
+        <span class="k">if</span> <span class="n">rowMax</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">rowMax</span> <span class="o">=</span> <span class="n">nRows</span> <span class="o">-</span> <span class="mi">1</span>
+
+        <span class="k">if</span> <span class="n">rowMin</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">rowMin</span> <span class="o">=</span> <span class="n">nRows</span> <span class="o">-</span> <span class="n">rowMin</span>
+
+        <span class="k">if</span> <span class="n">rowMax</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">rowMax</span> <span class="o">=</span> <span class="n">nRows</span> <span class="o">-</span> <span class="n">rowMax</span>
+
+        <span class="k">if</span> <span class="n">rowMax</span> <span class="o"><</span> <span class="n">rowMin</span><span class="p">:</span>
+            <span class="n">txt</span> <span class="o">=</span> <span class="s">"Max Row smaller than Min Row. Reverse selection not supported"</span>
+            <span class="k">raise</span> <span class="bp">NotImplemented</span><span class="p">(</span><span class="n">txt</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">rowMin</span> <span class="o">>=</span> <span class="n">nRows</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">IndexError</span><span class="p">(</span><span class="s">"Image only has </span><span class="si">%d</span><span class="s"> rows"</span> <span class="o">%</span> <span class="n">nRows</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">rowMax</span> <span class="o">>=</span> <span class="n">nRows</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">IndexError</span><span class="p">(</span><span class="s">"Image only has </span><span class="si">%d</span><span class="s"> rows"</span> <span class="o">%</span> <span class="n">nRows</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">sampleFormat</span> <span class="o">==</span> <span class="n">SAMPLE_FORMAT_FLOAT</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">nBits</span> <span class="o">==</span> <span class="mi">32</span><span class="p">:</span>
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span>
+            <span class="k">elif</span> <span class="n">nBits</span> <span class="o">==</span> <span class="mi">64</span><span class="p">:</span>
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"Unsupported number of bits for a float: </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">nBits</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">sampleFormat</span> <span class="ow">in</span> <span class="p">[</span><span class="n">SAMPLE_FORMAT_UINT</span><span class="p">,</span> <span class="n">SAMPLE_FORMAT_VOID</span><span class="p">]:</span>
+            <span class="k">if</span> <span class="n">nBits</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">8</span><span class="p">,</span> <span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">8</span><span class="p">),</span> <span class="p">[</span><span class="mi">8</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">8</span> [...]
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span>
+            <span class="k">elif</span> <span class="n">nBits</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">16</span><span class="p">,</span> <span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">16</span><span class="p">),</span> <span class="p">[</span><span class="mi">16</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi"> [...]
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span>
+            <span class="k">elif</span> <span class="n">nBits</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">32</span><span class="p">,</span> <span class="p">(</span><span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="p">),</span> <span class="p">[</span><span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi"> [...]
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span>
+            <span class="k">elif</span> <span class="n">nBits</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">64</span><span class="p">,</span> <span class="p">(</span><span class="mi">64</span><span class="p">,</span> <span class="mi">64</span><span class="p">,</span> <span class="mi">64</span><span class="p">),</span> <span class="p">[</span><span class="mi">64</span><span class="p">,</span> <span class="mi">64</span><span class="p">,</span> <span class="mi"> [...]
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint64</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"Unsupported number of bits for unsigned int: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">nBits</span><span class="p">,))</span>
+        <span class="k">elif</span> <span class="n">sampleFormat</span> <span class="o">==</span> <span class="n">SAMPLE_FORMAT_INT</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">nBits</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">8</span><span class="p">,</span> <span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">8</span><span class="p">),</span> <span class="p">[</span><span class="mi">8</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">8</span> [...]
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int8</span>
+            <span class="k">elif</span> <span class="n">nBits</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">16</span><span class="p">,</span> <span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">16</span><span class="p">),</span> <span class="p">[</span><span class="mi">16</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi"> [...]
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int16</span>
+            <span class="k">elif</span> <span class="n">nBits</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">32</span><span class="p">,</span> <span class="p">(</span><span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="p">),</span> <span class="p">[</span><span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi"> [...]
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span>
+            <span class="k">elif</span> <span class="n">nBits</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">64</span><span class="p">,</span> <span class="p">(</span><span class="mi">64</span><span class="p">,</span> <span class="mi">64</span><span class="p">,</span> <span class="mi">64</span><span class="p">),</span> <span class="p">[</span><span class="mi">64</span><span class="p">,</span> <span class="mi">64</span><span class="p">,</span> <span class="mi"> [...]
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int64</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"Unsupported number of bits for signed int: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">nBits</span><span class="p">,))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"Unsupported combination. Bits = </span><span class="si">%s</span><span class="s">  Format = </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">nBits</span><span class="p">,</span> <span class="n">sampleFormat</span><span class="p">))</span>
+        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">nBits</span><span class="p">,</span> <span class="s">'index'</span><span class="p">):</span>
+            <span class="n">image</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">nRows</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">nBits</span><span class="p">)),</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">colormap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="c">#should I use colormap dtype?</span>
+            <span class="n">image</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">nRows</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">image</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">nRows</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
+
+        <span class="n">fd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span>
+        <span class="n">st</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span>
+        <span class="n">stripOffsets</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">"stripOffsets"</span><span class="p">]</span> <span class="c">#This contains the file offsets to the data positions</span>
+        <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">"rowsPerStrip"</span><span class="p">]</span>
+        <span class="n">stripByteCounts</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">"stripByteCounts"</span><span class="p">]</span> <span class="c">#bytes in strip since I do not support compression</span>
+
+        <span class="n">rowStart</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">stripOffsets</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">bytesPerRow</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">stripByteCounts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">/</span> <span class="n">rowsPerStrip</span><span class="p">)</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">stripOffsets</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">rowMin</span> <span class="o">*</span> <span class="n">bytesPerRow</span><span class="p">)</span>
+            <span class="n">nBytes</span> <span class="o">=</span> <span class="p">(</span><span class="n">rowMax</span> <span class="o">-</span> <span class="n">rowMin</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="n">bytesPerRow</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_swap</span><span class="p">:</span>
+                <span class="n">readout</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">nBytes</span><span class="p">),</span> <span class="n">dtype</span><span class="p">)</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">readout</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">nBytes</span><span class="p">),</span> <span class="n">dtype</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">nBits</span><span class="p">,</span> <span class="s">'index'</span><span class="p">):</span>
+                <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">nBits</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="n">info</span><span class="p">[</span><span class="s">'colormap'</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="n">readout</span> <span class="o">=</span> <span class="n">colormap</span><span class="p">[</span><span class="n">readout</span><span class="p">]</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span>
+            <span class="n">image</span><span class="p">[</span><span class="n">rowMin</span><span class="p">:</span><span class="n">rowMax</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">readout</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">stripOffsets</span><span class="p">)):</span>
+                <span class="c">#the amount of rows</span>
+                <span class="n">nRowsToRead</span> <span class="o">=</span> <span class="n">rowsPerStrip</span>
+                <span class="n">rowEnd</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">rowStart</span> <span class="o">+</span> <span class="n">nRowsToRead</span><span class="p">,</span> <span class="n">nRows</span><span class="p">))</span>
+                <span class="k">if</span> <span class="n">rowEnd</span> <span class="o"><</span> <span class="n">rowMin</span><span class="p">:</span>
+                    <span class="n">rowStart</span> <span class="o">+=</span> <span class="n">nRowsToRead</span>
+                    <span class="k">continue</span>
+                <span class="k">if</span> <span class="p">(</span><span class="n">rowStart</span> <span class="o">></span> <span class="n">rowMax</span><span class="p">):</span>
+                    <span class="k">break</span>
+                <span class="c">#we are in position</span>
+                <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">stripOffsets</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+                <span class="c">#the amount of bytes to read</span>
+                <span class="n">nBytes</span> <span class="o">=</span> <span class="n">stripByteCounts</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
+                <span class="k">if</span> <span class="n">compression_type</span> <span class="o">==</span> <span class="mi">32773</span><span class="p">:</span>
+                    <span class="k">try</span><span class="p">:</span>
+                        <span class="n">bufferBytes</span> <span class="o">=</span> <span class="nb">bytes</span><span class="p">()</span>
+                    <span class="k">except</span><span class="p">:</span>
+                        <span class="c">#python 2.5 ...</span>
+                        <span class="n">bufferBytes</span> <span class="o">=</span> <span class="s">""</span>
+                    <span class="c">#packBits</span>
+                    <span class="n">readBytes</span> <span class="o">=</span> <span class="mi">0</span>
+                    <span class="c">#intermediate buffer</span>
+                    <span class="n">tmpBuffer</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">nBytes</span><span class="p">)</span>
+                    <span class="k">while</span> <span class="n">readBytes</span> <span class="o"><</span> <span class="n">nBytes</span><span class="p">:</span>
+                        <span class="n">n</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s">'b'</span><span class="p">,</span> <span class="n">tmpBuffer</span><span class="p">[</span><span class="n">readBytes</span><span class="p">:(</span><span class="n">readBytes</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)])[</span><span class="mi">0</span><span [...]
+                        <span class="n">readBytes</span> <span class="o">+=</span> <span class="mi">1</span>
+                        <span class="k">if</span> <span class="n">n</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span>
+                            <span class="c">#should I prevent reading more than the</span>
+                            <span class="c">#length of the chain? Let's python raise</span>
+                            <span class="c">#the exception...</span>
+                            <span class="n">bufferBytes</span> <span class="o">+=</span> <span class="n">tmpBuffer</span><span class="p">[</span><span class="n">readBytes</span><span class="p">:</span>\
+                                                      <span class="n">readBytes</span> <span class="o">+</span> <span class="p">(</span><span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)]</span>
+                            <span class="n">readBytes</span> <span class="o">+=</span> <span class="p">(</span><span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
+                        <span class="k">elif</span> <span class="n">n</span> <span class="o">></span> <span class="o">-</span><span class="mi">128</span><span class="p">:</span>
+                            <span class="n">bufferBytes</span> <span class="o">+=</span> <span class="p">(</span><span class="o">-</span><span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="n">tmpBuffer</span><span class="p">[</span><span class="n">readBytes</span><span class="p">:(</span><span class="n">readBytes</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)]</span>
+                            <span class="n">readBytes</span> <span class="o">+=</span> <span class="mi">1</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="c">#if read -128 ignore the byte</span>
+                            <span class="k">continue</span>
+                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_swap</span><span class="p">:</span>
+                        <span class="n">readout</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">bufferBytes</span><span class="p">,</span> <span class="n">dtype</span><span class="p">)</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">readout</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">bufferBytes</span><span class="p">,</span> <span class="n">dtype</span><span class="p">)</span>
+                    <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">nBits</span><span class="p">,</span> <span class="s">'index'</span><span class="p">):</span>
+                        <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">nBits</span><span class="p">)</span>
+                    <span class="k">elif</span> <span class="n">info</span><span class="p">[</span><span class="s">'colormap'</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+                        <span class="n">readout</span> <span class="o">=</span> <span class="n">colormap</span><span class="p">[</span><span class="n">readout</span><span class="p">]</span>
+                        <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">,</span> <span class="mi">3</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span>
+                    <span class="n">image</span><span class="p">[</span><span class="n">rowStart</span><span class="p">:</span><span class="n">rowEnd</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">readout</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="mi">1</span><span class="p">:</span>
+                        <span class="c">#use numpy</span>
+                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_swap</span><span class="p">:</span>
+                            <span class="n">readout</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">nBytes</span><span class="p">),</span> <span class="n">dtype</span><span class="p">)</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">readout</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">nBytes</span><span class="p">),</span> <span class="n">dtype</span><span class="p">)</span>
+                        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">nBits</span><span class="p">,</span> <span class="s">'index'</span><span class="p">):</span>
+                            <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">nBits</span><span class="p">)</span>
+                        <span class="k">elif</span> <span class="n">colormap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+                            <span class="n">readout</span> <span class="o">=</span> <span class="n">colormap</span><span class="p">[</span><span class="n">readout</span><span class="p">]</span>
+                            <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">,</span> <span class="mi">3</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span>
+                        <span class="n">image</span><span class="p">[</span><span class="n">rowStart</span><span class="p">:</span><span class="n">rowEnd</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">readout</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="c">#using struct</span>
+                        <span class="n">readout</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">st</span> <span class="o">+</span> <span class="s">"</span><span class="si">%d</span><span class="s">f"</span> <span class="o">%</span> <span class="nb">int</span><span class=" [...]
+                                              <span class="n">dtype</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
+                        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">nBits</span><span class="p">,</span> <span class="s">'index'</span><span class="p">):</span>
+                            <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">nBits</span><span class="p">)</span>
+                        <span class="k">elif</span> <span class="n">colormap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+                            <span class="n">readout</span> <span class="o">=</span> <span class="n">colormap</span><span class="p">[</span><span class="n">readout</span><span class="p">]</span>
+                            <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span><span class="p">,</span> <span class="mi">3</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">readout</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">nColumns</span>
+                        <span class="n">image</span><span class="p">[</span><span class="n">rowStart</span><span class="p">:</span><span class="n">rowEnd</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">readout</span>
+                <span class="n">rowStart</span> <span class="o">+=</span> <span class="n">nRowsToRead</span>
+        <span class="k">if</span> <span class="n">close</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsClosed</span><span class="p">()</span>
+
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">image</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
+            <span class="c">#color image</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_forceMonoOutput</span><span class="p">:</span>
+                <span class="c">#color image, convert to monochrome</span>
+                <span class="n">image</span> <span class="o">=</span> <span class="p">(</span><span class="n">image</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="mf">0.114</span> <span class="o">+</span> \
+                         <span class="n">image</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="mf">0.587</span> <span class="o">+</span> \
+                         <span class="n">image</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">2</span><span class="p">]</span> <span class="o">*</span> <span class="mf">0.299</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="p">(</span><span class="n">rowMin</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">rowMax</span> <span class="o">==</span> <span class="p">(</span><span class="n">nRows</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCacheIndex</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">nImage</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCache</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">image</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCacheIndex</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_maxImageCacheLength</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCacheIndex</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCacheIndex</span><span class="p">[:</span><span class="bp">self</span><span class="o">.</span><span class="n">_maxImageCacheLength</span><span class="p">]</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCache</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_imageDataCache</span><span class="p">[:</span><span class="bp">self</span><span class="o">.</span><span class="n">_maxImageCacheLength</span><span class="p">]</span>
+
+        <span class="k">return</span> <span class="n">image</span>
+
+<div class="viewcode-block" id="TiffIO.writeImage"><a class="viewcode-back" href="../../api/modules.html#fabio.TiffIO.TiffIO.writeImage">[docs]</a>    <span class="k">def</span> <span class="nf">writeImage</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">image0</span><span class="p">,</span> <span class="n">info</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">software</span><span class="o [...]
+        <span class="k">if</span> <span class="n">software</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">software</span> <span class="o">=</span> <span class="s">'PyMca.TiffIO'</span>
+        <span class="c">#if date is None:</span>
+        <span class="c">#    date = time.ctime()</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsOpen</span><span class="p">()</span>
+        <span class="n">fd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span>
+        <span class="c">#prior to do anything, perform some tests</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">image0</span><span class="o">.</span><span class="n">shape</span><span class="p">):</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"Empty image"</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">image0</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="c">#get a different view</span>
+            <span class="n">image</span> <span class="o">=</span> <span class="n">image0</span><span class="p">[:]</span>
+            <span class="n">image</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">image</span> <span class="o">=</span> <span class="n">image0</span>
+
+        <span class="k">if</span> <span class="n">image</span><span class="o">.</span><span class="n">dtype</span> <span class="o">==</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">:</span>
+            <span class="n">image</span> <span class="o">=</span> <span class="n">image</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">)</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+        <span class="n">mode</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">mode</span>
+        <span class="n">name</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">name</span>
+        <span class="k">if</span> <span class="s">'w'</span> <span class="ow">in</span> <span class="n">mode</span><span class="p">:</span>
+            <span class="c">#we have to overwrite the file</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsClosed</span><span class="p">()</span>
+            <span class="n">fd</span> <span class="o">=</span> <span class="bp">None</span>
+            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
+                <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+            <span class="n">fd</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">'wb+'</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_initEmptyFile</span><span class="p">(</span><span class="n">fd</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">fd</span> <span class="o">=</span> <span class="n">fd</span>
+
+        <span class="c">#read the file size</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsOpen</span><span class="p">()</span>
+        <span class="n">fd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_END</span><span class="p">)</span>
+        <span class="n">endOfFile</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">fd</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_initEmptyFile</span><span class="p">(</span><span class="n">fd</span><span class="p">)</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_END</span><span class="p">)</span>
+            <span class="n">endOfFile</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+
+        <span class="c">#init internal variables</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_initInternalVariables</span><span class="p">(</span><span class="n">fd</span><span class="p">)</span>
+        <span class="n">st</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span>
+
+        <span class="c">#get the image file directories</span>
+        <span class="n">nImages</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getImageFileDirectories</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"File contains </span><span class="si">%d</span><span class="s"> images"</span> <span class="o">%</span> <span class="n">nImages</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">nImages</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'I'</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">endOfFile</span><span class="p">))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'H'</span>
+            <span class="n">numberOfDirectoryEntries</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">fmt</span><span class="p"> [...]
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'I'</span>
+            <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_IFD</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">12</span> <span class="o">*</span> <span class="n">numberOfDirectoryEntries</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'I'</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">endOfFile</span><span class="p">))</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
+
+        <span class="c">#and we can write at the end of the file, find out the file length</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_END</span><span class="p">)</span>
+
+        <span class="c">#get the description information from the input information</span>
+        <span class="k">if</span> <span class="n">info</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">description</span> <span class="o">=</span> <span class="n">info</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">description</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="s">""</span>
+            <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">info</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+                <span class="n">description</span> <span class="o">+=</span> <span class="s">"</span><span class="si">%s</span><span class="s">=</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">info</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
+
+        <span class="c">#get the image file directory</span>
+        <span class="n">outputIFD</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_getOutputIFD</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="n">description</span><span class="p">,</span>
+                                              <span class="n">software</span><span class="o">=</span><span class="n">software</span><span class="p">,</span>
+                                              <span class="n">date</span><span class="o">=</span><span class="n">date</span><span class="p">)</span>
+
+        <span class="c">#write the new IFD</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">outputIFD</span><span class="p">)</span>
+
+        <span class="c">#write the image</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_swap</span><span class="p">:</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">image</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">image</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+
+        <span class="n">fd</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">fd</span> <span class="o">=</span> <span class="n">fd</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__makeSureFileIsClosed</span><span class="p">()</span>
+</div>
+    <span class="k">def</span> <span class="nf">_initEmptyFile</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fd</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">fd</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">fd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span>
+        <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">byteorder</span> <span class="o">==</span> <span class="s">"little"</span><span class="p">:</span>
+            <span class="n">order</span> <span class="o">=</span> <span class="s">"II"</span>
+            <span class="c">#intel, little endian</span>
+            <span class="n">fileOrder</span> <span class="o">=</span> <span class="s">"little"</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span> <span class="o">=</span> <span class="s">'<'</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">order</span> <span class="o">=</span> <span class="s">"MM"</span>
+            <span class="c">#motorola, high endian</span>
+            <span class="n">fileOrder</span> <span class="o">=</span> <span class="s">"big"</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span> <span class="o">=</span> <span class="s">'>'</span>
+        <span class="n">st</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span>
+        <span class="k">if</span> <span class="n">fileOrder</span> <span class="o">==</span> <span class="n">sys</span><span class="o">.</span><span class="n">byteorder</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_swap</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_swap</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o"><</span> <span class="s">'3.0'</span><span class="p">:</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">st</span> <span class="o">+</span> <span class="s">'2s'</span><span class="p">,</span> <span class="n">order</span><span class="p">))</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">st</span> <span class="o">+</span> <span class="s">'H'</span><span class="p">,</span> <span class="mi">42</span><span class="p">))</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">st</span> <span class="o">+</span> <span class="s">'I'</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">st</span> <span class="o">+</span> <span class="s">'2s'</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">order</span><span class="p">,</span> <span class="s">'utf-8'</span><span class="p">)))</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">st</span> <span class="o">+</span> <span class="s">'H'</span><span class="p">,</span> <span class="mi">42</span><span class="p">))</span>
+            <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">st</span> <span class="o">+</span> <span class="s">'I'</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
+        <span class="n">fd</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">_getOutputIFD</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">image</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">software</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">date</span><span class="o">=</span><span class="bp">None</s [...]
+        <span class="c">#the tags have to be in order</span>
+        <span class="c">#the very minimum is</span>
+        <span class="c">#256:"NumberOfColumns",           # S or L ImageWidth</span>
+        <span class="c">#257:"NumberOfRows",              # S or L ImageHeight</span>
+        <span class="c">#258:"BitsPerSample",             # S Number of bits per component</span>
+        <span class="c">#259:"Compression",               # SHORT (1 - NoCompression, ... </span>
+        <span class="c">#262:"PhotometricInterpretation", # SHORT (0 - WhiteIsZero, 1 -BlackIsZero, 2 - RGB, 3 - Palette color</span>
+        <span class="c">#270:"ImageDescription",          # ASCII</span>
+        <span class="c">#273:"StripOffsets",              # S or L, for each strip, the byte offset of the strip</span>
+        <span class="c">#278:"RowsPerStrip",              # S or L, number of rows in each back may be not for the last</span>
+        <span class="c">#279:"StripByteCounts",           # S or L, The number of bytes in the strip AFTER any compression</span>
+        <span class="c">#305:"Software",                  # ASCII</span>
+        <span class="c">#306:"Date",                      # ASCII</span>
+        <span class="c">#339:"SampleFormat",              # SHORT Interpretation of data in each pixel</span>
+
+        <span class="n">nDirectoryEntries</span> <span class="o">=</span> <span class="mi">9</span>
+        <span class="n">imageDescription</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="n">description</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">descriptionLength</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">description</span><span class="p">)</span>
+            <span class="k">while</span> <span class="n">descriptionLength</span> <span class="o"><</span> <span class="mi">4</span><span class="p">:</span>
+                <span class="n">description</span> <span class="o">=</span> <span class="n">description</span> <span class="o">+</span> <span class="s">" "</span>
+                <span class="n">descriptionLength</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">description</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o">>=</span> <span class="s">'3.0'</span><span class="p">:</span>
+                <span class="n">description</span> <span class="o">=</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">description</span><span class="p">,</span> <span class="s">'utf-8'</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">description</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">type</span><span class="p">(</span><span class="s">""</span><span class="p">):</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">description</span> <span class="o">=</span> <span class="n">description</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">'utf-8'</span><span class="p">)</span>
+                <span class="k">except</span> <span class="ne">UnicodeDecodeError</span><span class="p">:</span>
+                    <span class="k">try</span><span class="p">:</span>
+                        <span class="n">description</span> <span class="o">=</span> <span class="n">description</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">'latin-1'</span><span class="p">)</span>
+                    <span class="k">except</span> <span class="ne">UnicodeDecodeError</span><span class="p">:</span>
+                        <span class="n">description</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">description</span>
+                <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o">></span> <span class="s">'2.6'</span><span class="p">:</span>
+                    <span class="n">description</span> <span class="o">=</span> <span class="n">description</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s">'utf-8'</span><span class="p">,</span> <span class="n">errors</span><span class="o">=</span><span class="s">"ignore"</span><span class="p">)</span>
+                <span class="n">description</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">description</span>
+            <span class="n">descriptionLength</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">description</span><span class="p">)</span>
+            <span class="n">imageDescription</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="s">"</span><span class="si">%d</span><span class="s">s"</span> <span class="o">%</span> <span class="n">descriptionLength</span><span class="p">,</span> <span class="n">description</span><span class="p">)</span>
+            <span class="n">nDirectoryEntries</span> <span class="o">+=</span> <span class="mi">1</span>
+
+        <span class="c">#software</span>
+        <span class="k">if</span> <span class="n">software</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">softwareLength</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">software</span><span class="p">)</span>
+            <span class="k">while</span> <span class="n">softwareLength</span> <span class="o"><</span> <span class="mi">4</span><span class="p">:</span>
+                <span class="n">software</span> <span class="o">=</span> <span class="n">software</span> <span class="o">+</span> <span class="s">" "</span>
+                <span class="n">softwareLength</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">software</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o">>=</span> <span class="s">'3.0'</span><span class="p">:</span>
+                <span class="n">software</span> <span class="o">=</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">software</span><span class="p">,</span> <span class="s">'utf-8'</span><span class="p">)</span>
+            <span class="n">softwarePackedString</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="s">"</span><span class="si">%d</span><span class="s">s"</span> <span class="o">%</span> <span class="n">softwareLength</span><span class="p">,</span> <span class="n">software</span><span class="p">)</span>
+            <span class="n">nDirectoryEntries</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">softwareLength</span> <span class="o">=</span> <span class="mi">0</span>
+
+        <span class="k">if</span> <span class="n">date</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">dateLength</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">date</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o">>=</span> <span class="s">'3.0'</span><span class="p">:</span>
+                <span class="n">date</span> <span class="o">=</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">date</span><span class="p">,</span> <span class="s">'utf-8'</span><span class="p">)</span>
+            <span class="n">datePackedString</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="s">"</span><span class="si">%d</span><span class="s">s"</span> <span class="o">%</span> <span class="n">dateLength</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
+            <span class="n">dateLength</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">datePackedString</span><span class="p">)</span>
+            <span class="n">nDirectoryEntries</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">dateLength</span> <span class="o">=</span> <span class="mi">0</span>
+
+        <span class="n">nRows</span><span class="p">,</span> <span class="n">nColumns</span> <span class="o">=</span> <span class="n">image</span><span class="o">.</span><span class="n">shape</span>
+        <span class="n">dtype</span> <span class="o">=</span> <span class="n">image</span><span class="o">.</span><span class="n">dtype</span>
+        <span class="n">bitsPerSample</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">dtype</span><span class="o">.</span><span class="n">str</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">*</span> <span class="mi">8</span>
+
+        <span class="c">#only uncompressed data</span>
+        <span class="n">compression</span> <span class="o">=</span> <span class="mi">1</span>
+
+        <span class="c">#interpretation, black is zero</span>
+        <span class="n">interpretation</span> <span class="o">=</span> <span class="mi">1</span>
+
+        <span class="c">#image description</span>
+        <span class="k">if</span> <span class="n">imageDescription</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">descriptionLength</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">imageDescription</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">descriptionLength</span> <span class="o">=</span> <span class="mi">0</span>
+
+        <span class="c">#strip offsets</span>
+        <span class="c">#we are putting them after the directory and the directory is</span>
+        <span class="c">#at the end of the file</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">fd</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_END</span><span class="p">)</span>
+        <span class="n">endOfFile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fd</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">endOfFile</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="c">#empty file</span>
+            <span class="n">endOfFile</span> <span class="o">=</span> <span class="mi">8</span>
+
+        <span class="c">#rows per strip</span>
+        <span class="k">if</span> <span class="n">ALLOW_MULTIPLE_STRIPS</span><span class="p">:</span>
+            <span class="c">#try to segment the image in several pieces</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">nRows</span> <span class="o">%</span> <span class="mi">4</span><span class="p">):</span>
+                <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">nRows</span> <span class="o">/</span> <span class="mi">4</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="ow">not</span> <span class="p">(</span><span class="n">nRows</span> <span class="o">%</span> <span class="mi">10</span><span class="p">):</span>
+                <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">nRows</span> <span class="o">/</span> <span class="mi">10</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="ow">not</span> <span class="p">(</span><span class="n">nRows</span> <span class="o">%</span> <span class="mi">8</span><span class="p">):</span>
+                <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">nRows</span> <span class="o">/</span> <span class="mi">8</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="ow">not</span> <span class="p">(</span><span class="n">nRows</span> <span class="o">%</span> <span class="mi">4</span><span class="p">):</span>
+                <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">nRows</span> <span class="o">/</span> <span class="mi">4</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="ow">not</span> <span class="p">(</span><span class="n">nRows</span> <span class="o">%</span> <span class="mi">2</span><span class="p">):</span>
+                <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">nRows</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="n">nRows</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">rowsPerStrip</span> <span class="o">=</span> <span class="n">nRows</span>
+
+        <span class="c">#stripByteCounts</span>
+        <span class="n">stripByteCounts</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">nColumns</span> <span class="o">*</span> <span class="n">rowsPerStrip</span> <span class="o">*</span> <span class="n">bitsPerSample</span> <span class="o">/</span> <span class="mi">8</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">descriptionLength</span> <span class="o">></span> <span class="mi">4</span><span class="p">:</span>
+            <span class="n">stripOffsets0</span> <span class="o">=</span> <span class="n">endOfFile</span> <span class="o">+</span> <span class="n">dateLength</span> <span class="o">+</span> <span class="n">descriptionLength</span> <span class="o">+</span> \
+                        <span class="mi">2</span> <span class="o">+</span> <span class="mi">12</span> <span class="o">*</span> <span class="n">nDirectoryEntries</span> <span class="o">+</span> <span class="mi">4</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">stripOffsets0</span> <span class="o">=</span> <span class="n">endOfFile</span> <span class="o">+</span> <span class="n">dateLength</span> <span class="o">+</span> \
+                        <span class="mi">2</span> <span class="o">+</span> <span class="mi">12</span> <span class="o">*</span> <span class="n">nDirectoryEntries</span> <span class="o">+</span> <span class="mi">4</span>
+
+        <span class="k">if</span> <span class="n">softwareLength</span> <span class="o">></span> <span class="mi">4</span><span class="p">:</span>
+            <span class="n">stripOffsets0</span> <span class="o">+=</span> <span class="n">softwareLength</span>
+
+        <span class="n">stripOffsets</span> <span class="o">=</span> <span class="p">[</span><span class="n">stripOffsets0</span><span class="p">]</span>
+        <span class="n">stripOffsetsLength</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="n">stripOffsetsString</span> <span class="o">=</span> <span class="bp">None</span>
+
+        <span class="n">st</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_structChar</span>
+
+        <span class="k">if</span> <span class="n">rowsPerStrip</span> <span class="o">!=</span> <span class="n">nRows</span><span class="p">:</span>
+            <span class="n">nStripOffsets</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">nRows</span> <span class="o">/</span> <span class="n">rowsPerStrip</span><span class="p">)</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'I'</span>
+            <span class="n">stripOffsetsLength</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">fmt</span><span class="p">)</span> <span class="o">*</span> <span class="n">nStripOffsets</span>
+            <span class="n">stripOffsets0</span> <span class="o">+=</span> <span class="n">stripOffsetsLength</span>
+            <span class="c">#the length for the stripByteCounts will be the same</span>
+            <span class="n">stripOffsets0</span> <span class="o">+=</span> <span class="n">stripOffsetsLength</span>
+            <span class="n">stripOffsets</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nStripOffsets</span><span class="p">):</span>
+                <span class="n">value</span> <span class="o">=</span> <span class="n">stripOffsets0</span> <span class="o">+</span> <span class="n">i</span> <span class="o">*</span> <span class="n">stripByteCounts</span>
+                <span class="n">stripOffsets</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+                <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                    <span class="n">stripOffsetsString</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="n">fmt</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+                    <span class="n">stripByteCountsString</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="n">fmt</span><span class="p">,</span> <span class="n">stripByteCounts</span><span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">stripOffsetsString</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="n">fmt</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+                    <span class="n">stripByteCountsString</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="n">fmt</span><span class="p">,</span> <span class="n">stripByteCounts</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">DEBUG</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"IMAGE WILL START AT </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">stripOffsets</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+
+        <span class="c">#sample format</span>
+        <span class="k">if</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="p">[</span><span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">]</span> <span class="ow">or</span>\
+           <span class="n">dtype</span><span class="o">.</span><span class="n">str</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">==</span> <span class="s">'f'</span><span class="p">:</span>
+            <span class="n">sampleFormat</span> <span class="o">=</span> <span class="n">SAMPLE_FORMAT_FLOAT</span>
+        <span class="k">elif</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="p">[</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span c [...]
+            <span class="n">sampleFormat</span> <span class="o">=</span> <span class="n">SAMPLE_FORMAT_UINT</span>
+        <span class="k">elif</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="p">[</span><span class="n">numpy</span><span class="o">.</span><span class="n">int8</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int16</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span clas [...]
+            <span class="n">sampleFormat</span> <span class="o">=</span> <span class="n">SAMPLE_FORMAT_INT</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"Unsupported data type </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">dtype</span><span class="p">)</span>
+
+        <span class="n">info</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"nColumns"</span><span class="p">]</span> <span class="o">=</span> <span class="n">nColumns</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"nRows"</span><span class="p">]</span> <span class="o">=</span> <span class="n">nRows</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"nBits"</span><span class="p">]</span> <span class="o">=</span> <span class="n">bitsPerSample</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"compression"</span><span class="p">]</span> <span class="o">=</span> <span class="n">compression</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"photometricInterpretation"</span><span class="p">]</span> <span class="o">=</span> <span class="n">interpretation</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"stripOffsets"</span><span class="p">]</span> <span class="o">=</span> <span class="n">stripOffsets</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"rowsPerStrip"</span><span class="p">]</span> <span class="o">=</span> <span class="n">rowsPerStrip</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"stripByteCounts"</span><span class="p">]</span> <span class="o">=</span> <span class="n">stripByteCounts</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"date"</span><span class="p">]</span> <span class="o">=</span> <span class="n">date</span>
+        <span class="n">info</span><span class="p">[</span><span class="s">"sampleFormat"</span><span class="p">]</span> <span class="o">=</span> <span class="n">sampleFormat</span>
+
+        <span class="n">outputIFD</span> <span class="o">=</span> <span class="s">""</span>
+        <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span> <span class="o">></span> <span class="s">'2.6'</span><span class="p">:</span>
+            <span class="n">outputIFD</span> <span class="o">=</span> <span class="nb">eval</span><span class="p">(</span><span class="s">'b""'</span><span class="p">)</span>
+
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">"H"</span>
+        <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">nDirectoryEntries</span><span class="p">)</span>
+
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">"HHII"</span>
+        <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_NUMBER_OF_COLUMNS</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'I'</span><span class="p">],</span>
+                                         <span class="mi">1</span><span class="p">,</span>
+                                         <span class="n">info</span><span class="p">[</span><span class="s">"nColumns"</span><span class="p">])</span>
+        <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_NUMBER_OF_ROWS</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'I'</span><span class="p">],</span>
+                                         <span class="mi">1</span><span class="p">,</span>
+                                         <span class="n">info</span><span class="p">[</span><span class="s">"nRows"</span><span class="p">])</span>
+
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHIHH'</span>
+        <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_BITS_PER_SAMPLE</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'H'</span><span class="p">],</span>
+                                         <span class="mi">1</span><span class="p">,</span>
+                                         <span class="n">info</span><span class="p">[</span><span class="s">"nBits"</span><span class="p">],</span> <span class="mi">0</span><span class="p">)</span>
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHIHH'</span>
+        <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_COMPRESSION</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'H'</span><span class="p">],</span>
+                                         <span class="mi">1</span><span class="p">,</span>
+                                         <span class="n">info</span><span class="p">[</span><span class="s">"compression"</span><span class="p">],</span> <span class="mi">0</span><span class="p">)</span>
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHIHH'</span>
+        <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_PHOTOMETRIC_INTERPRETATION</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'H'</span><span class="p">],</span>
+                                         <span class="mi">1</span><span class="p">,</span>
+                                         <span class="n">info</span><span class="p">[</span><span class="s">"photometricInterpretation"</span><span class="p">],</span> <span class="mi">0</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">imageDescription</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">descriptionLength</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">imageDescription</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">descriptionLength</span> <span class="o">></span> <span class="mi">4</span><span class="p">:</span>
+                <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHII'</span>
+                <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_IMAGE_DESCRIPTION</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'s'</span><span class="p">],</span>
+                                         <span class="n">descriptionLength</span><span class="p">,</span>
+                                         <span class="n">info</span><span class="p">[</span><span class="s">"stripOffsets"</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> \
+                                         <span class="mi">2</span> <span class="o">*</span> <span class="n">stripOffsetsLength</span> <span class="o">-</span> \
+                                         <span class="n">descriptionLength</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="c">#it has to have length 4</span>
+                <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHI</span><span class="si">%d</span><span class="s">s'</span> <span class="o">%</span> <span class="n">descriptionLength</span>
+                <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_IMAGE_DESCRIPTION</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'s'</span><span class="p">],</span>
+                                         <span class="n">descriptionLength</span><span class="p">,</span>
+                                         <span class="n">description</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">stripOffsets</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHII'</span>
+            <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_STRIP_OFFSETS</span><span class="p">,</span>
+                                             <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'I'</span><span class="p">],</span>
+                                             <span class="mi">1</span><span class="p">,</span>
+                                             <span class="n">info</span><span class="p">[</span><span class="s">"stripOffsets"</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHII'</span>
+            <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_STRIP_OFFSETS</span><span class="p">,</span>
+                                             <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'I'</span><span class="p">],</span>
+                                             <span class="nb">len</span><span class="p">(</span><span class="n">stripOffsets</span><span class="p">),</span>
+                    <span class="n">info</span><span class="p">[</span><span class="s">"stripOffsets"</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">stripOffsetsLength</span><span class="p">)</span>
+
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHII'</span>
+        <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_ROWS_PER_STRIP</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'I'</span><span class="p">],</span>
+                                         <span class="mi">1</span><span class="p">,</span>
+                                         <span class="n">info</span><span class="p">[</span><span class="s">"rowsPerStrip"</span><span class="p">])</span>
+
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">stripOffsets</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHII'</span>
+            <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_STRIP_BYTE_COUNTS</span><span class="p">,</span>
+                                             <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'I'</span><span class="p">],</span>
+                                             <span class="mi">1</span><span class="p">,</span>
+                                             <span class="n">info</span><span class="p">[</span><span class="s">"stripByteCounts"</span><span class="p">])</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHII'</span>
+            <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_STRIP_BYTE_COUNTS</span><span class="p">,</span>
+                                             <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'I'</span><span class="p">],</span>
+                                             <span class="nb">len</span><span class="p">(</span><span class="n">stripOffsets</span><span class="p">),</span>
+                    <span class="n">info</span><span class="p">[</span><span class="s">"stripOffsets"</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="n">stripOffsetsLength</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">software</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">softwareLength</span> <span class="o">></span> <span class="mi">4</span><span class="p">:</span>
+                <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHII'</span>
+                <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_SOFTWARE</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'s'</span><span class="p">],</span>
+                                         <span class="n">softwareLength</span><span class="p">,</span>
+                                         <span class="n">info</span><span class="p">[</span><span class="s">"stripOffsets"</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> \
+                                         <span class="mi">2</span> <span class="o">*</span> <span class="n">stripOffsetsLength</span> <span class="o">-</span> \
+                            <span class="n">descriptionLength</span> <span class="o">-</span> <span class="n">softwareLength</span> <span class="o">-</span> <span class="n">dateLength</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="c">#it has to have length 4</span>
+                <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHI</span><span class="si">%d</span><span class="s">s'</span> <span class="o">%</span> <span class="n">softwareLength</span>
+                <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_SOFTWARE</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'s'</span><span class="p">],</span>
+                                         <span class="n">softwareLength</span><span class="p">,</span>
+                                         <span class="n">softwarePackedString</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">date</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHII'</span>
+            <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_DATE</span><span class="p">,</span>
+                                      <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'s'</span><span class="p">],</span>
+                                      <span class="n">dateLength</span><span class="p">,</span>
+                                      <span class="n">info</span><span class="p">[</span><span class="s">"stripOffsets"</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> \
+                                         <span class="mi">2</span> <span class="o">*</span> <span class="n">stripOffsetsLength</span> <span class="o">-</span> \
+                                      <span class="n">descriptionLength</span> <span class="o">-</span> <span class="n">dateLength</span><span class="p">)</span>
+
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'HHIHH'</span>
+        <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="n">TAG_SAMPLE_FORMAT</span><span class="p">,</span>
+                                         <span class="n">FIELD_TYPE_OUT</span><span class="p">[</span><span class="s">'H'</span><span class="p">],</span>
+                                         <span class="mi">1</span><span class="p">,</span>
+                                         <span class="n">info</span><span class="p">[</span><span class="s">"sampleFormat"</span><span class="p">],</span> <span class="mi">0</span><span class="p">)</span>
+        <span class="n">fmt</span> <span class="o">=</span> <span class="n">st</span> <span class="o">+</span> <span class="s">'I'</span>
+        <span class="n">outputIFD</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="n">fmt</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">softwareLength</span> <span class="o">></span> <span class="mi">4</span><span class="p">:</span>
+            <span class="n">outputIFD</span> <span class="o">+=</span> <span class="n">softwarePackedString</span>
+
+        <span class="k">if</span> <span class="n">date</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">outputIFD</span> <span class="o">+=</span> <span class="n">datePackedString</span>
+
+        <span class="k">if</span> <span class="n">imageDescription</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">descriptionLength</span> <span class="o">></span> <span class="mi">4</span><span class="p">:</span>
+                <span class="n">outputIFD</span> <span class="o">+=</span> <span class="n">imageDescription</span>
+
+        <span class="k">if</span> <span class="n">stripOffsetsString</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">outputIFD</span> <span class="o">+=</span> <span class="n">stripOffsetsString</span>
+            <span class="n">outputIFD</span> <span class="o">+=</span> <span class="n">stripByteCountsString</span>
+
+        <span class="k">return</span> <span class="n">outputIFD</span>
+
+</div>
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span>
+    <span class="n">filename</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+    <span class="n">dtype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
+        <span class="k">print</span><span class="p">(</span><span class="s">"Testing file creation"</span><span class="p">)</span>
+        <span class="n">tif</span> <span class="o">=</span> <span class="n">TiffIO</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">'wb+'</span><span class="p">)</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">10000</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+        <span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">100</span>
+        <span class="n">tif</span><span class="o">.</span><span class="n">writeImage</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">info</span><span class="o">=</span><span class="p">{</span><span class="s">'Title'</span><span class="p">:</span><span class="s">'1st'</span><span class="p">})</span>
+        <span class="n">tif</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"Testing image appending"</span><span class="p">)</span>
+            <span class="n">tif</span> <span class="o">=</span> <span class="n">TiffIO</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">'rb+'</span><span class="p">)</span>
+            <span class="n">tif</span><span class="o">.</span><span class="n">writeImage</span><span class="p">((</span><span class="n">data</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">dtype</span><span class="p">),</span> <span class="n">info</span><span class="o">=</span><span class="p">{</span><span class="s">'Title'</span><span class="p">:</span><s [...]
+            <span class="n">tif</span> <span class="o">=</span> <span class="bp">None</span>
+    <span class="n">tif</span> <span class="o">=</span> <span class="n">TiffIO</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+    <span class="k">print</span><span class="p">(</span><span class="s">"Number of images = </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="n">tif</span><span class="o">.</span><span class="n">getNumberOfImages</span><span class="p">())</span>
+    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tif</span><span class="o">.</span><span class="n">getNumberOfImages</span><span class="p">()):</span>
+        <span class="n">info</span> <span class="o">=</span> <span class="n">tif</span><span class="o">.</span><span class="n">getInfo</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">info</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s">"colormap"</span><span class="p">]:</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> = </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">info</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span>
+            <span class="k">elif</span> <span class="n">info</span><span class="p">[</span><span class="s">'colormap'</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="k">print</span><span class="p">(</span><span class="s">"RED   </span><span class="si">%s</span><span class="s"> = </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">info</span><span class="p">[</span><span class="n">key</span><span class="p">][</span><span class="mi">0</span><span class="p">:</span><span class="mi">10</span><spa [...]
+                <span class="k">print</span><span class="p">(</span><span class="s">"GREEN </span><span class="si">%s</span><span class="s"> = </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">info</span><span class="p">[</span><span class="n">key</span><span class="p">][</span><span class="mi">0</span><span class="p">:</span><span class="mi">10</span><spa [...]
+                <span class="k">print</span><span class="p">(</span><span class="s">"BLUE  </span><span class="si">%s</span><span class="s"> = </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">info</span><span class="p">[</span><span class="n">key</span><span class="p">][</span><span class="mi">0</span><span class="p">:</span><span class="mi">10</span><spa [...]
+        <span class="n">data</span> <span class="o">=</span> <span class="n">tif</span><span class="o">.</span><span class="n">getImage</span><span class="p">(</span><span class="n">i</span><span class="p">)[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">:</span><span class="mi">10</span><span class="p">]</span>
+        <span class="k">print</span><span class="p">(</span><span class="s">"data [0, 0:10] = "</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/adscimage.html b/doc/html/_modules/fabio/adscimage.html
new file mode 100644
index 0000000..67c9302
--- /dev/null
+++ b/doc/html/_modules/fabio/adscimage.html
@@ -0,0 +1,231 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.adscimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.adscimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#coding: utf8</span>
+<span class="sd">"""</span>
+
+<span class="sd">Authors: Henning O. Sorensen & Erik Knudsen</span>
+<span class="sd">         Center for Fundamental Research: Metal Structures in Four Dimensions</span>
+<span class="sd">         Risoe National Laboratory</span>
+<span class="sd">         Frederiksborgvej 399</span>
+<span class="sd">         DK-4000 Roskilde</span>
+<span class="sd">         email:erik.knudsen at risoe.dk</span>
+
+<span class="sd">+ mods for fabio by JPW</span>
+
+<span class="sd">"""</span>
+
+<span class="kn">import</span> <span class="nn">numpy</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"adscimage"</span><span class="p">)</span>
+
+<div class="viewcode-block" id="adscimage"><a class="viewcode-back" href="../../api/modules.html#fabio.adscimage.adscimage">[docs]</a><span class="k">class</span> <span class="nc">adscimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">""" Read an image in ADSC format (quite similar to edf?) """</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+
+<div class="viewcode-block" id="adscimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.adscimage.adscimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">""" read in the file """</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Error processing adsc header"</span><span class="p">)</span>
+        <span class="c"># banned by bzip/gzip???</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'HEADER_BYTES'</span><span class="p">]),</span> <span class="mi">0</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
+            <span class="c"># Gzipped does not allow a seek and read header is not</span>
+            <span class="c"># promising to stop in the right place</span>
+            <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+            <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+            <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'HEADER_BYTES'</span><span class="p">]))</span>
+        <span class="n">binary</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+        <span class="c">#now read the data into the array</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'SIZE1'</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'SIZE2'</span><span class="p">])</span>
+        <span class="k">if</span> <span class="s">'little'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'BYTE_ORDER'</span><span class="p">]:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span>
+                    <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">binary</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">),</span>
+                    <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">))</span>
+            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> <span class="s">'Size spec in ADSC-header does not match '</span> <span class="o">+</span> \
+                    <span class="s">'size of image data field'</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">"adscimage read in using low byte first (x386-order)"</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span>
+                    <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">binary</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">),</span>
+                    <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">))</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span>
+            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> <span class="s">'Size spec in ADSC-header does not match '</span> <span class="o">+</span> \
+                    <span class="s">'size of image data field'</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">'adscimage using high byte first (network order)'</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="k">return</span> <span class="bp">self</span>
+
+</div>
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">""" read an adsc header """</span>
+        <span class="n">line</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+        <span class="n">bytesread</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
+        <span class="k">while</span> <span class="s">'}'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
+            <span class="k">if</span> <span class="s">'='</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
+                <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'='</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="o">.</span><span class="n">strip</span><span class="p">()]</span> <span class="o">=</span> <span class="n">val</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">' ;</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>
+            <span class="n">line</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+            <span class="n">bytesread</span> <span class="o">=</span> <span class="n">bytesread</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
+
+
+<div class="viewcode-block" id="adscimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.adscimage.adscimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Write adsc format</span>
+<span class="sd">        """</span>
+        <span class="n">out</span> <span class="o">=</span> <span class="s">'{</span><span class="se">\n</span><span class="s">'</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">:</span>
+            <span class="n">out</span> <span class="o">+=</span> <span class="s">"</span><span class="si">%s</span><span class="s"> = </span><span class="si">%s</span><span class="s">;</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span cla [...]
+        <span class="c"># FIXME ??? - made padding match header bytes keyword            </span>
+        <span class="c">#        the cbflib example image has exactly 512...</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">"HEADER_BYTES"</span><span class="p">):</span>
+            <span class="n">pad</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"HEADER_BYTES"</span><span class="p">])</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="o">-</span> <span class="mi">2</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c"># integer division</span>
+            <span class="c"># 1234567890123456789012</span>
+            <span class="c"># HEADER_BYTES = 1234;\n</span>
+            <span class="n">hsize</span> <span class="o">=</span> <span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="o">+</span> <span class="mi">23</span><span class="p">)</span> <span class="o">/</span> <span class="mi">512</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="mi">512</span>
+            <span class="n">out</span> <span class="o">+=</span> <span class="s">"HEADER_BYTES=</span><span class="si">%d</span><span class="s">;</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">hsize</span><span class="p">)</span>
+            <span class="n">pad</span> <span class="o">=</span> <span class="n">hsize</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="o">-</span> <span class="mi">2</span>
+        <span class="n">out</span> <span class="o">+=</span> <span class="n">pad</span> <span class="o">*</span> <span class="s">' '</span> <span class="o">+</span> <span class="s">"}</span><span class="se">\n</span><span class="s">"</span>
+        <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="o">%</span> <span class="mi">512</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">,</span> <span class="s">"Header is not multiple of 512"</span>
+        <span class="n">outf</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"wb"</span><span class="p">)</span>
+        <span class="n">outf</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">out</span><span class="p">)</span>
+        <span class="c"># it says "unsigned_short" ? ... jpw example has:</span>
+        <span class="c"># BYTE_ORDER=big_endian;</span>
+        <span class="c"># TYPE=unsigned_short;</span>
+        <span class="k">if</span> <span class="s">"little"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"BYTE_ORDER"</span><span class="p">]:</span>
+            <span class="n">outf</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">outf</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span>
+                    <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+        <span class="n">outf</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+</div></div>
+<div class="viewcode-block" id="test"><a class="viewcode-back" href="../../api/modules.html#fabio.adscimage.test">[docs]</a><span class="k">def</span> <span class="nf">test</span><span class="p">():</span>
+    <span class="sd">""" testcase """</span>
+    <span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">time</span>
+    <span class="n">img</span> <span class="o">=</span> <span class="n">adscimage</span><span class="p">()</span>
+    <span class="n">begin</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">clock</span><span class="p">()</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]):</span>
+        <span class="n">img</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+<span class="c">#        rim = img.toPIL16()</span>
+        <span class="n">img</span><span class="o">.</span><span class="n">rebin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
+        <span class="n">img</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'jegErEnFil0000.img'</span><span class="p">)</span>
+        <span class="k">print</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="s">": max=</span><span class="si">%d</span><span class="s">, min=</span><span class="si">%d</span><span class="s">, mean=</span><span class="si">%.2e</span><span class="s">, stddev=</span><span class="si">%.2e</span><span class="s">"</span> <span class="o" [...]
+              <span class="n">img</span><span class="o">.</span><span class="n">getmax</span><span class="p">(),</span> <span class="n">img</span><span class="o">.</span><span class="n">getmin</span><span class="p">(),</span> <span class="n">img</span><span class="o">.</span><span class="n">getmean</span><span class="p">(),</span> <span class="n">img</span><span class="o">.</span><span class="n">getstddev</span><span class="p">())</span>
+        <span class="k">print</span> <span class="s">'integrated intensity (</span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s">) =</span><span class="si">%.3f</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span>\
+              <span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="n">img</span><span class="o">.</span><span class="n">integrate_area</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span cla [...]
+        <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">:]</span>
+    <span class="n">end</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">clock</span><span class="p">()</span>
+    <span class="k">print</span> <span class="n">end</span> <span class="o">-</span> <span class="n">begin</span>
+
+</div>
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span>
+    <span class="n">test</span><span class="p">()</span>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/binaryimage.html b/doc/html/_modules/fabio/binaryimage.html
new file mode 100644
index 0000000..72b782f
--- /dev/null
+++ b/doc/html/_modules/fabio/binaryimage.html
@@ -0,0 +1,196 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.binaryimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.binaryimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c"># coding: utf8</span>
+
+<span class="c"># Get ready for python3:</span>
+<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">with_statement</span><span class="p">,</span> <span class="n">print_function</span>
+<span class="n">__doc__</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">Authors: Gael Goret, Jerome Kieffer, ESRF, France</span>
+<span class="s">Emails: gael.goret at esrf.fr, jerome.kieffer at esrf.fr</span>
+<span class="s">        Brian Richard Pauw <brian at stack.nl></span>
+
+<span class="s">Binary files images are simple none-compressed 2D images only defined by their :</span>
+<span class="s">data-type, dimensions, byte order and offset</span>
+
+<span class="s">This simple library has been made for manipulating exotic/unknown files format.</span>
+<span class="s">"""</span>
+
+<span class="n">__authors__</span> <span class="o">=</span> <span class="p">[</span><span class="s">"Gaël Goret"</span><span class="p">,</span> <span class="s">"Jérôme Kieffer"</span><span class="p">,</span> <span class="s">"Brian Pauw"</span><span class="p">]</span>
+<span class="n">__contact__</span> <span class="o">=</span> <span class="s">"gael.goret at esrf.fr"</span>
+<span class="n">__license__</span> <span class="o">=</span> <span class="s">"GPLv3+"</span>
+<span class="n">__copyright__</span> <span class="o">=</span> <span class="s">"European Synchrotron Radiation Facility, Grenoble, France"</span>
+<span class="n">__version__</span> <span class="o">=</span> <span class="s">"17 Oct 2012"</span>
+
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">import</span> <span class="nn">numpy</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"binaryimage"</span><span class="p">)</span>
+
+<div class="viewcode-block" id="binaryimage"><a class="viewcode-back" href="../../api/modules.html#fabio.binaryimage.binaryimage">[docs]</a><span class="k">class</span> <span class="nc">binaryimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    This simple library has been made for manipulating exotic/unknown files format.</span>
+
+<span class="sd">    Binary files images are simple none-compressed 2D images only defined by their :</span>
+<span class="sd">    data-type, dimensions, byte order and offset</span>
+
+<span class="sd">    if offset is set to a negative value, the image is read using the last data but n</span>
+<span class="sd">    data in the file, skipping any header.</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="binaryimage.swap_needed"><a class="viewcode-back" href="../../api/modules.html#fabio.binaryimage.binaryimage.swap_needed">[docs]</a>    <span class="k">def</span> <span class="nf">swap_needed</span><span class="p">(</span><span class="n">endian</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Decide if we need to byteswap</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">endian</span> <span class="o">==</span> <span class="s">'<'</span> <span class="ow">and</span> <span class="n">numpy</span><span class="o">.</span><span class="n">little_endian</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">endian</span> <span class="o">==</span> <span class="s">'>'</span> <span class="ow">and</span> <span class="ow">not</span [...]
+            <span class="k">return</span> <span class="bp">False</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">endian</span> <span class="o">==</span> <span class="s">'>'</span> <span class="ow">and</span> <span class="n">numpy</span><span class="o">.</span><span class="n">little_endian</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">endian</span> <span class="o">==</span> <span class="s">'<'</span> <span class="ow">and</span> <span class="ow">not</span [...]
+            <span class="k">return</span> <span class="bp">True</span>
+</div>
+<div class="viewcode-block" id="binaryimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.binaryimage.binaryimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">dim1</span><span class="p">,</span> <span class="n">dim2</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</s [...]
+        <span class="sd">"""</span>
+<span class="sd">        Read a binary image</span>
+
+<span class="sd">        @param fname: file name</span>
+<span class="sd">        @type fname: string</span>
+<span class="sd">        @param dim1: image dimensions (Fast index)</span>
+<span class="sd">        @param dim2: image dimensions (Slow index)</span>
+<span class="sd">        @param offset: starting position of the data-block. If negative, starts at the end.</span>
+<span class="sd">        @param bytecode: can be "int8","int16","int32","int64","uint8","uint16","uint32","uint64","float32","float64",...</span>
+<span class="sd">        @param endian:  among short or long endian ("<" or ">")</span>
+
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">fname</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="n">dim1</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="n">dim2</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">bytecode</span>
+        <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="n">dims</span> <span class="o">=</span> <span class="p">[</span><span class="n">dim2</span><span class="p">,</span> <span class="n">dim1</span><span class="p">]</span>
+        <span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+        <span class="n">size</span> <span class="o">=</span> <span class="n">dims</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">dims</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">bpp</span>
+
+        <span class="k">if</span> <span class="n">offset</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">f</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">offset</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">f</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="o">-</span><span class="n">size</span> <span class="o">+</span> <span class="n">offset</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="c">#seek from EOF backwards</span>
+            <span class="k">except</span> <span class="ne">IOError</span><span class="p">:</span>
+                <span class="n">logging</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s">'expected datablock too large, please check bytecode settings: {}'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">bytecode</span><span class="p">))</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">'Uncommon error encountered when reading file'</span><span class="p">)</span>
+        <span class="n">rawData</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">size</span><span class="p">)</span>
+        <span class="k">if</span>  <span class="bp">self</span><span class="o">.</span><span class="n">swap_needed</span><span class="p">(</span><span class="n">endian</span><span class="p">):</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">rawData</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="nb">tuple</span><span class="p">(</sp [...]
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">rawData</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="nb">tuple</span><span class="p">(</span><span class="n">dims</span><span class="p">))</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div>
+<div class="viewcode-block" id="binaryimage.estimate_offset_value"><a class="viewcode-back" href="../../api/modules.html#fabio.binaryimage.binaryimage.estimate_offset_value">[docs]</a>    <span class="k">def</span> <span class="nf">estimate_offset_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">dim1</span><span class="p">,</span> <span class="n">dim2</span><span class="p">,</span [...]
+        <span class="s">"Estimates the size of a file"</span>
+        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+            <span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+            <span class="n">size</span> <span class="o">=</span> <span class="n">dim1</span> <span class="o">*</span> <span class="n">dim2</span> <span class="o">*</span> <span class="n">bpp</span>
+            <span class="n">totsize</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">'total size (bytes): </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="n">totsize</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">'expected data size given parameters (bytes): </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">'estimation of the offset value (bytes): </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="n">totsize</span> <span class="o">-</span> <span class="n">size</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="binaryimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.binaryimage.binaryimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">"wb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+</pre></div></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/bruker100image.html b/doc/html/_modules/fabio/bruker100image.html
new file mode 100644
index 0000000..7481a9f
--- /dev/null
+++ b/doc/html/_modules/fabio/bruker100image.html
@@ -0,0 +1,190 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.bruker100image — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.bruker100image</h1><div class="highlight"><pre>
+<span class="kn">import</span> <span class="nn">numpy</span>
+<span class="kn">import</span> <span class="nn">math</span>
+<span class="kn">import</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"bruker100image"</span><span class="p">)</span>
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">from</span> <span class="nn">PIL</span> <span class="kn">import</span> <span class="n">Image</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"PIL is not installed ... trying to do without"</span><span class="p">)</span>
+    <span class="n">Image</span> <span class="o">=</span> <span class="bp">None</span>
+
+<span class="kn">from</span> <span class="nn">brukerimage</span> <span class="kn">import</span> <span class="n">brukerimage</span>
+<span class="kn">from</span> <span class="nn">readbytestream</span> <span class="kn">import</span> <span class="n">readbytestream</span> 
+
+<div class="viewcode-block" id="bruker100image"><a class="viewcode-back" href="../../api/modules.html#fabio.bruker100image.bruker100image">[docs]</a><span class="k">class</span> <span class="nc">bruker100image</span><span class="p">(</span><span class="n">brukerimage</span><span class="p">):</span>
+
+
+<div class="viewcode-block" id="bruker100image.toPIL16"><a class="viewcode-back" href="../../api/modules.html#fabio.bruker100image.bruker100image.toPIL16">[docs]</a>    <span class="k">def</span> <span class="nf">toPIL16</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">Image</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"PIL is not installed !!! "</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">filename</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+        <span class="n">PILimage</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">frombuffer</span><span class="p">(</span><span class="s">"F"</span><span class="p">,</span>
+                                        <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">),</span>
+                                        <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">,</span>
+                                        <span class="s">"raw"</span><span class="p">,</span>
+                                        <span class="s">"F;16"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">PILimage</span>
+</div>
+<div class="viewcode-block" id="bruker100image.read"><a class="viewcode-back" href="../../api/modules.html#fabio.bruker100image.bruker100image.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span>
+
+        <span class="n">rows</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NROWS'</span><span class="p">])</span>
+        <span class="n">cols</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NCOLS'</span><span class="p">])</span>
+        <span class="n">npixelb</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NPIXELB'</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
+        <span class="c"># you had to read the Bruker docs to know this!</span>
+
+        <span class="c"># We are now at the start of the image - assuming </span>
+        <span class="c">#   readbrukerheader worked</span>
+        <span class="c"># size = rows * cols * npixelb</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">readbytestream</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">f</span><span class="o">.</span><span class="n">tell</span><span class="p">(),</span> <span class="n">rows</span><span class="p">,</span> <span class="n">cols</span><span class="p">,</span> <span class="n">npixelb</span><span class="p">,</span>
+                                    <span class="n">datatype</span><span class="o">=</span><span class="s">"int"</span><span class="p">,</span> <span class="n">signed</span><span class="o">=</span><span class="s">'n'</span><span class="p">,</span> <span class="n">swap</span><span class="o">=</span><span class="s">'n'</span><span class="p">)</span>
+
+        <span class="n">noverfl</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NOVERFL'</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()</span> <span class="c"># now process the overflows</span>
+        <span class="c">#read the set of "underflow pixels" - these will be completely </span>
+        <span class="c"># disregarded for now</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span>
+        <span class="n">k</span> <span class="o">=</span> <span class="mi">0</span>
+
+        <span class="k">while</span> <span class="n">k</span> <span class="o"><</span> <span class="mi">2</span><span class="p">:</span><span class="c">#for the time being things - are done in 16 bits</span>
+            <span class="n">datatype</span> <span class="o">=</span> <span class="p">{</span><span class="s">'1'</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">,</span>
+                        <span class="s">'2'</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span>
+                        <span class="s">'4'</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span> <span class="p">}[(</span><span class="s">"</span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">**</span> <span class="n">k</span><span class="p">)]</span>
+            <span class="n">ar</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">noverfl</span><span class="p">[</span><span class= [...]
+                                        <span class="n">datatype</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+            <span class="c">#insert the the overflow pixels in the image array:</span>
+            <span class="c">#this is probably a memory intensive way of doing this - </span>
+            <span class="c"># might be done in a more clever way</span>
+            <span class="n">lim</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">**</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="n">k</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
+            <span class="c">#generate an array comprising of the indices into data.ravel() </span>
+            <span class="c"># where its value equals lim.</span>
+            <span class="n">M</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">compress</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">equal</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">ravel</span><span class="p">(),</span> <span class="n">lim</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span cla [...]
+            <span class="c">#now put values from ar into those indices</span>
+            <span class="n">numpy</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">ravel</span><span class="p">(),</span> <span class="n">M</span><span class="p">,</span> <span class="n">ar</span><span class="p">)</span>
+            <span class="n">padding</span> <span class="o">=</span> <span class="mi">16</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">noverfl</span><span class="p">[</span><span class="n">k</span><span class="p">])</span> <span class="o">*</span> <span class="p">(</span><span class="mi [...]
+                         <span class="nb">int</span><span class="p">(</span><span class="n">noverfl</span><span class="p">[</span><span class="n">k</span><span class="p">])</span> <span class="o">*</span> <span class="p">(</span><span class="mi">2</span> <span class="o">**</span> <span class="n">k</span><span class="p">)</span>
+            <span class="n">f</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">padding</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+            <span class="k">print</span> <span class="n">noverfl</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">+</span> <span class="s">" bytes read + </span><span class="si">%d</span><span class="s"> bytes padding"</span> <span class="o">%</span> <span class="n">padding</span>
+            <span class="n">k</span> <span class="o">=</span> <span class="n">k</span> <span class="o">+</span> <span class="mi">1</span>
+
+        <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+        <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">)</span> <span class="o">=</span> <span class="p">(</span><span class="n">rows</span><span class="p">,</span> <span class="n">cols</span><span class="p">)</span>
+        <span class="k">print</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div></div>
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span>
+    <span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">time</span>
+    <span class="n">I</span> <span class="o">=</span> <span class="n">bruker100image</span><span class="p">()</span>
+    <span class="n">b</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">clock</span><span class="p">()</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]):</span>
+        <span class="n">I</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+        <span class="n">r</span> <span class="o">=</span> <span class="n">I</span><span class="o">.</span><span class="n">toPIL16</span><span class="p">()</span>
+        <span class="n">I</span><span class="o">.</span><span class="n">rebin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
+        <span class="k">print</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="p">(</span><span class="s">": max=</span><span class="si">%d</span><span class="s">, min=</span><span class="si">%d</span><span class="s">, mean=</span><span class="si">%.2e</span><span class="s">, stddev=</span><span class="si">%.2e</span><span class="s">&quot [...]
+            <span class="n">I</span><span class="o">.</span><span class="n">getmax</span><span class="p">(),</span> <span class="n">I</span><span class="o">.</span><span class="n">getmin</span><span class="p">(),</span> <span class="n">I</span><span class="o">.</span><span class="n">getmean</span><span class="p">(),</span> <span class="n">I</span><span class="o">.</span><span class="n">getstddev</span><span class="p">())</span>
+        <span class="k">print</span> <span class="s">'integrated intensity (</span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s">) =</span><span class="si">%.3f</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span>
+            <span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="n">I</span><span class="o">.</span><span class="n">integrate_area</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class=" [...]
+        <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">:]</span>
+    <span class="n">e</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">clock</span><span class="p">()</span>
+    <span class="k">print</span> <span class="p">(</span><span class="n">e</span> <span class="o">-</span> <span class="n">b</span><span class="p">)</span>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/brukerimage.html b/doc/html/_modules/fabio/brukerimage.html
new file mode 100644
index 0000000..2fb3fd2
--- /dev/null
+++ b/doc/html/_modules/fabio/brukerimage.html
@@ -0,0 +1,513 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.brukerimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.brukerimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#coding: utf8</span>
+
+<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">with_statement</span>
+
+<span class="n">__doc__</span> <span class="o">=</span> <span class="s">"""</span>
+
+<span class="s">Authors: Henning O. Sorensen & Erik Knudsen</span>
+<span class="s">         Center for Fundamental Research: Metal Structures in Four Dimensions</span>
+<span class="s">         Risoe National Laboratory</span>
+<span class="s">         Frederiksborgvej 399</span>
+<span class="s">         DK-4000 Roskilde</span>
+<span class="s">         email:erik.knudsen at risoe.dk</span>
+
+<span class="s">Based on: openbruker,readbruker, readbrukerheader functions in the opendata</span>
+<span class="s">         module of ImageD11 written by Jon Wright, ESRF, Grenoble, France</span>
+
+<span class="s">Writer by Jérôme Kieffer, ESRF, Grenoble, France</span>
+
+<span class="s">"""</span>
+<span class="n">__authors__</span> <span class="o">=</span> <span class="p">[</span><span class="s">"Henning O. Sorensen"</span> <span class="p">,</span> <span class="s">"Erik Knudsen"</span><span class="p">,</span> <span class="s">"Jon Wright"</span><span class="p">,</span> <span class="s">"Jérôme Kieffer"</span><span class="p">]</span>
+<span class="n">__date__</span> <span class="o">=</span> <span class="s">"20130502"</span>
+<span class="n">__status__</span> <span class="o">=</span> <span class="s">"development"</span>
+<span class="n">__copyright__</span> <span class="o">=</span> <span class="s">"2007-2009 Risoe National Laboratory; 2010-2013 ESRF"</span>
+<span class="n">__licence__</span> <span class="o">=</span> <span class="s">"GPL"</span>
+
+<span class="kn">import</span> <span class="nn">numpy</span><span class="o">,</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">sys</span>
+<span class="kn">from</span> <span class="nn">math</span> <span class="kn">import</span> <span class="n">ceil</span>
+<span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">getpass</span><span class="o">,</span> <span class="nn">time</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"brukerimage"</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">from</span> <span class="nn">fabioutils</span> <span class="kn">import</span> <span class="n">pad</span>
+<span class="kn">from</span> <span class="nn">types</span> <span class="kn">import</span> <span class="n">StringTypes</span>
+<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o"><</span> <span class="mi">3</span><span class="p">:</span>
+    <span class="nb">bytes</span> <span class="o">=</span> <span class="nb">str</span>
+
+<div class="viewcode-block" id="brukerimage"><a class="viewcode-back" href="../../api/modules.html#fabio.brukerimage.brukerimage">[docs]</a><span class="k">class</span> <span class="nc">brukerimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Read and eventually write ID11 bruker (eg smart6500) images</span>
+
+<span class="sd">    TODO: int32 -> float32 conversion according to the "linear" keyword.</span>
+<span class="sd">    This is done and works but we need to check with other program that we</span>
+<span class="sd">    are appliing the right formula and not the reciprocal one.</span>
+<span class="sd">    </span>
+<span class="sd">    """</span>
+    <span class="n">bpp_to_numpy</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">:</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">,</span>
+                    <span class="mi">2</span><span class="p">:</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span>
+                    <span class="mi">4</span><span class="p">:</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">}</span>
+
+    <span class="c"># needed if you feel like writing - see ImageD11/scripts/edf2bruker.py</span>
+
+    <span class="n">SPACER</span> <span class="o">=</span> <span class="s">"</span><span class="se">\x1a\x04</span><span class="s">"</span> <span class="c">#this is CTRL-Z CTRL-D</span>
+    <span class="n">HEADERS_KEYS</span> <span class="o">=</span> <span class="p">[</span><span class="s">"FORMAT"</span><span class="p">,</span>    <span class="c">#Frame format. Always “86” or "100" for Bruker-format frames.</span>
+                   <span class="s">"VERSION"</span><span class="p">,</span>   <span class="c">#Header version #, such as: 1 to 17 (6 is obsolete).</span>
+                   <span class="s">"HDRBLKS"</span><span class="p">,</span>   <span class="c">#Header size in 512-byte blocks, such as 10 or 15. Determines where the image block begins.</span>
+                   <span class="s">"TYPE"</span><span class="p">,</span>      <span class="c">#String indicating kind of data in the frame. Used to determine if a spatial correction table was applied to the frame imag</span>
+                   <span class="s">"SITE"</span><span class="p">,</span>      <span class="c">#Site name</span>
+                   <span class="s">"MODEL"</span><span class="p">,</span>     <span class="c">#Diffractometer model</span>
+                   <span class="s">"USER"</span><span class="p">,</span>      <span class="c">#Username</span>
+                   <span class="s">"SAMPLE"</span><span class="p">,</span>    <span class="c">#Sample ID,</span>
+                   <span class="s">"SETNAME"</span><span class="p">,</span>   <span class="c">#Basic data set name</span>
+                   <span class="s">"RUN"</span><span class="p">,</span>       <span class="c">#Run number within the data set, usually starts at 0, but 1 for APEX2.</span>
+                   <span class="s">"SAMPNUM"</span><span class="p">,</span>   <span class="c">#Specimen number within the data set</span>
+                   <span class="s">"TITLE"</span><span class="p">,</span>     <span class="c">#User comments (8 lines)</span>
+                   <span class="s">"NCOUNTS"</span><span class="p">,</span>   <span class="c">#Total frame counts</span>
+                   <span class="s">"NOVERFL"</span><span class="p">,</span>   <span class="c">#Number of overflows when compression frame.</span>
+                   <span class="s">"MINIMUM"</span><span class="p">,</span>   <span class="c">#Minimum counts in a pixel (uncompressed value)</span>
+                   <span class="s">"MAXIMUM"</span><span class="p">,</span>   <span class="c">#Maximum counts in a pixel (uncompressed value)</span>
+                   <span class="s">"NONTIME"</span><span class="p">,</span>   <span class="c">#Number of on-time events</span>
+                   <span class="s">"NLATE"</span><span class="p">,</span>     <span class="c">#Number of late events. Always zero for many detectors.</span>
+                   <span class="s">"FILENAM"</span><span class="p">,</span>   <span class="c">#(Original) frame filename</span>
+                   <span class="s">"CREATED"</span><span class="p">,</span>   <span class="c">#Date and time of creation</span>
+                   <span class="s">"CUMULAT"</span><span class="p">,</span>   <span class="c">#Accumulated frame exposure time in seconds</span>
+                   <span class="s">"ELAPSDR"</span><span class="p">,</span>   <span class="c">#Requested time for last exposure in seconds</span>
+                   <span class="s">"ELAPSDA"</span><span class="p">,</span>   <span class="c">#Actual time for last exposure in seconds.</span>
+                   <span class="s">"OSCILLA"</span><span class="p">,</span>   <span class="c">#Nonzero if acquired by oscillation</span>
+                   <span class="s">"NSTEPS"</span><span class="p">,</span>    <span class="c">#steps or oscillations in this frame</span>
+                   <span class="s">"RANGE"</span><span class="p">,</span>     <span class="c">#Scan range in decimal degrees (unsigned)</span>
+                   <span class="s">"START"</span><span class="p">,</span>     <span class="c">#Starting scan angle value, decimal degrees</span>
+                   <span class="s">"INCREME"</span><span class="p">,</span>   <span class="c">#Scan angle increment between frames (signed)</span>
+                   <span class="s">"NUMBER"</span><span class="p">,</span>    <span class="c">#Sequence number of this frame in series, usually starts at 0, but 1 for APEX2</span>
+                   <span class="s">"NFRAMES"</span><span class="p">,</span>   <span class="c">#Total number of frames in the series</span>
+                   <span class="s">"ANGLES"</span><span class="p">,</span>    <span class="c">#Diffractometer angles in Eulerian space ( 2T, OM, PH, CH).</span>
+                   <span class="s">"NOVER64"</span><span class="p">,</span>   <span class="c">#Number of pixels > 64K (actually LinearThreshold value)</span>
+                   <span class="s">"NPIXELB"</span><span class="p">,</span>   <span class="c">#Number of bytes/pixel, such as 1, 2, or 4.</span>
+                   <span class="s">"NROWS"</span><span class="p">,</span>     <span class="c">#Number of rasters in frame, such as 512, 1024, 2048, or 4096</span>
+                   <span class="s">"NCOLS"</span><span class="p">,</span>     <span class="c">#Number of pixels/raster, such as 512, 1024, 2048 or 4096</span>
+                   <span class="s">"WORDORD"</span><span class="p">,</span>   <span class="c">#Order of bytes in word (0=LSB first)</span>
+                   <span class="s">"LONGORD"</span><span class="p">,</span>   <span class="c">#Order of words in a longword (0=LSW first)</span>
+                   <span class="s">"TARGET"</span> <span class="p">,</span>   <span class="c">#X-ray target material: Cu, Mo, Ag, Fe, Cr, Co, Ni, W, Mn, or other.</span>
+                   <span class="s">"SOURCEK"</span><span class="p">,</span>   <span class="c">#X-ray source voltage in kV</span>
+                   <span class="s">"SOURCEM"</span><span class="p">,</span>   <span class="c">#X-ray source current in mA</span>
+                   <span class="s">"FILTER"</span> <span class="p">,</span>   <span class="c">#Filter/monochromator setting: Such as: Parallel, graphite, Ni Filter, C Filter, Zr Filter,Cross coupled Goebel Mirrors ...</span>
+                   <span class="s">"CELL"</span> <span class="p">,</span>     <span class="c">#Unit cell A,B,C,ALPHA,BETA,GAMMA</span>
+                   <span class="s">"MATRIX"</span> <span class="p">,</span>   <span class="c">#9R Orientation matrix (P3 conventions)</span>
+                   <span class="s">"LOWTEMP"</span><span class="p">,</span>   <span class="c">#Low temp flag.</span>
+                   <span class="s">"TEMP"</span><span class="p">,</span>      <span class="c">#set temperature</span>
+                   <span class="s">"HITEMP"</span><span class="p">,</span>    <span class="c">#Acquired at high temperature</span>
+                   <span class="s">"ZOOM"</span> <span class="p">,</span>     <span class="c">#Zoom: Xc, Yc, Mag used for HI-STAR detectors: 0.5 0.5 1.0</span>
+                   <span class="s">"CENTER"</span> <span class="p">,</span>   <span class="c">#X, Y of direct beam at 2-theta = 0. These are raw center for raw frames and unwarped center for unwarped frames.</span>
+                   <span class="s">"DISTANC"</span><span class="p">,</span>   <span class="c">#Sample-detector distance, cm (see CmToGrid value) Adds: Sample-detector grid/phosphor distance, cm</span>
+                   <span class="s">"TRAILER"</span><span class="p">,</span>   <span class="c">#Byte pointer to trailer info</span>
+                   <span class="s">"COMPRES"</span><span class="p">,</span>   <span class="c">#Compression scheme ID, if any. Such as: NONE, LINEAR (Linear scale, offset for pixel values, typically 1.0, 0.0).</span>
+                   <span class="s">"LINEAR"</span><span class="p">,</span>    <span class="c">#Linear scale (1.0 0.0 for no change; 0.1 0 for divided by 10...)</span>
+                   <span class="s">"PHD"</span> <span class="p">,</span>      <span class="c"># Discriminator: Pulse height settings. X100 and X1000 only. Stores CCD phosphor efficiency (first field).</span>
+                   <span class="s">"PREAMP"</span> <span class="p">,</span>   <span class="c">#Preamp gain setting. X100 and X1000 only. SMART: Stores Roper CCD gain table index value.</span>
+                   <span class="s">"CORRECT"</span><span class="p">,</span>   <span class="c">#Flood table correction filename, UNKNOWN or LINEAR.</span>
+                   <span class="s">"WARPFIL"</span><span class="p">,</span>   <span class="c">#Brass plate correction filename, UNKNOWN or LINEAR. Note: A filename here does NOT mean that spatial correction was performed. See TYPE and string “UNWARP” to determine that.</span>
+                   <span class="s">"WAVELEN"</span><span class="p">,</span>   <span class="c">#Wavelengths (average, a1, a2)</span>
+                   <span class="s">"MAXXY"</span><span class="p">,</span>     <span class="c">#X,Y pixel # of maximum counts (from lower corner of 0,0)</span>
+                   <span class="s">"AXIS"</span><span class="p">,</span>      <span class="c">#Scan axis ib Eulerian space (1-4 for 2-theta, omega, phi, chi) (0 =none, 2 = default).</span>
+                   <span class="s">"ENDING"</span> <span class="p">,</span>   <span class="c">#Actual goniometer angles at end of frame in Eulerian space.</span>
+                   <span class="s">"DETPAR"</span> <span class="p">,</span>   <span class="c">#Detector position corrections (dX,dY,dDist,Pitch,Roll,Yaw)</span>
+                   <span class="s">"LUT"</span><span class="p">,</span>       <span class="c">#Recommended display lookup table</span>
+                   <span class="s">"DISPLIM"</span><span class="p">,</span>   <span class="c">#Recommended display limits</span>
+                   <span class="s">"PROGRAM"</span><span class="p">,</span>   <span class="c">#Name and version of program writing frame, such as:</span>
+                   <span class="s">"ROTATE"</span><span class="p">,</span>    <span class="c">#Non zero if acquired by rotation of phi during scan (or oscilate)</span>
+                   <span class="s">"BITMASK"</span><span class="p">,</span>   <span class="c">#File name of active pixel mask associated with this frame or $NULL</span>
+                   <span class="s">"OCTMASK"</span><span class="p">,</span>   <span class="c">#Octagon mask parameters to use if BITMASK=$null. Min X, Min X+Y, Min Y, Max X-Y, Max X, Max X+Y, Max Y, Max Y-X.</span>
+                   <span class="s">"ESDCELL"</span><span class="p">,</span>   <span class="c">#Unit cell parameter standard deviations</span>
+                   <span class="s">"DETTYPE"</span><span class="p">,</span>   <span class="c">#Detector or CCD chip type (as displayed on CEU). Default is MULTIWIRE but UNKNOWN is advised, can contain PIXPERCM: CMTOGRID:</span>
+                   <span class="s">"NEXP"</span><span class="p">,</span>      <span class="c">#Number of exposures: 1=single, 2=correlated sum.32 for most ccds, and 64 for 2K ccds.</span>
+                   <span class="s">"CCDPARM"</span><span class="p">,</span>   <span class="c">#CCD parameters: readnoise, e/ADU, e/photon, bias, full scale</span>
+                   <span class="s">"BIS"</span><span class="p">,</span>       <span class="c">#Potential full linear scale if rescan and attenuator used.</span>
+                   <span class="s">"CHEM"</span><span class="p">,</span>      <span class="c">#Chemical formula in CIFTAB string, such as “?”</span>
+                   <span class="s">"MORPH"</span><span class="p">,</span>     <span class="c">#Crystal morphology in CIFTAB string, such as “?”</span>
+                   <span class="s">"CCOLOR"</span><span class="p">,</span>    <span class="c">#Crystal color in CIFTAB string, such as “?”</span>
+                   <span class="s">"CSIZE"</span><span class="p">,</span>     <span class="c">#Crystal dimensions (3 ea) in CIFTAB string, such as “?”</span>
+                   <span class="s">"DNSMET"</span><span class="p">,</span>     <span class="c">#Density measurement method in CIFTAB string, such as “?”</span>
+                   <span class="s">"DARK"</span><span class="p">,</span>       <span class="c">#Name of dark current correction or NONE.</span>
+                   <span class="s">"AUTORNG"</span><span class="p">,</span>   <span class="c">#Auto-ranging: gain, high-speed time, scale, offset, full linear scale Note: If full linear scale is zero, then CCDPARM full scale is the full linear scale (BIS frames).</span>
+                   <span class="s">"ZEROADJ"</span><span class="p">,</span>   <span class="c">#Goniometer zero corrections (refined in least squares)</span>
+                   <span class="s">"XTRANS"</span><span class="p">,</span>    <span class="c">#Crystal XYZ translations (refined in least squares)</span>
+                   <span class="s">"HKL&XY"</span><span class="p">,</span>    <span class="c">#HKL and pixel XY for reciprocal space scan. GADDS only.</span>
+                   <span class="s">"AXES2"</span><span class="p">,</span>     <span class="c">#Diffractometer setting linear axes (4 ea). (X, Y, Z, Aux)</span>
+                   <span class="s">"ENDING2"</span><span class="p">,</span>   <span class="c">#Actual goniometer linear axes @ end of frame. (X, Y, Z, Aux)</span>
+                   <span class="s">"FILTER2"</span><span class="p">,</span>   <span class="c">#Monochromator 2-theta angle and monochromator roll angle. v15: Adds beam tilt angle and attenuator factor.</span>
+                   <span class="s">"LEPTOS"</span><span class="p">,</span>    <span class="c"># String for LEPTOS.</span>
+                   <span class="s">"CFR"</span><span class="p">,</span>       <span class="c">#Only in 21CFRPart11 mode, writes the checksum for header and image (2str).]</span>
+           <span class="p">]</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">data</span><span class="o">=</span><span class="bp">None</span> <span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">header</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__bpp_file</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">version</span> <span class="o">=</span> <span class="mi">86</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__headerstring__</span> <span class="o">=</span> <span class="s">""</span>
+
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        The bruker format uses 80 char lines in key : value format</span>
+<span class="sd">        In the first 512*5 bytes of the header there should be a</span>
+<span class="sd">        HDRBLKS key, whose value denotes how many 512 byte blocks</span>
+<span class="sd">        are in the total header. The header is always n*5*512 bytes,</span>
+<span class="sd">        otherwise it wont contain whole key: value pairs</span>
+<span class="sd">        """</span>
+        <span class="n">line</span> <span class="o">=</span> <span class="mi">80</span>
+        <span class="n">blocksize</span> <span class="o">=</span> <span class="mi">512</span>
+        <span class="n">nhdrblks</span> <span class="o">=</span> <span class="mi">5</span> <span class="c">#by default we always read 5 blocks of 512</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__headerstring__</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">blocksize</span> <span class="o">*</span> <span class="n">nhdrblks</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">nhdrblks</span> <span class="o">*</span> <span class="n">blocksize</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__headerstring__</span><span class="p">[</span><span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">+</span> <span class="n">line</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">":"</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span> [...]
+                <span class="n">key</span><span class="p">,</span> <span class="n">val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__headerstring__</span><span class="p">[</span><span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">+</span> <span class="n">line</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">":"</s [...]
+                <span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>         <span class="c"># remove the whitespace (why?)</span>
+                <span class="n">val</span> <span class="o">=</span> <span class="n">val</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+                <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+                    <span class="c"># append lines if key already there</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">linesep</span> <span class="o">+</span> <span [...]
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+        <span class="c"># we must have read this in the first 5*512 bytes.</span>
+        <span class="n">nhdrblks</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'HDRBLKS'</span><span class="p">])</span>
+        <span class="c"># Now read in the rest of the header blocks, appending</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__headerstring__</span> <span class="o">+=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">blocksize</span> <span class="o">*</span> <span class="p">(</span><span class="n">nhdrblks</span> <span class="o">-</span> <span class="mi">5</span><span class="p">))</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span> <span class="o">*</span> <span class="n">blocksize</span><span class="p">,</span> <span class="n">nhdrblks</span> <span class="o">*</span> <span class="n">blocksize</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__headerstring__</span><span class="p">[</span><span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">+</span> <span class="n">line</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">":"</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span> [...]
+                <span class="n">key</span><span class="p">,</span> <span class="n">val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__headerstring__</span><span class="p">[</span><span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">+</span> <span class="n">line</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">":"</s [...]
+                <span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+                <span class="n">val</span> <span class="o">=</span> <span class="n">val</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+                <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">linesep</span> <span class="o">+</span> <span [...]
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+        <span class="c"># make a (new) header item called "datastart"</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'datastart'</span><span class="p">]</span> <span class="o">=</span> <span class="n">blocksize</span> <span class="o">*</span> <span class="n">nhdrblks</span>
+        <span class="c">#set the image dimensions</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NROWS'</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NCOLS'</span><span class="p">])</span>
+
+<div class="viewcode-block" id="brukerimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.brukerimage.brukerimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in and unpack the pixels (including overflow table</span>
+<span class="sd">        """</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span>
+
+        <span class="n">rows</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span>
+        <span class="n">cols</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span>
+
+        <span class="k">try</span><span class="p">:</span>
+            <span class="c"># you had to read the Bruker docs to know this!</span>
+            <span class="n">npixelb</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NPIXELB'</span><span class="p">])</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
+            <span class="n">errmsg</span> <span class="o">=</span> <span class="s">"length "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NPIXELB'</span><span class="p">]))</span> <span class="o">+</span> <span class="s">"</span><span class="se">\n</span><sp [...]
+            <span class="k">for</span> <span class="n">byt</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NPIXELB'</span><span class="p">]:</span>
+                <span class="n">errmsg</span> <span class="o">+=</span> <span class="s">"char: "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">byt</span><span class="p">)</span> <span class="o">+</span> <span class="s">" "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">ord</span><span class="p">(</span><span class="n">byt</span><span class="p">))</span> <span clas [...]
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">errmsg</span><span class="p">)</span>
+            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="n">errmsg</span><span class="p">)</span>
+
+        <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">rows</span> <span class="o">*</span> <span class="n">cols</span> <span class="o">*</span> <span class="n">npixelb</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><spa [...]
+
+        <span class="c">#handle overflows</span>
+        <span class="n">nov</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'NOVERFL'</span><span class="p">])</span>
+        <span class="k">if</span> <span class="n">nov</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>   <span class="c"># Read in the overflows</span>
+            <span class="c"># need at least int32 sized data I guess - can reach 2^21</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)</span>
+            <span class="c"># 16 character overflows:</span>
+            <span class="c">#      9 characters of intensity</span>
+            <span class="c">#      7 character position</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nov</span><span class="p">):</span>
+                <span class="n">ovfl</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">16</span><span class="p">)</span>
+                <span class="n">intensity</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">ovfl</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span> <span class="mi">9</span><span class="p">])</span>
+                <span class="n">position</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">ovfl</span><span class="p">[</span><span class="mi">9</span><span class="p">:</span> <span class="mi">16</span><span class="p">])</span>
+                <span class="n">data</span><span class="p">[</span><span class="n">position</span><span class="p">]</span> <span class="o">=</span> <span class="n">intensity</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="c"># Handle Float images ...</span>
+        <span class="k">if</span> <span class="s">"LINEAR"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">slope</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"LINEAR"</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+                <span class="n">slope</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">slope</span><span class="p">)</span>
+                <span class="n">offset</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">offset</span><span class="p">)</span>
+            <span class="k">except</span> <span class="n">Except</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Error in converting to float data with linear parameter: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"LINEAR"</span><span class="p">])</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">slope</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">and</span> <span class="n">offset</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="c">#TODO: check that the formula is OK, not reverted.</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"performing correction with slope=</span><span class="si">%s</span><span class="s">, offset=</span><span class="si">%s</span><span class="s"> (LINEAR=</span><span class="si">%s</span><span class="s">)"</span> <span class="o">%</span> <span class="p">(</span><span class="n">slope</span><span class="p">,</span> <span class="n">offset</span [...]
+                    <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="p">(</span><span class="n">data</span> <span class="o">*</span> <span class="n">slope</span> <span class="o">+</span> <span class="n">offset</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">return</span> <span class="bp">self</span>
+
+</div>
+<div class="viewcode-block" id="brukerimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.brukerimage.brukerimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Write a bruker image </span>
+
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">numpy</span><span class="o">.</span><span class="n">issubdtype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">float</span><span class="p">):</span>
+            <span class="k">if</span> <span class="s">"LINEAR"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">slope</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"LINEAR"</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+                    <span class="n">slope</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">slope</span><span class="p">)</span>
+                    <span class="n">offset</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">offset</span><span class="p">)</span>
+                <span class="k">except</span> <span class="n">Except</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Error in converting to float data with linear parameter: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"LINEAR"</span><span class="p">])</span>
+                    <span class="n">slope</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="mf">1.0</span><span class="p">,</span> <span class="mf">0.0</span>
+
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">min</span><span class="p">()</span>
+                <span class="n">max_data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">max</span><span class="p">()</span>
+                <span class="n">max_range</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">**</span> <span class="mi">24</span> <span class="o">-</span> <span class="mi">1</span> <span class="c">#similar to the mantissa of a float32</span>
+                <span class="k">if</span> <span class="n">max_data</span> <span class="o">></span> <span class="n">offset</span><span class="p">:</span>
+                    <span class="n">slope</span> <span class="o">=</span> <span class="p">(</span><span class="n">max_data</span> <span class="o">-</span> <span class="n">offset</span><span class="p">)</span> <span class="o">/</span> <span class="nb">float</span><span class="p">(</span><span class="n">max_range</span><span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">slope</span> <span class="o">=</span> <span class="mf">1.0</span>
+            <span class="n">tmp_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">round</span><span class="p">(((</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">-</span> <span class="n">offset</span><span class="p">)</span> <span class="o">/</span> <span class="n">slope</span><span class="p">))</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><sp [...]
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"LINEAR"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">slope</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
+
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">tmp_data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span>
+
+        <span class="n">bpp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">calc_bpp</span><span class="p">(</span><span class="n">tmp_data</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">basic_translate</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+        <span class="n">limit</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">**</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="n">bpp</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="n">tmp_data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bpp_to_numpy</span><span class="p">[</span><span class="n">bpp</span><span class="p">])</span>
+        <span class="n">reset</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">tmp_data</span> <span class="o">>=</span> <span class="n">limit</span><span class="p">)</span>
+        <span class="n">data</span><span class="p">[</span><span class="n">reset</span><span class="p">]</span> <span class="o">=</span> <span class="n">limit</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">newbyteorder</span><span class="p">(</span><span class="s">"<"</span><span class="p">)</span> <span class="c">#Bruker enforces little endian</span>
+        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"wb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">bruker</span><span class="p">:</span>
+            <span class="n">bruker</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">gen_header</span><span class="p">())</span>
+            <span class="n">bruker</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+            <span class="n">bruker</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">gen_overflow</span><span class="p">())</span>
+
+
+</div>
+<div class="viewcode-block" id="brukerimage.calc_bpp"><a class="viewcode-back" href="../../api/modules.html#fabio.brukerimage.brukerimage.calc_bpp">[docs]</a>    <span class="k">def</span> <span class="nf">calc_bpp</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">max_entry</span><span class="o">=</span><span class="mi">4096</span><span  [...]
+        <span class="sd">"""</span>
+<span class="sd">        Calculate the number of byte per pixel to get an optimal overflow table. </span>
+<span class="sd">        </span>
+<span class="sd">        @return: byte per pixel </span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__bpp_file</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">]:</span>
+                <span class="n">overflown</span> <span class="o">=</span> <span class="p">(</span><span class="n">data</span> <span class="o">>=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">**</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="n">i</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">))</span>
+                <span class="k">if</span> <span class="n">overflown</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span> <span class="o"><</span> <span class="n">max_entry</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">__bpp_file</span> <span class="o">=</span> <span class="n">i</span>
+                    <span class="k">break</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__bpp_file</span> <span class="o">=</span> <span class="mi">4</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__bpp_file</span>
+</div>
+<div class="viewcode-block" id="brukerimage.gen_header"><a class="viewcode-back" href="../../api/modules.html#fabio.brukerimage.brukerimage.gen_header">[docs]</a>    <span class="k">def</span> <span class="nf">gen_header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Generate headers (with some magic and guesses)</span>
+<span class="sd">        @param format can be 86 or 100</span>
+<span class="sd">        """</span>
+        <span class="n">headers</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">HEADERS_KEYS</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+                <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+                <span class="n">line</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">7</span><span class="p">)</span> <span class="o">+</span> <span class="s">":"</span>
+                <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">in</span> <span class="n">StringTypes</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">linesep</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
+                        <span class="n">lines</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">linesep</span><span class="p">)</span>
+                        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="p">:</span>
+                            <span class="n">headers</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">line</span> <span class="o">+</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">i</span><span class="p">))</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span> <span class="s">" "</span><span class="p">))</span>
+                            <span class="n">line</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">7</span><span class="p">)</span> <span class="o">+</span> <span class="s">":"</span>
+                        <span class="n">line</span> <span class="o">+=</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">lines</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+                    <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o"><</span> <span class="mi">72</span><span class="p">:</span>
+                        <span class="n">line</span> <span class="o">+=</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">//</span> <span class="mi">72</span><span class="p">):</span>
+                            <span class="n">headers</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">line</span> <span class="o">+</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">value</span><span class="p">[</span><span class="mi">72</span> <span class="o">*</span> <span class="n">i</span><span class="p">:</span><span class="mi">72</span> <span class="o">*</span> <span class="p">(</span><span class="n">i</spa [...]
+                            <span class="n">line</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">7</span><span class="p">)</span> <span class="o">+</span> <span class="s">":"</span>
+                        <span class="n">line</span> <span class="o">+=</span> <span class="n">value</span><span class="p">[</span><span class="mi">72</span> <span class="o">*</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):]</span>
+                <span class="k">elif</span> <span class="s">"__len__"</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
+                    <span class="n">f</span> <span class="o">=</span> <span class="s">"\%.</span><span class="si">%i</span><span class="s">s"</span> <span class="o">%</span> <span class="mi">72</span> <span class="o">//</span> <span class="nb">len</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
+                    <span class="n">line</span> <span class="o">+=</span> <span class="s">" "</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">f</span> <span class="o">%</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">line</span> <span class="o">+=</span> <span class="nb">bytes</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+                <span class="n">headers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span> <span class="s">" "</span><span class="p">))</span>
+
+        <span class="n">header</span> <span class="o">=</span> <span class="s">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">headers</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">header</span><span class="p">)</span> <span class="o">></span> <span class="mi">512</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"HDRBLKS"</span><span class="p">]:</span>
+            <span class="n">tmp</span> <span class="o">=</span> <span class="n">ceil</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">header</span><span class="p">)</span> <span class="o">/</span> <span class="mf">512.0</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"HDRBLKS"</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">ceil</span><span class="p">(</span><span class="n">tmp</span> <span class="o">/</span> <span class="mf">5.0</span><span class="p">)</span> <span class="o">*</span> <span class="mf">5.0</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">headers</span><span class="p">)):</span>
+                <span class="k">if</span> <span class="n">headers</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"HDRBLKS"</span><span class="p">):</span>
+                    <span class="n">headers</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">headers</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s">"HDRBLKS:</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class=" [...]
+        <span class="n">res</span> <span class="o">=</span> <span class="n">pad</span><span class="p">(</span><span class="s">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">headers</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">SPACER</span> <span class="o">+</span> <span class="s">"."</span><span class="o">*</span><span class="mi">78</span><span class="p">,</span [...]
+        <span class="k">return</span> <span class="n">res</span>
+</div>
+<div class="viewcode-block" id="brukerimage.gen_overflow"><a class="viewcode-back" href="../../api/modules.html#fabio.brukerimage.brukerimage.gen_overflow">[docs]</a>    <span class="k">def</span> <span class="nf">gen_overflow</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Generate an overflow table  </span>
+<span class="sd">        """</span>
+        <span class="n">limit</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">**</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">calc_bpp</span><span class="p">())</span> <span class="o">-</span> <span class="mi">1</span>
+        <span class="n">flat</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ravel</span><span class="p">()</span>                     <span class="c">#flat memory view</span>
+        <span class="n">overflow_pos</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">flat</span> <span class="o">>=</span> <span class="n">limit</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="c">#list of indexes</span>
+        <span class="n">overflow_val</span> <span class="o">=</span> <span class="n">flat</span><span class="p">[</span><span class="n">overflow_pos</span><span class="p">]</span>
+        <span class="n">overflow</span> <span class="o">=</span> <span class="s">""</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s">"</span><span class="si">%09i%07i</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="n">pos</span><span class="p">)</span> <span class="k">for</span> <span class="n">pos</span><span class="p">,</sp [...]
+        <span class="k">return</span> <span class="n">pad</span><span class="p">(</span><span class="n">overflow</span><span class="p">,</span> <span class="s">"."</span><span class="p">,</span> <span class="mi">512</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="brukerimage.basic_translate"><a class="viewcode-back" href="../../api/modules.html#fabio.brukerimage.brukerimage.basic_translate">[docs]</a>    <span class="k">def</span> <span class="nf">basic_translate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Does some basic population of the headers so that the writing is possible </span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"FORMAT"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"FORMAT"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"86"</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"HDRBLKS"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"HDRBLKS"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">5</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"TYPE"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"TYPE"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"UNWARPED"</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"USER"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"USER"</span><span class="p">]</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getuser</span><span class="p">()</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"FILENAM"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"FILENAM"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">fname</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"CREATED"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"CREATED"</span><span class="p">]</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">ctime</span><span class="p">()</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"NOVERFL"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"NOVERFL"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"0"</span>
+<span class="c">#        if not "NPIXELB" in self.header:</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"NPIXELB"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">calc_bpp</span><span class="p">()</span>
+        <span class="c">#if not "NROWS" in self.header:</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"NROWS"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="c">#if not "NCOLS" in self.header:</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"NCOLS"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"WORDORD"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"WORDORD"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"0"</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"LONGORD"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"LONGORD"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"0"</span>
+
+</div></div>
+<div class="viewcode-block" id="test"><a class="viewcode-back" href="../../api/modules.html#fabio.brukerimage.test">[docs]</a><span class="k">def</span> <span class="nf">test</span><span class="p">():</span>
+    <span class="sd">""" a testcase """</span>
+    <span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">time</span>
+    <span class="n">img</span> <span class="o">=</span> <span class="n">brukerimage</span><span class="p">()</span>
+    <span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">clock</span><span class="p">()</span>
+    <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
+        <span class="n">img</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">img</span><span class="o">.</span><span class="n">toPIL16</span><span class="p">()</span>
+        <span class="n">img</span><span class="o">.</span><span class="n">rebin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
+        <span class="k">print</span><span class="p">(</span><span class="n">filename</span> <span class="o">+</span> <span class="p">(</span><span class="s">": max=</span><span class="si">%d</span><span class="s">, min=</span><span class="si">%d</span><span class="s">, mean=</span><span class="si">%.2e</span><span class="s">, stddev=</span><span class="si">%.2e</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> <span class="p">(</span>
+            <span class="n">img</span><span class="o">.</span><span class="n">getmax</span><span class="p">(),</span> <span class="n">img</span><span class="o">.</span><span class="n">getmin</span><span class="p">(),</span> <span class="n">img</span><span class="o">.</span><span class="n">getmean</span><span class="p">(),</span> <span class="n">img</span><span class="o">.</span><span class="n">getstddev</span><span class="p">()))</span>
+        <span class="k">print</span><span class="p">(</span><span class="s">'integrated intensity (</span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s">) =</span><span class="si">%.3f</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span>
+            <span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="n">img</span><span class="o">.</span><span class="n">integrate_area</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class [...]
+    <span class="n">end</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">clock</span><span class="p">()</span>
+    <span class="k">print</span> <span class="p">(</span><span class="n">end</span> <span class="o">-</span> <span class="n">start</span><span class="p">)</span>
+
+
+</div>
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span>
+    <span class="n">test</span><span class="p">()</span>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/cbfimage.html b/doc/html/_modules/fabio/cbfimage.html
new file mode 100644
index 0000000..187b683
--- /dev/null
+++ b/doc/html/_modules/fabio/cbfimage.html
@@ -0,0 +1,852 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.cbfimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.cbfimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c"># coding: utf8</span>
+<span class="sd">"""</span>
+<span class="sd">Authors: Jérôme Kieffer, ESRF</span>
+<span class="sd">         email:jerome.kieffer at esrf.fr</span>
+
+<span class="sd">Cif Binary Files images are 2D images written by the Pilatus detector and others.</span>
+<span class="sd">They use a modified (simplified) byte-offset algorithm.</span>
+
+<span class="sd">CIF is a library for manipulating Crystallographic information files and tries</span>
+<span class="sd">to conform to the specification of the IUCR</span>
+<span class="sd">"""</span>
+<span class="n">__author__</span> <span class="o">=</span> <span class="s">"Jérôme Kieffer"</span>
+<span class="n">__contact__</span> <span class="o">=</span> <span class="s">"jerome.kieffer at esrf.eu"</span>
+<span class="n">__license__</span> <span class="o">=</span> <span class="s">"GPLv3+"</span>
+<span class="n">__copyright__</span> <span class="o">=</span> <span class="s">"European Synchrotron Radiation Facility, Grenoble, France"</span>
+<span class="n">__version__</span> <span class="o">=</span> <span class="p">[</span><span class="s">"Generated by CIF.py: Jan 2005 - April 2012"</span><span class="p">,</span>
+              <span class="s">"Written by Jerome Kieffer: Jerome.Kieffer at esrf.eu"</span><span class="p">,</span>
+              <span class="s">"On-line data analysis / ISDD "</span><span class="p">,</span> <span class="s">"ESRF Grenoble (France)"</span><span class="p">]</span>
+
+
+<span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"cbfimage"</span><span class="p">)</span>
+<span class="kn">import</span> <span class="nn">numpy</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">from</span> <span class="nn">compression</span> <span class="kn">import</span> <span class="n">decByteOffet_numpy</span><span class="p">,</span> <span class="n">md5sum</span><span class="p">,</span> <span class="n">compByteOffet_numpy</span>
+<span class="c">#import time</span>
+
+<span class="n">DATA_TYPES</span> <span class="o">=</span> <span class="p">{</span> <span class="s">"signed 8-bit integer"</span>   <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int8</span><span class="p">,</span>
+               <span class="s">"signed 16-bit integer"</span>  <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int16</span><span class="p">,</span>
+               <span class="s">"signed 32-bit integer"</span>  <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span>
+               <span class="s">"signed 64-bit integer"</span>  <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int64</span>
+                <span class="p">}</span>
+
+<span class="n">MINIMUM_KEYS</span> <span class="o">=</span> <span class="p">[</span><span class="s">"X-Binary-Size-Fastest-Dimension"</span><span class="p">,</span>
+                <span class="s">'ByteOrder'</span><span class="p">,</span>
+                <span class="s">'Data type'</span><span class="p">,</span>
+                <span class="s">'X dimension'</span><span class="p">,</span>
+                <span class="s">'Y dimension'</span><span class="p">,</span>
+                <span class="s">'Number of readouts'</span><span class="p">]</span>
+
+
+<span class="n">STARTER</span> <span class="o">=</span> <span class="s">"</span><span class="se">\x0c\x1a\x04\xd5</span><span class="s">"</span>
+<span class="n">PADDING</span> <span class="o">=</span> <span class="mi">512</span>
+
+<div class="viewcode-block" id="cbfimage"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.cbfimage">[docs]</a><span class="k">class</span> <span class="nc">cbfimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Read the Cif Binary File data format</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">data</span><span class="o">=</span><span class="bp">None</span> <span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">fname</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Constructor of the class CIF Binary File reader.</span>
+
+<span class="sd">        @param _strFilename: the name of the file to open</span>
+<span class="sd">        @type  _strFilename: string</span>
+<span class="sd">        """</span>
+        <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">header</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">cif</span> <span class="o">=</span> <span class="n">CIF</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">fname</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span> <span class="c">#load the file)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="cbfimage.checkData"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.cbfimage.checkData">[docs]</a>    <span class="k">def</span> <span class="nf">checkData</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">None</span>
+        <span class="k">elif</span> <span class="n">numpy</span><span class="o">.</span><span class="n">issubdtype</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
+            <span class="k">return</span> <span class="n">data</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
+
+</div>
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">inStream</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in a header in some CBF format from a string representing binary stuff</span>
+
+<span class="sd">        @param inStream: file containing the Cif Binary part.</span>
+<span class="sd">        @type inStream: opened file.</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="o">.</span><span class="n">loadCIF</span><span class="p">(</span><span class="n">inStream</span><span class="p">,</span> <span class="n">_bKeepComment</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+<span class="c">#        backport contents of the CIF data to the headers</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">key</span> <span class="o">!=</span> <span class="s">"_array_data.data"</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">" </span><span class="se">\"\n\r\t</span> [...]
+
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"_array_data.data"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"cbfimage: CBF file </span><span class="si">%s</span><span class="s"> is corrupt, cannot find data block with '_array_data.data' key"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">fname</span><span class="p">)</span>
+
+        <span class="n">inStream2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="p">[</span><span class="s">"_array_data.data"</span><span class="p">]</span>
+        <span class="n">sep</span> <span class="o">=</span> <span class="s">"</span><span class="se">\r\n</span><span class="s">"</span>
+        <span class="n">iSepPos</span> <span class="o">=</span> <span class="n">inStream2</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">iSepPos</span> <span class="o"><</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">iSepPos</span> <span class="o">></span> <span class="mi">80</span><span class="p">:</span>
+            <span class="n">sep</span> <span class="o">=</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span> <span class="c">#switch back to unix representation</span>
+
+        <span class="n">lines</span> <span class="o">=</span> <span class="n">inStream2</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">oneLine</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">oneLine</span><span class="p">)</span> <span class="o"><</span> <span class="mi">10</span><span class="p">:</span>
+                <span class="k">break</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">key</span><span class="p">,</span> <span class="n">val</span> <span class="o">=</span> <span class="n">oneLine</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">':'</span> <span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+                <span class="n">key</span><span class="p">,</span> <span class="n">val</span> <span class="o">=</span> <span class="n">oneLine</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'='</span> <span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+            <span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">" </span><span class="se">\"\n\r\t</span><span class="s">"</span><span class="p">)</span>
+        <span class="n">missing</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">MINIMUM_KEYS</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">item</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">:</span>
+                <span class="n">missing</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"CBF file misses the keys "</span> <span class="o">+</span> <span class="s">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">missing</span><span class="p">))</span>
+
+
+<div class="viewcode-block" id="cbfimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.cbfimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in header into self.header and</span>
+<span class="sd">            the data   into self.data</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">fname</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="c"># Compute image size</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'X-Binary-Size-Fastest-Dimension'</span><span class="p">])</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'X-Binary-Size-Second-Dimension'</span><span class="p">])</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="ne">IOError</span><span class="p">,</span> <span class="s">"CBF file </span><span class="si">%s</span><span class="s"> is corrupt, no dimensions in it"</span> <span class="o">%</span> <span class="n">fname</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">bytecode</span> <span class="o">=</span> <span class="n">DATA_TYPES</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'X-Binary-Element-Type'</span><span class="p">]]</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+        <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
+            <span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="mi">32</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Defaulting type to int32"</span><span class="p">)</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"conversions"</span><span class="p">]</span> <span class="o">==</span> <span class="s">"x-CBF_BYTE_OFFSET"</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readbinary_byte_offset</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="p">[</span><span class="s">"_array_data.data"</span><span class="p">])</span><span class="o">.</span><span class="n">astype</span><span class="p">(</spa [...]
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="ne">IOError</span><span class="p">,</span> <span class="s">"Compression scheme not yet supported, please contact FABIO development team"</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">type</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+<span class="c">#        # ensure the PIL image is reset</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">return</span> <span class="bp">self</span>
+
+
+</div>
+    <span class="k">def</span> <span class="nf">_readbinary_byte_offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">inStream</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in a binary part of an x-CBF_BYTE_OFFSET compressed image</span>
+
+<span class="sd">        @param inStream: the binary image (without any CIF decorators)</span>
+<span class="sd">        @type inStream: python string.</span>
+<span class="sd">        @return: a linear numpy array without shape and dtype set</span>
+<span class="sd">        @rtype: numpy array</span>
+<span class="sd">        """</span>
+        <span class="n">startPos</span> <span class="o">=</span> <span class="n">inStream</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">STARTER</span><span class="p">)</span> <span class="o">+</span> <span class="mi">4</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="n">inStream</span><span class="p">[</span> <span class="n">startPos</span><span class="p">:</span> <span class="n">startPos</span> <span class="o">+</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"X-Binary-Size"</span><span class="p">])]</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="kn">import</span> <span class="nn">byte_offset</span>
+        <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Error in byte_offset part: Falling back to Numpy implementation"</span><span class="p">)</span>
+            <span class="n">myData</span> <span class="o">=</span> <span class="n">decByteOffet_numpy</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">myData</span> <span class="o">=</span> <span class="n">byte_offset</span><span class="o">.</span><span class="n">analyseCython</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">)</span>
+
+        <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">myData</span><span class="p">)</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span>
+        <span class="k">return</span> <span class="n">myData</span>
+
+
+<div class="viewcode-block" id="cbfimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.cbfimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        write the file in CBF format</span>
+<span class="sd">        @param fname: name of the file</span>
+<span class="sd">        @type: string</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"CBF image contains no data"</span><span class="p">)</span>
+        <span class="n">binary_blob</span> <span class="o">=</span> <span class="n">compByteOffet_numpy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
+<span class="c">#        l = len(binary_blob)</span>
+<span class="c">#        if (l % PADDING) != 0:</span>
+<span class="c">#            rem = PADDING - (l % PADDING)</span>
+<span class="c">#            binary_blob += "\x00" * rem</span>
+        <span class="n">dtype</span> <span class="o">=</span> <span class="s">"Unknown"</span>
+        <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">DATA_TYPES</span><span class="o">.</span><span class="n">iteritems</span><span class="p">():</span>
+            <span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="p">:</span>
+                <span class="n">dtype</span> <span class="o">=</span> <span class="n">key</span>
+        <span class="n">binary_block</span> <span class="o">=</span> <span class="p">[</span>
+                        <span class="s">"--CIF-BINARY-FORMAT-SECTION--"</span><span class="p">,</span>
+                        <span class="s">"Content-Type: application/octet-stream;"</span><span class="p">,</span>
+                        <span class="s">'     conversions="x-CBF_BYTE_OFFSET"'</span><span class="p">,</span>
+                        <span class="s">'Content-Transfer-Encoding: BINARY'</span><span class="p">,</span>
+                        <span class="s">"X-Binary-Size: </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">binary_blob</span><span class="p">)),</span>
+                        <span class="s">"X-Binary-ID: 1"</span><span class="p">,</span>
+                        <span class="s">'X-Binary-Element-Type: "</span><span class="si">%s</span><span class="s">"'</span> <span class="o">%</span> <span class="p">(</span><span class="n">dtype</span><span class="p">),</span>
+                        <span class="s">"X-Binary-Element-Byte-Order: LITTLE_ENDIAN"</span> <span class="p">,</span>
+                        <span class="s">"Content-MD5: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">md5sum</span><span class="p">(</span><span class="n">binary_blob</span><span class="p">),</span>
+                        <span class="s">"X-Binary-Number-of-Elements: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">),</span>
+                        <span class="s">"X-Binary-Size-Fastest-Dimension: </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span>
+                        <span class="s">"X-Binary-Size-Second-Dimension: </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span>
+                        <span class="s">"X-Binary-Size-Padding: </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="mi">1</span><span class="p">,</span>
+                        <span class="s">""</span><span class="p">,</span>
+                        <span class="n">STARTER</span> <span class="o">+</span> <span class="n">binary_blob</span><span class="p">,</span>
+                        <span class="s">""</span><span class="p">,</span>
+                        <span class="s">"--CIF-BINARY-FORMAT-SECTION----"</span>
+                        <span class="p">]</span>
+
+        <span class="k">if</span> <span class="s">"_array_data.header_contents"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">nonCifHeaders</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">nonCifHeaders</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span><span class="o">.</span><span class="n">strip</span><span class="p">()[</span><span class="mi">2</span><span class="p">:]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"_array_data.header_contents"</ [...]
+
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="k">if</span> <span class="p">(</span><span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">key</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"_"</span><span class="p">)</span> <span class="p">:</span>
+                <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cif</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">!=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><s [...]
+                    <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+            <span class="k">elif</span> <span class="n">key</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"X-Binary-"</span><span class="p">):</span>
+                <span class="k">pass</span>
+            <span class="k">elif</span> <span class="n">key</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Content-"</span><span class="p">):</span>
+                <span class="k">pass</span>
+            <span class="k">elif</span> <span class="n">key</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"conversions"</span><span class="p">):</span>
+                <span class="k">pass</span>
+            <span class="k">elif</span> <span class="n">key</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"filename"</span><span class="p">):</span>
+                <span class="k">pass</span>
+            <span class="k">elif</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+                <span class="n">nonCifHeaders</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</sp [...]
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">nonCifHeaders</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="p">[</span><span class="s">"_array_data.header_contents"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"</span><span class="se">\r\n</span><span class="s">"</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s">"# </span><span class="si">%s</span><span class="s">"</span> <span class="o">% [...]
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="p">[</span><span class="s">"_array_data.data"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"</span><span class="se">\r\n</span><span class="s">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">binary_block</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">cif</span><span class="o">.</span><span class="n">saveCIF</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">linesep</span><span class="o">=</span><span class="s">"</span><span class="se">\r\n</span><span class="s">"</span><span class="p">,</span> <span class="n">binary</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+<span class="c">################################################################################</span>
+<span class="c"># CIF class</span>
+<span class="c">################################################################################</span></div></div>
+<div class="viewcode-block" id="CIF"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF">[docs]</a><span class="k">class</span> <span class="nc">CIF</span><span class="p">(</span><span class="nb">dict</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    This is the CIF class, it represents the CIF dictionary;</span>
+<span class="sd">    and as a a python dictionary thus inherits from the dict built in class.</span>
+<span class="sd">    """</span>
+    <span class="n">EOL</span> <span class="o">=</span> <span class="p">[</span><span class="s">"</span><span class="se">\r</span><span class="s">"</span><span class="p">,</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="s">"</span><span class="se">\r\n</span><span class="s">"</span><span class="p">,</span> <span class="s">"</span><span class="se">\n\r</span><span class="s">"</sp [...]
+    <span class="n">BLANK</span> <span class="o">=</span> <span class="p">[</span><span class="s">" "</span><span class="p">,</span> <span class="s">"</span><span class="se">\t</span><span class="s">"</span><span class="p">]</span> <span class="o">+</span> <span class="n">EOL</span>
+    <span class="n">START_COMMENT</span> <span class="o">=</span> <span class="p">[</span><span class="s">"</span><span class="se">\"</span><span class="s">"</span><span class="p">,</span> <span class="s">"</span><span class="se">\'</span><span class="s">"</span><span class="p">]</span>
+    <span class="n">BINARY_MARKER</span> <span class="o">=</span> <span class="s">"--CIF-BINARY-FORMAT-SECTION--"</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">_strFilename</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Constructor of the class.</span>
+
+<span class="sd">        @param _strFilename: the name of the file to open</span>
+<span class="sd">        @type  _strFilename: filename (str) or file object</span>
+<span class="sd">        """</span>
+        <span class="nb">dict</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">if</span> <span class="n">_strFilename</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span> <span class="c">#load the file)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">loadCIF</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">__setitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+        <span class="k">return</span> <span class="nb">dict</span><span class="o">.</span><span class="n">__setitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+
+<div class="viewcode-block" id="CIF.pop"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.pop">[docs]</a>    <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">key</span>  <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+        <span class="k">return</span> <span class="nb">dict</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="CIF.popitem"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.popitem">[docs]</a>    <span class="k">def</span> <span class="nf">popitem</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">key</span>  <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+        <span class="k">return</span> <span class="nb">dict</span><span class="o">.</span><span class="n">popitem</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span>
+
+</div>
+<div class="viewcode-block" id="CIF.loadCIF"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.loadCIF">[docs]</a>    <span class="k">def</span> <span class="nf">loadCIF</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_strFilename</span><span class="p">,</span> <span class="n">_bKeepComment</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
+        <span class="sd">"""Load the CIF file and populates the CIF dictionary into the object</span>
+<span class="sd">        @param _strFilename: the name of the file to open</span>
+<span class="sd">        @type  _strFilename: string</span>
+<span class="sd">        @param _strFilename: the name of the file to open</span>
+<span class="sd">        @type  _strFilename: string</span>
+<span class="sd">        @return: None</span>
+<span class="sd">        """</span>
+
+        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">,</span> <span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="nb">unicode</span><span class="p">)):</span>
+            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">):</span>
+                <span class="n">infile</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"CIF.loadCIF: No such file to open: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">_strFilename</span><span class="p">)</span>
+        <span class="c">#elif isinstance(_strFilename, file, bz2.BZ2File, ):</span>
+        <span class="k">elif</span> <span class="s">"read"</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">):</span>
+            <span class="n">infile</span> <span class="o">=</span> <span class="n">_strFilename</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"CIF.loadCIF: what is </span><span class="si">%s</span><span class="s"> type </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">_strFilename</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">)))</span>
+        <span class="k">if</span> <span class="n">_bKeepComment</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_parseCIF</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_parseCIF</span><span class="p">(</span><span class="n">CIF</span><span class="o">.</span><span class="n">_readCIF</span><span class="p">(</span><span class="n">infile</span><span class="p">))</span></div>
+    <span class="n">readCIF</span> <span class="o">=</span> <span class="n">loadCIF</span>
+
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="CIF.isAscii"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.isAscii">[docs]</a>    <span class="k">def</span> <span class="nf">isAscii</span><span class="p">(</span><span class="n">_strIn</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Check if all characters in a string are ascii,</span>
+
+<span class="sd">        @param _strIn: input string</span>
+<span class="sd">        @type _strIn: python string</span>
+<span class="sd">        @return: boolean</span>
+<span class="sd">        @rtype: boolean</span>
+<span class="sd">        """</span>
+        <span class="n">bIsAcii</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">_strIn</span><span class="p">:</span>
+            <span class="k">if</span> <span class="nb">ord</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="o">></span> <span class="mi">127</span><span class="p">:</span>
+                <span class="n">bIsAcii</span> <span class="o">=</span> <span class="bp">False</span>
+                <span class="k">break</span>
+        <span class="k">return</span> <span class="n">bIsAcii</span>
+
+</div>
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">_readCIF</span><span class="p">(</span><span class="n">_instream</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        - Check if the filename containing the CIF data exists</span>
+<span class="sd">        - read the cif file</span>
+<span class="sd">        - removes the comments</span>
+
+<span class="sd">        @param _instream: the file containing the CIF data</span>
+<span class="sd">        @type _instream: open file in read mode</span>
+<span class="sd">        @return: a string containing the raw data</span>
+<span class="sd">        @rtype: string</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"readlines"</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">_instream</span><span class="p">):</span>
+            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"CIF._readCIF(instream): I expected instream to be an opened file,</span><span class="se">\</span>
+<span class="s">             here I got </span><span class="si">%s</span><span class="s"> type </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">_instream</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">_instream</span><span class="p">)))</span>
+        <span class="n">lLinesRead</span> <span class="o">=</span> <span class="n">_instream</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
+        <span class="n">sText</span> <span class="o">=</span> <span class="s">""</span>
+        <span class="k">for</span> <span class="n">sLine</span> <span class="ow">in</span> <span class="n">lLinesRead</span><span class="p">:</span>
+            <span class="n">iPos</span> <span class="o">=</span> <span class="n">sLine</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"#"</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">iPos</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">CIF</span><span class="o">.</span><span class="n">isAscii</span><span class="p">(</span><span class="n">sLine</span><span class="p">):</span>
+                    <span class="n">sText</span> <span class="o">+=</span> <span class="n">sLine</span><span class="p">[:</span><span class="n">iPos</span><span class="p">]</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">linesep</span>
+
+                <span class="k">if</span> <span class="n">iPos</span> <span class="o">></span> <span class="mi">80</span> <span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"This line is too long and could cause problems in PreQuest: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">sLine</span><span class="p">)</span>
+            <span class="k">else</span> <span class="p">:</span>
+                <span class="n">sText</span> <span class="o">+=</span> <span class="n">sLine</span>
+                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sLine</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span> <span class="o">></span> <span class="mi">80</span> <span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"This line is too long and could cause problems in PreQues: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">sLine</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">sText</span>
+
+
+    <span class="k">def</span> <span class="nf">_parseCIF</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sText</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        - Parses the text of a CIF file</span>
+<span class="sd">        - Cut it in fields</span>
+<span class="sd">        - Find all the loops and process</span>
+<span class="sd">        - Find all the keys and values</span>
+
+<span class="sd">        @param sText: the content of the CIF - file</span>
+<span class="sd">        @type sText: string</span>
+<span class="sd">        @return: Nothing, the data are incorporated at the CIF object dictionary</span>
+<span class="sd">        @rtype: None</span>
+<span class="sd">        """</span>
+        <span class="n">loopidx</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">looplen</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">loop</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="c">#first of all : separate the cif file in fields</span>
+        <span class="n">lFields</span> <span class="o">=</span> <span class="n">CIF</span><span class="o">.</span><span class="n">_splitCIF</span><span class="p">(</span><span class="n">sText</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
+        <span class="c">#Then : look for loops</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">lFields</span><span class="p">)):</span>
+            <span class="k">if</span> <span class="n">lFields</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">"loop_"</span><span class="p">:</span>
+                <span class="n">loopidx</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">loopidx</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">loopidx</span><span class="p">:</span>
+                <span class="n">loopone</span><span class="p">,</span> <span class="n">length</span><span class="p">,</span> <span class="n">keys</span> <span class="o">=</span> <span class="n">CIF</span><span class="o">.</span><span class="n">_analyseOneLoop</span><span class="p">(</span><span class="n">lFields</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
+                <span class="n">loop</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">keys</span><span class="p">,</span> <span class="n">loopone</span><span class="p">])</span>
+                <span class="n">looplen</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">length</span><span class="p">)</span>
+
+
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">loopidx</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">):</span>
+                <span class="n">f1</span> <span class="o">=</span> <span class="n">lFields</span><span class="p">[:</span><span class="n">loopidx</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span> <span class="o">+</span> <span class="n">lFields</span><span class="p">[</span><span class="n">loopidx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">looplen</span><span class="p">[</span><span [...]
+                <span class="n">lFields</span> <span class="o">=</span> <span class="n">f1</span>
+
+            <span class="bp">self</span><span class="p">[</span><span class="s">"loop_"</span><span class="p">]</span> <span class="o">=</span> <span class="n">loop</span>
+
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">lFields</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">):</span>
+    <span class="c">#        print lFields[i], lFields[i+1]</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">lFields</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">:</span> <span class="n">lFields</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">= [...]
+            <span class="k">if</span> <span class="n">lFields</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">"_"</span> <span class="ow">and</span> <span class="n">lFields</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span  [...]
+                <span class="bp">self</span><span class="p">[</span><span class="n">lFields</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span> <span class="o">=</span> <span class="n">lFields</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
+
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">_splitCIF</span><span class="p">(</span><span class="n">sText</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Separate the text in fields as defined in the CIF</span>
+
+<span class="sd">        @param sText: the content of the CIF - file</span>
+<span class="sd">        @type sText: string</span>
+<span class="sd">        @return: list of all the fields of the CIF</span>
+<span class="sd">        @rtype: list</span>
+<span class="sd">        """</span>
+        <span class="n">lFields</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sText</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="k">break</span>
+            <span class="k">elif</span> <span class="n">sText</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">"'"</span><span class="p">:</span>
+                <span class="n">idx</span> <span class="o">=</span> <span class="mi">0</span>
+                <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">False</span>
+                <span class="k">while</span> <span class="ow">not</span>  <span class="n">bFinished</span><span class="p">:</span>
+                    <span class="n">idx</span> <span class="o">+=</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">sText</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"'"</span><span class="p">)</span>
+    <span class="c">##########debuging    in case we arrive at the end of the text</span>
+                    <span class="k">if</span> <span class="n">idx</span> <span class="o">>=</span> <span class="nb">len</span><span class="p">(</span><span class="n">sText</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
+    <span class="c">#                    print sText,idx,len(sText)</span>
+                        <span class="n">lFields</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sText</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
+                        <span class="n">sText</span> <span class="o">=</span> <span class="s">""</span>
+                        <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">True</span>
+                        <span class="k">break</span>
+
+                    <span class="k">if</span> <span class="n">sText</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="n">CIF</span><span class="o">.</span><span class="n">BLANK</span><span class="p">:</span>
+                        <span class="n">lFields</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sText</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="n">idx</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
+                        <span class="n">sText1</span> <span class="o">=</span> <span class="n">sText</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:]</span>
+                        <span class="n">sText</span> <span class="o">=</span> <span class="n">sText1</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+                        <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">True</span>
+
+            <span class="k">elif</span> <span class="n">sText</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">'"'</span><span class="p">:</span>
+                <span class="n">idx</span> <span class="o">=</span> <span class="mi">0</span>
+                <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">False</span>
+                <span class="k">while</span> <span class="ow">not</span>  <span class="n">bFinished</span><span class="p">:</span>
+                    <span class="n">idx</span> <span class="o">+=</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">sText</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">'"'</span><span class="p">)</span>
+    <span class="c">##########debuging    in case we arrive at the end of the text</span>
+                    <span class="k">if</span> <span class="n">idx</span> <span class="o">>=</span> <span class="nb">len</span><span class="p">(</span><span class="n">sText</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
+    <span class="c">#                    print sText,idx,len(sText)</span>
+                        <span class="n">lFields</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sText</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
+<span class="c">#                        print lFields[-1]</span>
+                        <span class="n">sText</span> <span class="o">=</span> <span class="s">""</span>
+                        <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">True</span>
+                        <span class="k">break</span>
+
+                    <span class="k">if</span> <span class="n">sText</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="n">CIF</span><span class="o">.</span><span class="n">BLANK</span><span class="p">:</span>
+                        <span class="n">lFields</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sText</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="n">idx</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
+<span class="c">#                        print lFields[-1]</span>
+                        <span class="n">sText1</span> <span class="o">=</span> <span class="n">sText</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:]</span>
+                        <span class="n">sText</span> <span class="o">=</span> <span class="n">sText1</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+                        <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">True</span>
+            <span class="k">elif</span> <span class="n">sText</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">';'</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">sText</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">CIF</span><span class="o">.</span><span class="n">BINARY_MARKER</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                    <span class="n">idx</span> <span class="o">=</span> <span class="n">sText</span><span class="p">[</span><span class="mi">32</span><span class="p">:]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">CIF</span><span class="o">.</span><span class="n">BINARY_MARKER</span><span class="p">)</span>
+                    <span class="k">if</span> <span class="n">idx</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+                        <span class="n">idx</span> <span class="o">=</span> <span class="mi">0</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">idx</span> <span class="o">+=</span> <span class="mi">32</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">CIF</span><span class="o">.</span><span class="n">BINARY_MARKER</span><span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">idx</span> <span class="o">=</span> <span class="mi">0</span>
+                <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">False</span>
+                <span class="k">while</span> <span class="ow">not</span>  <span class="n">bFinished</span><span class="p">:</span>
+                    <span class="n">idx</span> <span class="o">+=</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">sText</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">';'</span><span class="p">)</span>
+                    <span class="k">if</span> <span class="n">sText</span><span class="p">[</span><span class="n">idx</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="n">CIF</span><span class="o">.</span><span class="n">EOL</span><span class="p">:</span>
+                        <span class="n">lFields</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sText</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="n">idx</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
+                        <span class="n">sText1</span> <span class="o">=</span> <span class="n">sText</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:]</span>
+                        <span class="n">sText</span> <span class="o">=</span> <span class="n">sText1</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+                        <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">True</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">f</span> <span class="o">=</span> <span class="n">sText</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="n">lFields</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+<span class="c">#                print lFields[-1]</span>
+                <span class="n">sText1</span> <span class="o">=</span> <span class="n">sText</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">f</span><span class="p">):]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+                <span class="n">sText</span> <span class="o">=</span> <span class="n">sText1</span>
+        <span class="k">return</span> <span class="n">lFields</span>
+
+
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">_analyseOneLoop</span><span class="p">(</span><span class="n">lFields</span><span class="p">,</span> <span class="n">iStart</span><span class="p">):</span>
+        <span class="sd">"""Processes one loop in the data extraction of the CIF file</span>
+<span class="sd">        @param lFields: list of all the words contained in the cif file</span>
+<span class="sd">        @type lFields: list</span>
+<span class="sd">        @param iStart: the starting index corresponding to the "loop_" key</span>
+<span class="sd">        @type iStart: integer</span>
+<span class="sd">        @return: the list of loop dictionaries, the length of the data</span>
+<span class="sd">            extracted from the lFields and the list of all the keys of the loop.</span>
+<span class="sd">        @rtype: tuple</span>
+<span class="sd">        """</span>
+    <span class="c">#    in earch loop we first search the length of the loop</span>
+    <span class="c">#    print lFields</span>
+<span class="c">#        curloop = {}</span>
+        <span class="n">loop</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">keys</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">i</span> <span class="o">=</span> <span class="n">iStart</span> <span class="o">+</span> <span class="mi">1</span>
+        <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="k">while</span> <span class="ow">not</span> <span class="n">bFinished</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">lFields</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">"_"</span><span class="p">:</span>
+                <span class="n">keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lFields</span><span class="p">[</span><span class="n">i</span><span class="p">])</span><span class="c">#.lower())</span>
+                <span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">bFinished</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">i</span> <span class="o">>=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lFields</span><span class="p">):</span>
+                <span class="k">break</span>
+            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">lFields</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="k">break</span>
+            <span class="k">elif</span> <span class="n">lFields</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">"_"</span><span class="p">:</span>
+                <span class="k">break</span>
+            <span class="k">elif</span> <span class="n">lFields</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">"loop_"</span><span class="p">,</span> <span class="s">"stop_"</span><span class="p">,</span> <span class="s">"global_"</span><span class="p">,</span> <span class="s">"data_"</span><span class="p">,</span> <span class="s">"save_"</s [...]
+                <span class="k">break</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lFields</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+                <span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="c">#print len(keys), len(data)</span>
+        <span class="n">k</span> <span class="o">=</span> <span class="mi">0</span>
+
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="n">keys</span><span class="p">):</span>
+            <span class="n">element</span> <span class="o">=</span> <span class="p">{}</span>
+            <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="n">keys</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">k</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
+                    <span class="n">element</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">k</span><span class="p">]</span>
+                <span class="k">else</span> <span class="p">:</span>
+                    <span class="n">element</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="s">"?"</span>
+                <span class="n">k</span> <span class="o">+=</span> <span class="mi">1</span>
+            <span class="c">#print element</span>
+            <span class="n">loop</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">element</span><span class="p">)</span>
+
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c">#print data</span>
+            <span class="c">#print keys</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">keys</span><span class="p">)):</span>
+                <span class="n">element</span> <span class="o">=</span> <span class="p">{}</span>
+                <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="n">keys</span><span class="p">:</span>
+                    <span class="n">element</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">k</span><span class="p">]</span>
+                    <span class="n">k</span> <span class="o">+=</span> <span class="mi">1</span>
+    <span class="c">#            print element</span>
+                <span class="n">loop</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">element</span><span class="p">)</span>
+    <span class="c">#    print loop</span>
+        <span class="k">return</span> <span class="n">loop</span><span class="p">,</span> <span class="mi">1</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">keys</span><span class="p">)</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">),</span> <span class="n">keys</span>
+
+
+
+
+
+
+<span class="c">#############################################################################################</span>
+<span class="c">########     everything needed to  write a cif file #########################################</span>
+<span class="c">#############################################################################################</span>
+
+<div class="viewcode-block" id="CIF.saveCIF"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.saveCIF">[docs]</a>    <span class="k">def</span> <span class="nf">saveCIF</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_strFilename</span><span class="o">=</span><span class="s">"test.cif"</span><span class="p">,</span> <span class="n">linesep</span><span class="o">=</span><span class="n">os</span><span clas [...]
+        <span class="sd">"""Transforms the CIF object in string then write it into the given file</span>
+<span class="sd">        @param _strFilename: the of the file to be written</span>
+<span class="sd">        @param linesep: line separation used (to force compatibility with windows/unix)</span>
+<span class="sd">        @param binary: Shall we write the data as binary (True only for imageCIF/CBF)</span>
+<span class="sd">        @type param: string</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">binary</span><span class="p">:</span>
+            <span class="n">mode</span> <span class="o">=</span> <span class="s">"wb"</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">mode</span> <span class="o">=</span> <span class="s">"w"</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">fFile</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">IOError</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"Error during the opening of file for write: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span>
+                                                            <span class="n">_strFilename</span><span class="p">)</span>
+            <span class="k">return</span>
+        <span class="n">fFile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tostring</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">,</span> <span class="n">linesep</span><span class="p">))</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">fFile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="k">except</span> <span class="ne">IOError</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span class="s">"Error during the closing of file for write: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span>
+                                                             <span class="n">_strFilename</span><span class="p">)</span>
+
+</div>
+<div class="viewcode-block" id="CIF.tostring"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.tostring">[docs]</a>    <span class="k">def</span> <span class="nf">tostring</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_strFilename</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">linesep</span><span class="o">=</span><span class="n">os</span><span class="o">.</spa [...]
+        <span class="sd">"""</span>
+<span class="sd">        Converts a cif dictionnary to a string according to the CIF syntax</span>
+<span class="sd">        </span>
+<span class="sd">        @param _strFilename: the name of the filename to be appended in the header of the CIF file</span>
+<span class="sd">        @type _strFilename: string</span>
+<span class="sd">        @return: a sting that corresponds to the content of the CIF - file.</span>
+<span class="sd">        </span>
+<span class="sd">        """</span>
+<span class="c">#        sCifText = ""</span>
+        <span class="n">lstStrCif</span> <span class="o">=</span> <span class="p">[</span><span class="s">"# "</span> <span class="o">+</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">__version__</span><span class="p">]</span>
+        <span class="k">if</span> <span class="s">"_chemical_name_common"</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">:</span>
+            <span class="n">t</span> <span class="o">=</span> <span class="bp">self</span><span class="p">[</span><span class="s">"_chemical_name_common"</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="k">elif</span> <span class="n">_strFilename</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">t</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">)</span><span class=" [...]
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">t</span> <span class="o">=</span> <span class="s">""</span>
+        <span class="n">lstStrCif</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"data_</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">t</span><span class="p">))</span>
+        <span class="c">#first of all get all the keys :</span>
+        <span class="n">lKeys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
+        <span class="n">lKeys</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">lKeys</span><span class="p">[:]:</span>
+            <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span><span class="p">:</span>
+                <span class="n">lKeys</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span> <span class="o">+=</span> <span class="n">lKeys</span>
+
+        <span class="k">for</span> <span class="n">sKey</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">sKey</span> <span class="o">==</span> <span class="s">"loop_"</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="k">if</span> <span class="n">sKey</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_ordered</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">sKey</span><span class="p">)</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Skipping key </span><span class="si">%s</span><span class="s"> from ordered list as no more present in dict"</span><span class="p">)</span>
+                <span class="k">continue</span>
+            <span class="n">sValue</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="n">sKey</span><span class="p">])</span>
+            <span class="k">if</span> <span class="n">sValue</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> <span class="c">#should add value  between ;;</span>
+                <span class="n">lLine</span> <span class="o">=</span> <span class="p">[</span><span class="n">sKey</span><span class="p">,</span> <span class="s">";"</span><span class="p">,</span> <span class="n">sValue</span><span class="p">,</span> <span class="s">";"</span><span class="p">,</span> <span class="s">""</span><span class="p">]</span>
+            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">sValue</span><span class="o">.</span><span class="n">split</span><span class="p">())</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> <span class="c">#should add value between ''</span>
+                <span class="n">sLine</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">        '</span><span class="si">%s</span><span class="s">'"</span> <span class="o">%</span> <span class="p">(</span><span class="n">sKey</span><span class="p">,</span> <span class="n">sValue</span><span class="p">)</span>
+                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sLine</span><span class="p">)</span> <span class="o">></span> <span class="mi">80</span><span class="p">:</span>
+                    <span class="n">lLine</span> <span class="o">=</span> <span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">sKey</span><span class="p">),</span> <span class="n">sValue</span><span class="p">]</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">lLine</span> <span class="o">=</span> <span class="p">[</span><span class="n">sLine</span><span class="p">]</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">sLine</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">        </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">sKey</span><span class="p">,</span> <span class="n">sValue</span><span class="p">)</span>
+                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sLine</span><span class="p">)</span> <span class="o">></span> <span class="mi">80</span><span class="p">:</span>
+                    <span class="n">lLine</span> <span class="o">=</span> <span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">sKey</span><span class="p">),</span> <span class="n">sValue</span><span class="p">]</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">lLine</span> <span class="o">=</span> <span class="p">[</span><span class="n">sLine</span><span class="p">]</span>
+            <span class="n">lstStrCif</span> <span class="o">+=</span> <span class="n">lLine</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">"loop_"</span><span class="p">):</span>
+            <span class="k">for</span> <span class="n">loop</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s">"loop_"</span><span class="p">]:</span>
+                <span class="n">lstStrCif</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"loop_ "</span><span class="p">)</span>
+                <span class="n">lKeys</span> <span class="o">=</span> <span class="n">loop</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="n">llData</span> <span class="o">=</span> <span class="n">loop</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+                <span class="n">lstStrCif</span> <span class="o">+=</span> <span class="p">[</span><span class="s">" </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">sKey</span><span class="p">)</span> <span class="k">for</span> <span class="n">sKey</span> <span class="ow">in</span> <span class="n">lKeys</span><span class="p">]</span>
+                <span class="k">for</span> <span class="n">lData</span> <span class="ow">in</span> <span class="n">llData</span><span class="p">:</span>
+                    <span class="n">sLine</span> <span class="o">=</span> <span class="s">" "</span>
+                    <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">lKeys</span><span class="p">:</span>
+                        <span class="n">sRawValue</span> <span class="o">=</span> <span class="n">lData</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+                        <span class="k">if</span> <span class="n">sRawValue</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> <span class="c">#should add value  between ;;</span>
+                            <span class="n">lstStrCif</span> <span class="o">+=</span> <span class="p">[</span><span class="n">sLine</span><span class="p">,</span> <span class="s">";"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">sRawValue</span><span class="p">),</span> <span class="s">";"</span><span class="p">]</span>
+                            <span class="n">sLine</span> <span class="o">=</span> <span class="s">" "</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sRawValue</span><span class="o">.</span><span class="n">split</span><span class="p">())</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> <span class="c">#should add value between ''</span>
+                                <span class="n">value</span> <span class="o">=</span> <span class="s">"'</span><span class="si">%s</span><span class="s">'"</span> <span class="o">%</span> <span class="p">(</span><span class="n">sRawValue</span><span class="p">)</span>
+                            <span class="k">else</span><span class="p">:</span>
+                                <span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sRawValue</span><span class="p">)</span>
+                            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sLine</span><span class="p">)</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">></span> <span class="mi">78</span><span class="p">:</span>
+                                <span class="n">lstStrCif</span> <span class="o">+=</span> <span class="p">[</span><span class="n">sLine</span><span class="p">]</span>
+                                <span class="n">sLine</span> <span class="o">=</span> <span class="s">" "</span> <span class="o">+</span> <span class="n">value</span>
+                            <span class="k">else</span><span class="p">:</span>
+                                <span class="n">sLine</span> <span class="o">+=</span> <span class="s">" "</span> <span class="o">+</span> <span class="n">value</span>
+                    <span class="n">lstStrCif</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sLine</span><span class="p">)</span>
+                <span class="n">lstStrCif</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">""</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">linesep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lstStrCif</span><span class="p">)</span>
+
+</div>
+<div class="viewcode-block" id="CIF.exists"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.exists">[docs]</a>    <span class="k">def</span> <span class="nf">exists</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sKey</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Check if the key exists in the CIF and is non empty.</span>
+<span class="sd">        @param sKey: CIF key</span>
+<span class="sd">        @type sKey: string</span>
+<span class="sd">        @param cif: CIF dictionary</span>
+<span class="sd">        @return: True if the key exists in the CIF dictionary and is non empty</span>
+<span class="sd">        @rtype: boolean</span>
+<span class="sd">        """</span>
+        <span class="n">bExists</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">sKey</span><span class="p">):</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="n">sKey</span><span class="p">])</span> <span class="o">>=</span> <span class="mi">1</span><span class="p">:</span>
+                <span class="k">if</span> <span class="bp">self</span><span class="p">[</span><span class="n">sKey</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s">"?"</span><span class="p">,</span> <span class="s">"."</span><span class="p">]:</span>
+                    <span class="n">bExists</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">return</span> <span class="n">bExists</span>
+
+</div>
+<div class="viewcode-block" id="CIF.existsInLoop"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.existsInLoop">[docs]</a>    <span class="k">def</span> <span class="nf">existsInLoop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sKey</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Check if the key exists in the CIF dictionary.</span>
+<span class="sd">        @param sKey: CIF key</span>
+<span class="sd">        @type sKey: string</span>
+<span class="sd">        @param cif: CIF dictionary</span>
+<span class="sd">        @return: True if the key exists in the CIF dictionary and is non empty</span>
+<span class="sd">        @rtype: boolean</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="s">"loop_"</span><span class="p">):</span>
+            <span class="k">return</span> <span class="bp">False</span>
+        <span class="n">bExists</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">bExists</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s">"loop_"</span><span class="p">]:</span>
+                <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="n">i</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
+                    <span class="k">if</span> <span class="n">j</span> <span class="o">==</span> <span class="n">sKey</span><span class="p">:</span>
+                        <span class="n">bExists</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">return</span> <span class="n">bExists</span>
+
+</div>
+<div class="viewcode-block" id="CIF.loadCHIPLOT"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.loadCHIPLOT">[docs]</a>    <span class="k">def</span> <span class="nf">loadCHIPLOT</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_strFilename</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Load the powder diffraction CHIPLOT file and returns the</span>
+<span class="sd">        pd_CIF dictionary in the object</span>
+
+<span class="sd">        @param _strFilename: the name of the file to open</span>
+<span class="sd">        @type  _strFilename: string</span>
+<span class="sd">        @return: the CIF object corresponding to the powder diffraction</span>
+<span class="sd">        @rtype: dictionary</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">):</span>
+            <span class="k">print</span> <span class="s">"I cannot find the file </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">_strFilename</span>
+            <span class="k">raise</span>
+        <span class="n">lInFile</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">_strFilename</span><span class="p">,</span> <span class="s">"r"</span><span class="p">)</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
+        <span class="bp">self</span><span class="p">[</span><span class="s">"_audit_creation_method"</span><span class="p">]</span> <span class="o">=</span> <span class="s">'From 2-D detector using FIT2D and CIFfile'</span>
+        <span class="bp">self</span><span class="p">[</span><span class="s">"_pd_meas_scan_method"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"fixed"</span>
+        <span class="bp">self</span><span class="p">[</span><span class="s">"_pd_spec_description"</span><span class="p">]</span> <span class="o">=</span> <span class="n">lInFile</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">iLenData</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">lInFile</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span>
+        <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+            <span class="n">iLenData</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="n">lOneLoop</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">f2ThetaMin</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">lInFile</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">0</span><span class="p">])</span>
+            <span class="n">last</span> <span class="o">=</span> <span class="s">""</span>
+            <span class="k">for</span> <span class="n">sLine</span> <span class="ow">in</span> <span class="n">lInFile</span><span class="p">[</span><span class="o">-</span><span class="mi">20</span><span class="p">:]:</span>
+                <span class="k">if</span> <span class="n">sLine</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">!=</span> <span class="s">""</span><span class="p">:</span>
+                    <span class="n">last</span> <span class="o">=</span> <span class="n">sLine</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+            <span class="n">f2ThetaMax</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">last</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">0</span><span class="p">])</span>
+            <span class="n">limitsOK</span> <span class="o">=</span> <span class="bp">True</span>
+
+        <span class="k">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span>
+            <span class="n">limitsOK</span> <span class="o">=</span> <span class="bp">False</span>
+            <span class="n">f2ThetaMin</span> <span class="o">=</span> <span class="mf">180.0</span>
+            <span class="n">f2ThetaMax</span> <span class="o">=</span> <span class="mi">0</span>
+<span class="c">#        print "limitsOK:", limitsOK</span>
+        <span class="k">for</span> <span class="n">sLine</span> <span class="ow">in</span> <span class="n">lInFile</span><span class="p">[</span><span class="mi">4</span><span class="p">:]:</span>
+            <span class="n">sCleaned</span> <span class="o">=</span> <span class="n">sLine</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"#"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">sCleaned</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span> <span class="p">:</span>
+                <span class="k">if</span> <span class="ow">not</span> <span class="n">limitsOK</span><span class="p">:</span>
+                    <span class="n">f2Theta</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+                    <span class="k">if</span> <span class="n">f2Theta</span> <span class="o"><</span> <span class="n">f2ThetaMin</span> <span class="p">:</span>
+                        <span class="n">f2ThetaMin</span> <span class="o">=</span> <span class="n">f2Theta</span>
+                    <span class="k">if</span> <span class="n">f2Theta</span> <span class="o">></span> <span class="n">f2ThetaMax</span> <span class="p">:</span>
+                        <span class="n">f2ThetaMax</span> <span class="o">=</span> <span class="n">f2Theta</span>
+                <span class="n">lOneLoop</span><span class="o">.</span><span class="n">append</span><span class="p">({</span> <span class="s">"_pd_meas_intensity_total"</span><span class="p">:</span> <span class="n">data</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">})</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">iLenData</span><span class="p">:</span>
+            <span class="n">iLenData</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lOneLoop</span><span class="p">)</span>
+        <span class="k">assert</span> <span class="p">(</span><span class="n">iLenData</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">lOneLoop</span><span class="p">))</span>
+        <span class="bp">self</span><span class="p">[</span> <span class="s">"_pd_meas_2theta_range_inc"</span> <span class="p">]</span> <span class="o">=</span> <span class="s">"</span><span class="si">%.4f</span><span class="s">"</span> <span class="o">%</span> <span class="p">((</span><span class="n">f2ThetaMax</span> <span class="o">-</span> <span class="n">f2ThetaMin</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">i [...]
+        <span class="k">if</span> <span class="bp">self</span><span class="p">[</span> <span class="s">"_pd_meas_2theta_range_inc"</span> <span class="p">]</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="bp">self</span><span class="p">[</span> <span class="s">"_pd_meas_2theta_range_inc"</span> <span class="p">]</span> <span class="o">=</span> <span class="nb">abs</span> <span class="p">(</span><span class="bp">self</span><span class="p">[</span> <span class="s">"_pd_meas_2theta_range_inc"</span> <span class="p">])</span>
+            <span class="n">tmp</span> <span class="o">=</span> <span class="n">f2ThetaMax</span>
+            <span class="n">f2ThetaMax</span> <span class="o">=</span> <span class="n">f2ThetaMin</span>
+            <span class="n">f2ThetaMin</span> <span class="o">=</span> <span class="n">tmp</span>
+        <span class="bp">self</span><span class="p">[</span> <span class="s">"_pd_meas_2theta_range_max"</span> <span class="p">]</span> <span class="o">=</span> <span class="s">"</span><span class="si">%.4f</span><span class="s">"</span> <span class="o">%</span> <span class="n">f2ThetaMax</span>
+        <span class="bp">self</span><span class="p">[</span> <span class="s">"_pd_meas_2theta_range_min"</span> <span class="p">]</span> <span class="o">=</span> <span class="s">"</span><span class="si">%.4f</span><span class="s">"</span> <span class="o">%</span> <span class="n">f2ThetaMin</span>
+        <span class="bp">self</span><span class="p">[</span> <span class="s">"_pd_meas_number_of_points"</span> <span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">iLenData</span><span class="p">)</span>
+        <span class="bp">self</span><span class="p">[</span><span class="s">"loop_"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span> <span class="p">[</span> <span class="p">[</span><span class="s">"_pd_meas_intensity_total"</span> <span class="p">],</span> <span class="n">lOneLoop</span> <span class="p">]</span> <span class="p">]</span>
+
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="CIF.LoopHasKey"><a class="viewcode-back" href="../../api/modules.html#fabio.cbfimage.CIF.LoopHasKey">[docs]</a>    <span class="k">def</span> <span class="nf">LoopHasKey</span><span class="p">(</span><span class="n">loop</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+        <span class="s">"Returns True if the key (string) exist in the array called loop"""</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">loop</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+            <span class="k">return</span> <span class="bp">True</span>
+        <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">False</span>
+</pre></div></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/compression.html b/doc/html/_modules/fabio/compression.html
new file mode 100644
index 0000000..0911475
--- /dev/null
+++ b/doc/html/_modules/fabio/compression.html
@@ -0,0 +1,515 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.compression — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.compression</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c"># coding: utf8</span>
+<span class="sd">"""</span>
+<span class="sd">Authors: Jérôme Kieffer, ESRF</span>
+<span class="sd">         email:jerome.kieffer at esrf.fr</span>
+
+<span class="sd">FabIO library containing compression and decompression algorithm for various</span>
+<span class="sd">"""</span>
+<span class="n">__author__</span> <span class="o">=</span> <span class="s">"Jérôme Kieffer"</span>
+<span class="n">__contact__</span> <span class="o">=</span> <span class="s">"jerome.kieffer at esrf.eu"</span>
+<span class="n">__license__</span> <span class="o">=</span> <span class="s">"GPLv3+"</span>
+<span class="n">__copyright__</span> <span class="o">=</span> <span class="s">"European Synchrotron Radiation Facility, Grenoble, France"</span>
+
+
+<span class="kn">import</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">struct</span><span class="o">,</span> <span class="nn">hashlib</span><span class="o">,</span> <span class="nn">base64</span><span class="o">,</span> <span class="nn">StringIO</span><span class="o">,</span> <span class="nn">sys</span>
+<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span> <span class="o">>=</span> <span class="p">(</span><span class="mi">3</span><span class="p">,):</span>
+    <span class="nb">str</span> <span class="o">=</span> <span class="nb">bytes</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"compression"</span><span class="p">)</span>
+<span class="kn">import</span> <span class="nn">numpy</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">import</span> <span class="nn">gzip</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Unable to import gzip module: disabling gzip compression"</span><span class="p">)</span>
+    <span class="n">gzip</span> <span class="o">=</span> <span class="bp">None</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">import</span> <span class="nn">bz2</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Unable to import bz2 module: disabling bz2 compression"</span><span class="p">)</span>
+    <span class="n">bz2</span> <span class="o">=</span> <span class="bp">None</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">import</span> <span class="nn">zlib</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Unable to import zlib module: disabling zlib compression"</span><span class="p">)</span>
+    <span class="n">zlib</span> <span class="o">=</span> <span class="bp">None</span>
+
+<div class="viewcode-block" id="md5sum"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.md5sum">[docs]</a><span class="k">def</span> <span class="nf">md5sum</span><span class="p">(</span><span class="n">blob</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    returns the md5sum of an object...</span>
+<span class="sd">    """</span>
+    <span class="k">return</span> <span class="n">base64</span><span class="o">.</span><span class="n">b64encode</span><span class="p">(</span><span class="n">hashlib</span><span class="o">.</span><span class="n">md5</span><span class="p">(</span><span class="n">blob</span><span class="p">)</span><span class="o">.</span><span class="n">digest</span><span class="p">())</span>
+
+</div>
+<div class="viewcode-block" id="endianness"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.endianness">[docs]</a><span class="k">def</span> <span class="nf">endianness</span><span class="p">():</span>
+    <span class="sd">"""</span>
+<span class="sd">    Return the native endianness of the system</span>
+<span class="sd">    """</span>
+    <span class="k">if</span> <span class="n">numpy</span><span class="o">.</span><span class="n">little_endian</span><span class="p">:</span>
+        <span class="k">return</span> <span class="s">"LITTLE_ENDIAN"</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">return</span> <span class="s">"BIG_ENDIAN"</span>
+
+</div>
+<div class="viewcode-block" id="decGzip"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.decGzip">[docs]</a><span class="k">def</span> <span class="nf">decGzip</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
+    <span class="sd">"""</span>
+
+<span class="sd">    Decompress a chunk of data using the gzip algorithm from Python or alternatives if possible</span>
+
+<span class="sd">    """</span>
+
+    <span class="k">if</span> <span class="n">gzip</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">ImportError</span><span class="p">(</span><span class="s">"gzip module is not available"</span><span class="p">)</span>
+    <span class="n">fileobj</span> <span class="o">=</span> <span class="n">StringIO</span><span class="o">.</span><span class="n">StringIO</span><span class="p">(</span><span class="n">stream</span><span class="p">)</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">rawData</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="p">(</span><span class="n">fileobj</span><span class="o">=</span><span class="n">fileobj</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+    <span class="k">except</span> <span class="ne">IOError</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Encounter the python-gzip bug with trailing garbage, trying subprocess gzip"</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="c">#This is as an ugly hack against a bug in Python gzip</span>
+            <span class="kn">import</span> <span class="nn">subprocess</span>
+            <span class="n">sub</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">([</span><span class="s">"gzip"</span><span class="p">,</span> <span class="s">"-d"</span><span class="p">,</span> <span class="s">"-f"</span><span class="p">],</span> <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIP [...]
+            <span class="n">rawData</span><span class="p">,</span> <span class="n">err</span> <span class="o">=</span> <span class="n">sub</span><span class="o">.</span><span class="n">communicate</span><span class="p">(</span><span class="nb">input</span><span class="o">=</span><span class="n">stream</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Gzip subprocess ended with </span><span class="si">%s</span><span class="s"> err= </span><span class="si">%s</span><span class="s">; I got </span><span class="si">%s</span><span class="s"> bytes back"</span> <span class="o">%</span> <span class="p">(</span><span class="n">sub</span><span class="o">.</span><span class="n">wait</span><span class="p [...]
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span> <span class="c">#IGNORE:W0703</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Unable to use the subprocess gzip (</span><span class="si">%s</span><span class="s">). Is gzip available? "</span> <span class="o">%</span> <span class="n">error</span><span class="p">)</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">513</span><span class="p">):</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">fileobj</span> <span class="o">=</span> <span class="n">StringIO</span><span class="o">.</span><span class="n">StringIO</span><span class="p">(</span><span class="n">stream</span><span class="p">[:</span><span class="o">-</span><span class="n">i</span><span class="p">])</span>
+                    <span class="n">rawData</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="p">(</span><span class="n">fileobj</span><span class="o">=</span><span class="n">fileobj</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+                <span class="k">except</span> <span class="ne">IOError</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"trying with </span><span class="si">%s</span><span class="s"> bytes less, doesn't work"</span> <span class="o">%</span> <span class="n">i</span><span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="k">break</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"I am totally unable to read this gzipped compressed data block, giving up"</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">rawData</span>
+
+</div>
+<div class="viewcode-block" id="decBzip2"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.decBzip2">[docs]</a><span class="k">def</span> <span class="nf">decBzip2</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
+    <span class="sd">"""</span>
+
+<span class="sd">    Decompress a chunk of data using the bzip2 algorithm from Python</span>
+
+<span class="sd">    """</span>
+    <span class="k">if</span> <span class="n">bz2</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">ImportError</span><span class="p">(</span><span class="s">"bz2 module is not available"</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">bz2</span><span class="o">.</span><span class="n">decompress</span><span class="p">(</span><span class="n">stream</span><span class="p">)</span>
+
+</div>
+<div class="viewcode-block" id="decZlib"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.decZlib">[docs]</a><span class="k">def</span> <span class="nf">decZlib</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
+    <span class="sd">"""</span>
+
+<span class="sd">    Decompress a chunk of data using the zlib algorithm from Python</span>
+
+<span class="sd">    """</span>
+    <span class="k">if</span> <span class="n">zlib</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">ImportError</span><span class="p">(</span><span class="s">"zlib module is not available"</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">zlib</span><span class="o">.</span><span class="n">decompress</span><span class="p">(</span><span class="n">stream</span><span class="p">)</span>
+
+</div>
+<div class="viewcode-block" id="decByteOffet_python"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.decByteOffet_python">[docs]</a><span class="k">def</span> <span class="nf">decByteOffet_python</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)</span>
+
+<span class="sd">    @param stream: string representing the compressed data</span>
+<span class="sd">    @param size: the size of the output array (of longInts)</span>
+<span class="sd">    @return: 1D-ndarray</span>
+
+<span class="sd">    """</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"CBF decompression using Python with Cython loops"</span><span class="p">)</span>
+    <span class="n">dataOut</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">size</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</span><span class="n">int64</span><span class="p">)</span>
+    <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">last</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">current</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">while</span> <span class="p">((</span><span class="n">i</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="n">stream</span><span class="p">))</span> <span class="ow">and</span> <span class="p">(</span><span class="n">j</span> <span class="o"><</span> <span class="n">size</span><span class="p">)):</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">stream</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="s">'</span><span class="se">\x80</span><span class="s">'</span><span class="p">):</span>
+            <span class="k">if</span> <span class="p">(</span><span class="n">stream</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span><span class="n">i</span> <span class="o">+</span> <span class="mi">3</span><span class="p">]</span> <span class="o">==</span> <span class="s">"</span><span class="se">\x00\x80</span><span class="s">"</span><span class="p">):</span>
+                <span class="k">if</span> <span class="p">(</span><span class="n">stream</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">3</span><span class="p">:</span><span class="n">i</span> <span class="o">+</span> <span class="mi">7</span><span class="p">]</span> <span class="o">==</span> <span class="s">"</span><span class="se">\x00\x00\x00\x80</span><span class="s">"</span><span class="p">):</span>
+                    <span class="n">current</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s">"<q"</span><span class="p">,</span> <span class="n">stream</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">7</span><span class="p">:</span><span class="n">i</span> <span class="o">+</span> <span class="mi">15</span><span class="p">] [...]
+                    <span class="n">i</span> <span class="o">+=</span> <span class="mi">15</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">current</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s">"<i"</span><span class="p">,</span> <span class="n">stream</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">3</span><span class="p">:</span><span class="n">i</span> <span class="o">+</span> <span class="mi">7</span><span class="p">]) [...]
+                    <span class="n">i</span> <span class="o">+=</span> <span class="mi">7</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">current</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s">"<h"</span><span class="p">,</span> <span class="n">stream</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span><span class="n">i</span> <span class="o">+</span> <span class="mi">3</span><span class="p">])[</s [...]
+                <span class="n">i</span> <span class="o">+=</span> <span class="mi">3</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">current</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s">"<b"</span><span class="p">,</span> <span class="n">stream</span><span class="p">[</span><span class="n">i</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="n">last</span> <span class="o">+=</span> <span class="n">current</span>
+        <span class="n">dataOut</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">last</span>
+        <span class="n">j</span> <span class="o">+=</span> <span class="mi">1</span>
+    <span class="k">return</span> <span class="n">dataOut</span>
+</div>
+<div class="viewcode-block" id="decByteOffet_weave"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.decByteOffet_weave">[docs]</a><span class="k">def</span> <span class="nf">decByteOffet_weave</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)</span>
+
+<span class="sd">    @param stream: string representing the compressed data</span>
+<span class="sd">    @param size: the size of the output array (of longInts)</span>
+<span class="sd">    @return: 1D-ndarray</span>
+
+<span class="sd">    """</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"CBF decompression using Weave"</span><span class="p">)</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="kn">from</span> <span class="nn">scipy</span> <span class="kn">import</span> <span class="n">weave</span>
+        <span class="kn">from</span> <span class="nn">scipy.weave</span> <span class="kn">import</span> <span class="n">converters</span>
+    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"scipy.weave is not available, falling back on slow Numpy implementations"</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">decByteOffet_numpy</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
+    <span class="n">dataIn</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s">"uint8"</span><span class="p">)</span>
+    <span class="n">n</span> <span class="o">=</span> <span class="n">dataIn</span><span class="o">.</span><span class="n">size</span>
+    <span class="n">dataOut</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">size</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s">"int64"</span><span class="p">)</span>
+    <span class="n">codeC</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">unsigned char key = 0x80;</span>
+<span class="s">long   j = 0;</span>
+<span class="s">long   last=0;</span>
+<span class="s">long   current=0;</span>
+<span class="s">for (int i=0; i< n; i++){</span>
+<span class="s">   if (j>=size){</span>
+<span class="s">   //printf("i= </span><span class="si">%i</span><span class="s"><</span><span class="si">%i</span><span class="s">, j=</span><span class="si">%i</span><span class="s"> < size= </span><span class="si">%i</span><span class="s"> </span><span class="si">%i</span><span class="se">\\</span><span class="s">n",i,n,j,size,dataIn(i));</span>
+<span class="s">       break;</span>
+<span class="s">  }</span>
+<span class="s">  if (dataIn(i) == key){</span>
+<span class="s">      if ( (dataIn(i+1)==0) and (dataIn(i+2)==key) ){</span>
+<span class="s">          if ( (dataIn(i+3)==0) and (dataIn(i+4)==0) and (dataIn(i+5)==0) and (dataIn(i+6)==key) )  {</span>
+<span class="s">               // 64 bits mode</span>
+<span class="s">               char tmp = dataIn(i+14) ;</span>
+<span class="s">               current = (long(tmp)<<56) | (long(dataIn(i+13))<<48) | (long(dataIn(i+12))<<40) | (long(dataIn(i+11))<<32) | (long(dataIn(i+10))<<24) | (long(dataIn(i+9))<<16) | (long(dataIn(i+8))<<8) | (long(dataIn(i+7)));</span>
+<span class="s">//                printf("64 bit int at pos </span><span class="si">%i</span><span class="s">, </span><span class="si">%i</span><span class="s">, value=</span><span class="si">%ld</span><span class="s"> </span><span class="se">\\</span><span class="s">n",i,j,current);</span>
+<span class="s">               i+=14;</span>
+<span class="s">           }else{</span>
+<span class="s">               // 32 bits mode</span>
+<span class="s">               char tmp = dataIn(i+6) ;</span>
+<span class="s">               current = (long(tmp)<<24) | (long(dataIn(i+5))<<16) | (long(dataIn(i+4))<<8) | (long(dataIn(i+3)));</span>
+<span class="s">//                printf("32 bit int at pos </span><span class="si">%i</span><span class="s">, </span><span class="si">%i</span><span class="s">, value=</span><span class="si">%ld</span><span class="s"> was </span><span class="si">%i</span><span class="s"> </span><span class="si">%i</span><span class="s"> </span><span class="si">%i</span><span class="s"> </span><span class="si">%i</span><span class="s"> </span><span class="si">%i</span><span class="s"> </span><span c [...]
+<span class="s">//                printf("</span><span class="si">%ld</span><span class="s"> </span><span class="si">%ld</span><span class="s"> </span><span class="si">%ld</span><span class="s"> </span><span class="si">%ld</span><span class="se">\\</span><span class="s">n",(long(tmp)<<24) , (long(dataIn(i+5))<<16) , (long(dataIn(i+4))<<8) ,long(dataIn(i+3)));</span>
+<span class="s">               i+=6;</span>
+<span class="s">           }</span>
+<span class="s">      }else{</span>
+<span class="s">           // 16 bit mode</span>
+<span class="s">           char tmp = dataIn(i+2);</span>
+<span class="s">           current = (long(tmp)<<8) | (long (dataIn(i+1)));</span>
+<span class="s">//           printf("16 bit int at pos </span><span class="si">%i</span><span class="s">, </span><span class="si">%i</span><span class="s">, value=</span><span class="si">%ld</span><span class="s"> was </span><span class="si">%i</span><span class="s"> </span><span class="si">%i</span><span class="s"> </span><span class="si">%i</span><span class="se">\\</span><span class="s">n",i,j,current,dataIn(i),dataIn(i+1),dataIn(i+2));</span>
+<span class="s">           i+=2;</span>
+<span class="s">      }</span>
+<span class="s">  }else{</span>
+<span class="s">      // 8 bit mode</span>
+<span class="s">      char tmp = dataIn(i) ;</span>
+<span class="s">      current= long(tmp) ;</span>
+<span class="s">  }</span>
+<span class="s">  last+=current;</span>
+<span class="s">  dataOut(j)=last;</span>
+<span class="s">  j++ ;</span>
+<span class="s">}</span>
+<span class="s">return_val=0;</span>
+<span class="s">     """</span>
+    <span class="n">rc</span> <span class="o">=</span> <span class="n">weave</span><span class="o">.</span><span class="n">inline</span><span class="p">(</span><span class="n">codeC</span><span class="p">,</span> <span class="p">[</span><span class="s">"dataIn"</span><span class="p">,</span> <span class="s">"dataOut"</span><span class="p">,</span> <span class="s">"n"</span><span class="p">,</span> <span class="s">"size"</span> <span class="p">],</s [...]
+    <span class="k">if</span> <span class="n">rc</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"weave binary module return error code </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">rc</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">dataOut</span>
+
+
+</div>
+<div class="viewcode-block" id="decByteOffet_numpy"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.decByteOffet_numpy">[docs]</a><span class="k">def</span> <span class="nf">decByteOffet_numpy</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Analyze a stream of char with any length of exception:</span>
+<span class="sd">                2, 4, or 8 bytes integers</span>
+
+<span class="sd">    @param stream: string representing the compressed data</span>
+<span class="sd">    @param size: the size of the output array (of longInts)</span>
+<span class="sd">    @return: 1D-ndarray</span>
+
+<span class="sd">    """</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"CBF decompression using Numpy"</span><span class="p">)</span>
+    <span class="n">listnpa</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">key16</span> <span class="o">=</span> <span class="s">"</span><span class="se">\x80</span><span class="s">"</span>
+    <span class="n">key32</span> <span class="o">=</span> <span class="s">"</span><span class="se">\x00\x80</span><span class="s">"</span>
+    <span class="n">key64</span> <span class="o">=</span> <span class="s">"</span><span class="se">\x00\x00\x00\x80</span><span class="s">"</span>
+    <span class="n">shift</span> <span class="o">=</span> <span class="mi">1</span>
+    <span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
+        <span class="n">idx</span> <span class="o">=</span> <span class="n">stream</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">key16</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">idx</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="n">listnpa</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s">"int8"</span><span class="p">))</span>
+            <span class="k">break</span>
+        <span class="n">listnpa</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">stream</span><span class="p">[:</span><span class="n">idx</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="s">"int8"</span><span class="p">))</span>
+
+        <span class="k">if</span> <span class="n">stream</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">3</span><span class="p">]</span> <span class="o">==</span> <span class="n">key32</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">stream</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">3</span><span class="p">:</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">7</span><span class="p">]</span> <span class="o">==</span> <span class="n">key64</span><span class="p">:</span>
+<span class="c">#                        long int 64 bits</span>
+                <span class="n">listnpa</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">stream</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">7</span><span class="p">:</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">15</span><span class="p">],</span>
+                                             <span class="n">dtype</span><span class="o">=</span><span class="s">"int64"</span><span class="p">))</span>
+                <span class="n">shift</span> <span class="o">=</span> <span class="mi">15</span>
+            <span class="k">else</span><span class="p">:</span> <span class="c">#32 bit int</span>
+                <span class="n">listnpa</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">stream</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">3</span><span class="p">:</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">7</span><span class="p">],</span>
+                                             <span class="n">dtype</span><span class="o">=</span><span class="s">"int32"</span><span class="p">))</span>
+                <span class="n">shift</span> <span class="o">=</span> <span class="mi">7</span>
+        <span class="k">else</span><span class="p">:</span>  <span class="c"># int16</span>
+            <span class="n">listnpa</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">stream</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">3</span><span class="p">],</span>
+                                         <span class="n">dtype</span><span class="o">=</span><span class="s">"int16"</span><span class="p">))</span>
+            <span class="n">shift</span> <span class="o">=</span> <span class="mi">3</span>
+        <span class="n">stream</span> <span class="o">=</span> <span class="n">stream</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="n">shift</span><span class="p">:]</span>
+    <span class="k">return</span>  <span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">hstack</span><span class="p">(</span><span class="n">listnpa</span><span class="p">))</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int64"</span><span class="p">)</span><span class="o">.</span><span class="n">cumsum</span><span class="p">()</span>
+
+</div>
+<div class="viewcode-block" id="decByteOffet_cython"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.decByteOffet_cython">[docs]</a><span class="k">def</span> <span class="nf">decByteOffet_cython</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Analyze a stream of char with any length of exception:</span>
+<span class="sd">                2, 4, or 8 bytes integers</span>
+
+<span class="sd">    @param stream: string representing the compressed data</span>
+<span class="sd">    @param size: the size of the output array (of longInts)</span>
+<span class="sd">    @return: 1D-ndarray</span>
+
+<span class="sd">    """</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"CBF decompression using cython"</span><span class="p">)</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="kn">from</span> <span class="nn">fabio.byte_offset</span> <span class="kn">import</span> <span class="n">analyseCython</span>
+    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Failed to import byte_offset cython module, falling back on numpy method"</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">decByteOffet_numpy</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">analyseCython</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="compByteOffet_numpy"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.compByteOffet_numpy">[docs]</a><span class="k">def</span> <span class="nf">compByteOffet_numpy</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Compress a dataset into a string using the byte_offet algorithm</span>
+
+<span class="sd">    @param data: ndarray</span>
+<span class="sd">    @return: string/bytes with compressed data</span>
+
+<span class="sd">    test = numpy.array([0,1,2,127,0,1,2,128,0,1,2,32767,0,1,2,32768,0,1,2,2147483647,0,1,2,2147483648,0,1,2,128,129,130,32767,32768,128,129,130,32768,2147483647,2147483648])</span>
+
+<span class="sd">    """</span>
+    <span class="n">flat</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int64"</span><span class="p">)</span><span class="o">.</span><span class="n">ravel</span><span class="p">()</span>
+    <span class="n">delta</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">flat</span><span class="p">)</span>
+    <span class="n">delta</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">flat</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+    <span class="n">delta</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="o">=</span> <span class="n">flat</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="o">-</span> <span class="n">flat</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+    <span class="n">mask</span> <span class="o">=</span> <span class="p">((</span><span class="n">delta</span> <span class="o">></span> <span class="mi">127</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="n">delta</span> <span class="o"><</span> <span class="o">-</span><span class="mi">127</span><span class="p">))</span>
+    <span class="n">exceptions</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">nonzero</span><span class="p">(</span><span class="n">mask</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+    <span class="k">if</span> <span class="n">numpy</span><span class="o">.</span><span class="n">little_endian</span><span class="p">:</span>
+        <span class="n">byteswap</span> <span class="o">=</span> <span class="bp">False</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">byteswap</span> <span class="o">=</span> <span class="bp">True</span>
+    <span class="n">start</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">binary_blob</span> <span class="o">=</span> <span class="s">""</span>
+    <span class="k">for</span> <span class="n">stop</span> <span class="ow">in</span> <span class="n">exceptions</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">stop</span> <span class="o">-</span> <span class="n">start</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">binary_blob</span> <span class="o">+=</span> <span class="n">delta</span><span class="p">[</span><span class="n">start</span><span class="p">:</span><span class="n">stop</span><span class="p">]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int8"</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+        <span class="n">exc</span> <span class="o">=</span> <span class="n">delta</span><span class="p">[</span><span class="n">stop</span><span class="p">]</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">exc</span> <span class="o">></span> <span class="mi">2147483647</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">exc</span> <span class="o"><</span> <span class="o">-</span><span class="mi">2147483647</span><span class="p">):</span> <span class="c">#2**31-1</span>
+            <span class="n">binary_blob</span> <span class="o">+=</span> <span class="s">"</span><span class="se">\x80\x00\x80\x00\x00\x00\x80</span><span class="s">"</span>
+            <span class="k">if</span> <span class="n">byteswap</span><span class="p">:</span>
+                <span class="n">binary_blob</span> <span class="o">+=</span> <span class="n">delta</span><span class="p">[</span><span class="n">stop</span><span class="p">:</span><span class="n">stop</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">binary_blob</span> <span class="o">+=</span> <span class="n">delta</span><span class="p">[</span><span class="n">stop</span><span class="p">:</span><span class="n">stop</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+        <span class="k">elif</span> <span class="p">(</span><span class="n">exc</span> <span class="o">></span> <span class="mi">32767</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">exc</span> <span class="o"><</span> <span class="o">-</span><span class="mi">32767</span><span class="p">):</span> <span class="c">#2**15-1</span>
+            <span class="n">binary_blob</span> <span class="o">+=</span> <span class="s">"</span><span class="se">\x80\x00\x80</span><span class="s">"</span>
+            <span class="k">if</span> <span class="n">byteswap</span><span class="p">:</span>
+                <span class="n">binary_blob</span> <span class="o">+=</span> <span class="n">delta</span><span class="p">[</span><span class="n">stop</span><span class="p">:</span><span class="n">stop</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int32"</span><span class="p">)</span><span class="o">.</span><span class="n">byteswap</span><span class="p [...]
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">binary_blob</span> <span class="o">+=</span> <span class="n">delta</span><span class="p">[</span><span class="n">stop</span><span class="p">:</span><span class="n">stop</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int32"</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p [...]
+        <span class="k">else</span><span class="p">:</span> <span class="c">#>127</span>
+            <span class="n">binary_blob</span> <span class="o">+=</span> <span class="s">"</span><span class="se">\x80</span><span class="s">"</span>
+            <span class="k">if</span> <span class="n">byteswap</span><span class="p">:</span>
+                <span class="n">binary_blob</span> <span class="o">+=</span> <span class="n">delta</span><span class="p">[</span><span class="n">stop</span><span class="p">:</span><span class="n">stop</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int16"</span><span class="p">)</span><span class="o">.</span><span class="n">byteswap</span><span class="p [...]
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">binary_blob</span> <span class="o">+=</span> <span class="n">delta</span><span class="p">[</span><span class="n">stop</span><span class="p">:</span><span class="n">stop</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int16"</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p [...]
+        <span class="n">start</span> <span class="o">=</span> <span class="n">stop</span> <span class="o">+</span> <span class="mi">1</span>
+    <span class="k">if</span> <span class="n">start</span> <span class="o"><</span> <span class="n">delta</span><span class="o">.</span><span class="n">size</span><span class="p">:</span>
+        <span class="n">binary_blob</span> <span class="o">+=</span> <span class="n">delta</span><span class="p">[</span><span class="n">start</span><span class="p">:]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int8"</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+    <span class="k">return</span> <span class="n">binary_blob</span>
+
+</div>
+<div class="viewcode-block" id="decTY1"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.decTY1">[docs]</a><span class="k">def</span> <span class="nf">decTY1</span><span class="p">(</span><span class="n">raw_8</span><span class="p">,</span> <span class="n">raw_16</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">raw_32</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Modified byte offset decompressor used in Oxford Diffraction images</span>
+<span class="sd">    </span>
+<span class="sd">    @param raw_8:  strings containing raw data with integer 8 bits</span>
+<span class="sd">    @param raw_16: strings containing raw data with integer 16 bits</span>
+<span class="sd">    @param raw_32: strings containing raw data with integer 32 bits</span>
+<span class="sd">    @return: numpy.ndarray</span>
+<span class="sd">    </span>
+<span class="sd">    """</span>
+    <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">raw_8</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s">"uint8"</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
+    <span class="n">data</span> <span class="o">-=</span> <span class="mi">127</span>
+    <span class="k">if</span> <span class="n">raw_32</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+        <span class="n">int32</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">raw_32</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s">"int32"</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
+        <span class="n">exception32</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">nonzero</span><span class="p">(</span><span class="n">data</span> <span class="o">==</span> <span class="mi">128</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">raw_16</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+        <span class="n">int16</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">raw_16</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s">"int16"</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
+        <span class="n">exception16</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">nonzero</span><span class="p">(</span><span class="n">data</span> <span class="o">==</span> <span class="mi">127</span><span class="p">)</span>
+        <span class="n">data</span><span class="p">[</span><span class="n">exception16</span><span class="p">]</span> <span class="o">=</span> <span class="n">int16</span>
+    <span class="k">if</span> <span class="n">raw_32</span><span class="p">:</span>
+        <span class="n">data</span><span class="p">[</span><span class="n">exception32</span><span class="p">]</span> <span class="o">=</span> <span class="n">int32</span>
+    <span class="n">summed</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">cumsum</span><span class="p">()</span>
+    <span class="n">smax</span> <span class="o">=</span> <span class="n">summed</span><span class="o">.</span><span class="n">max</span><span class="p">()</span>
+    <span class="k">if</span> <span class="p">(</span><span class="n">smax</span> <span class="o">></span> <span class="p">(</span><span class="mi">2</span> <span class="o">**</span> <span class="mi">31</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)):</span>
+        <span class="n">bytecode</span> <span class="o">=</span> <span class="s">"int64"</span>
+    <span class="k">elif</span> <span class="p">(</span><span class="n">smax</span> <span class="o">></span> <span class="p">(</span><span class="mi">2</span> <span class="o">**</span> <span class="mi">15</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)):</span>
+        <span class="n">bytecode</span> <span class="o">=</span> <span class="s">"int32"</span>
+    <span class="k">elif</span> <span class="p">(</span><span class="n">smax</span> <span class="o">></span> <span class="p">(</span><span class="mi">2</span> <span class="o">**</span> <span class="mi">7</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)):</span>
+        <span class="n">bytecode</span> <span class="o">=</span> <span class="s">"int16"</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">bytecode</span> <span class="o">=</span> <span class="s">"int8"</span>
+    <span class="k">return</span> <span class="n">summed</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">bytecode</span><span class="p">)</span></div>
+<span class="n">decKM4CCD</span> <span class="o">=</span> <span class="n">decTY1</span>
+
+<div class="viewcode-block" id="compTY1"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.compTY1">[docs]</a><span class="k">def</span> <span class="nf">compTY1</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Modified byte offset compressor used in Oxford Diffraction images</span>
+
+<span class="sd">    @param data: numpy.ndarray with the input data (integers!)</span>
+<span class="sd">    @return: 3-tuple of strings: raw_8,raw_16,raw_32 containing raw data with integer of the given size</span>
+
+<span class="sd">    """</span>
+    <span class="n">fdata</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+    <span class="n">diff</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">fdata</span><span class="p">)</span>
+    <span class="n">diff</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">fdata</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+    <span class="n">diff</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="o">=</span> <span class="n">fdata</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="o">-</span> <span class="n">fdata</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+    <span class="n">adiff</span> <span class="o">=</span> <span class="nb">abs</span><span class="p">(</span><span class="n">diff</span><span class="p">)</span>
+    <span class="n">exception32</span> <span class="o">=</span> <span class="p">(</span><span class="n">adiff</span> <span class="o">></span> <span class="mi">32767</span><span class="p">)</span><span class="c">#2**15-1</span>
+    <span class="n">exception16</span> <span class="o">=</span> <span class="p">(</span><span class="n">adiff</span> <span class="o">>=</span> <span class="mi">127</span><span class="p">)</span> <span class="o">-</span> <span class="n">exception32</span> <span class="c">#2**7-1)</span>
+    <span class="n">we16</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">exception16</span><span class="p">)</span>
+    <span class="n">we32</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">exception32</span><span class="p">)</span>
+    <span class="n">raw_16</span> <span class="o">=</span> <span class="n">diff</span><span class="p">[</span><span class="n">we16</span><span class="p">]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int16"</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+    <span class="n">raw_32</span> <span class="o">=</span> <span class="n">diff</span><span class="p">[</span><span class="n">we32</span><span class="p">]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"int32"</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+    <span class="n">diff</span><span class="p">[</span><span class="n">we16</span><span class="p">]</span> <span class="o">=</span> <span class="mi">127</span>
+    <span class="n">diff</span><span class="p">[</span><span class="n">we32</span><span class="p">]</span> <span class="o">=</span> <span class="mi">128</span>
+    <span class="n">diff</span> <span class="o">+=</span> <span class="mi">127</span>
+    <span class="n">raw_8</span> <span class="o">=</span> <span class="n">diff</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"uint8"</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+    <span class="k">return</span>  <span class="n">raw_8</span><span class="p">,</span> <span class="n">raw_16</span><span class="p">,</span> <span class="n">raw_32</span>
+</div>
+<div class="viewcode-block" id="decPCK"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.decPCK">[docs]</a><span class="k">def</span> <span class="nf">decPCK</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">dim1</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dim2</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ove [...]
+    <span class="sd">"""</span>
+<span class="sd">    Modified CCP4  pck decompressor used in MAR345 images</span>
+
+<span class="sd">    @param stream: string or file</span>
+<span class="sd">    @return: numpy.ndarray (square array)</span>
+
+<span class="sd">    """</span>
+
+    <span class="k">try</span><span class="p">:</span>
+        <span class="kn">from</span> <span class="nn">mar345_IO</span> <span class="kn">import</span> <span class="n">uncompress_pck</span>
+    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"Unable to import mar345_IO to read compressed dataset"</span><span class="p">)</span>
+    <span class="k">if</span> <span class="s">"seek"</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
+        <span class="n">stream</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+        <span class="n">raw</span> <span class="o">=</span> <span class="n">stream</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">raw</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">stream</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">uncompress_pck</span><span class="p">(</span><span class="n">raw</span><span class="p">,</span> <span class="n">dim1</span><span class="p">,</span> <span class="n">dim2</span><span class="p">,</span> <span class="n">overflowPix</span><span class="p">,</span> <span class="n">version</span><span class="p">)</span>
+
+</div>
+<div class="viewcode-block" id="compPCK"><a class="viewcode-back" href="../../api/modules.html#fabio.compression.compPCK">[docs]</a><span class="k">def</span> <span class="nf">compPCK</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Modified CCP4  pck compressor used in MAR345 images</span>
+
+<span class="sd">    @param data: numpy.ndarray (square array)</span>
+<span class="sd">    @return:  compressed stream</span>
+
+<span class="sd">    """</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="kn">from</span> <span class="nn">mar345_IO</span> <span class="kn">import</span> <span class="n">compress_pck</span>
+    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"Unable to import mar345_IO to write compressed dataset"</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">compress_pck</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
+</pre></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/converters.html b/doc/html/_modules/fabio/converters.html
new file mode 100644
index 0000000..3e381e0
--- /dev/null
+++ b/doc/html/_modules/fabio/converters.html
@@ -0,0 +1,148 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.converters — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.converters</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python </span>
+<span class="c">#coding: utf8</span>
+<span class="sd">"""</span>
+<span class="sd">Converter module. </span>
+<span class="sd">This is for the moment empty (populated only with almost pass through anonymous functions)</span>
+<span class="sd">but aims to be populated with more sofisticated translators ...  </span>
+
+<span class="sd">"""</span>
+<span class="n">__author__</span> <span class="o">=</span> <span class="s">"Jérôme Kieffer"</span>
+<span class="n">__contact__</span> <span class="o">=</span> <span class="s">"jerome.kieffer at esrf.eu"</span>
+<span class="n">__license__</span> <span class="o">=</span> <span class="s">"GPLv3+"</span>
+<span class="n">__copyright__</span> <span class="o">=</span> <span class="s">"European Synchrotron Radiation Facility, Grenoble, France"</span>
+
+<span class="kn">import</span> <span class="nn">types</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"converter"</span><span class="p">)</span>
+
+<div class="viewcode-block" id="convert_data_integer"><a class="viewcode-back" href="../../api/modules.html#fabio.converters.convert_data_integer">[docs]</a><span class="k">def</span> <span class="nf">convert_data_integer</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    convert data to integer</span>
+<span class="sd">    """</span>
+    <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">data</span>
+
+</div>
+<span class="n">CONVERSION_HEADER</span> <span class="o">=</span> <span class="p">{</span>
+                     <span class="p">(</span><span class="s">"edfimage"</span><span class="p">,</span> <span class="s">"edfimage"</span><span class="p">):</span> <span class="k">lambda</span> <span class="n">header</span><span class="p">:</span><span class="n">header</span><span class="p">,</span>
+                     <span class="p">}</span>
+<span class="n">CONVERSION_DATA</span> <span class="o">=</span> <span class="p">{</span>
+                   <span class="p">(</span><span class="s">"edfimage"</span><span class="p">,</span> <span class="s">"edfimage"</span><span class="p">):</span> <span class="k">lambda</span> <span class="n">data</span><span class="p">:</span><span class="n">data</span><span class="p">,</span>
+                   <span class="p">(</span><span class="s">"edfimage"</span><span class="p">,</span> <span class="s">"cbfimage"</span><span class="p">):</span> <span class="n">convert_data_integer</span><span class="p">,</span>
+                   <span class="p">(</span><span class="s">"edfimage"</span><span class="p">,</span> <span class="s">"mar345image"</span><span class="p">):</span> <span class="n">convert_data_integer</span><span class="p">,</span>
+                   <span class="p">(</span><span class="s">"edfimage"</span><span class="p">,</span> <span class="s">"fit2dmaskimage"</span><span class="p">):</span> <span class="n">convert_data_integer</span><span class="p">,</span>
+                   <span class="p">(</span><span class="s">"edfimage"</span><span class="p">,</span> <span class="s">"kcdimage"</span><span class="p">):</span> <span class="n">convert_data_integer</span><span class="p">,</span>
+                   <span class="p">(</span><span class="s">"edfimage"</span><span class="p">,</span> <span class="s">"OXDimage"</span><span class="p">):</span> <span class="n">convert_data_integer</span><span class="p">,</span>
+                   <span class="p">(</span><span class="s">"edfimage"</span><span class="p">,</span> <span class="s">"pnmimage"</span><span class="p">):</span> <span class="n">convert_data_integer</span><span class="p">,</span>
+                   <span class="p">}</span>
+
+<div class="viewcode-block" id="convert_data"><a class="viewcode-back" href="../../api/modules.html#fabio.converters.convert_data">[docs]</a><span class="k">def</span> <span class="nf">convert_data</span><span class="p">(</span><span class="n">inp</span><span class="p">,</span> <span class="n">outp</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Return data converted to the output format ... over-simplistic implementation for the moment ...</span>
+<span class="sd">    @param inp,outp: input/output format like "cbfimage"</span>
+<span class="sd">    @param data(ndarray): the actual dataset to be transformed</span>
+<span class="sd">    """</span>
+    <span class="k">return</span> <span class="n">CONVERSION_DATA</span><span class="o">.</span><span class="n">get</span><span class="p">((</span><span class="n">inp</span><span class="p">,</span> <span class="n">outp</span><span class="p">),</span> <span class="k">lambda</span> <span class="n">data</span><span class="p">:</span><span class="n">data</span><span class="p">)(</span><span class="n">data</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="convert_header"><a class="viewcode-back" href="../../api/modules.html#fabio.converters.convert_header">[docs]</a><span class="k">def</span> <span class="nf">convert_header</span><span class="p">(</span><span class="n">inp</span><span class="p">,</span> <span class="n">outp</span><span class="p">,</span> <span class="n">header</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    return header converted to the output format</span>
+<span class="sd">    @param inp,outp: input/output format like "cbfimage"</span>
+<span class="sd">    @param header(dict):the actual set of headers to be transformed </span>
+<span class="sd">    """</span>
+    <span class="k">return</span> <span class="n">CONVERSION_HEADER</span><span class="o">.</span><span class="n">get</span><span class="p">((</span><span class="n">inp</span><span class="p">,</span> <span class="n">outp</span><span class="p">),</span> <span class="k">lambda</span> <span class="n">header</span><span class="p">:</span><span class="n">header</span><span class="p">)(</span><span class="n">header</span><span class="p">)</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/datIO.html b/doc/html/_modules/fabio/datIO.html
new file mode 100644
index 0000000..5077a83
--- /dev/null
+++ b/doc/html/_modules/fabio/datIO.html
@@ -0,0 +1,152 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.datIO — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.datIO</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#coding: utf8</span>
+<span class="sd">"""</span>
+<span class="sd">Authors: Henning O. Sorensen & Erik Knudsen</span>
+<span class="sd">         Center for Fundamental Research: Metal Structures in Four Dimensions</span>
+<span class="sd">         Risoe National Laboratory</span>
+<span class="sd">         Frederiksborgvej 399</span>
+<span class="sd">         DK-4000 Roskilde</span>
+<span class="sd">         email:erik.knudsen at risoe.dk</span>
+<span class="sd">         </span>
+<span class="sd">         and Jon Wright, ESRF</span>
+<span class="sd">"""</span>
+
+<div class="viewcode-block" id="fabiodata"><a class="viewcode-back" href="../../api/modules.html#fabio.datIO.fabiodata">[docs]</a><span class="k">class</span> <span class="nc">fabiodata</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    A common class for dataIO in fable</span>
+<span class="sd">    Contains a 2d numpy array for keeping data, and two lists (clabels and rlabels)</span>
+<span class="sd">    containing labels for columns and rows respectively</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">data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">clabels</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">rlabels</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">fname</span><span  [...]
+        <span class="sd">"""</span>
+<span class="sd">        set up initial values</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="o">==</span> <span class="nb">type</span><span class="p">(</span><span class="s">"string"</span><span class="p">):</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"fabioimage.__init__ bad argument - "</span> <span class="o">+</span> \
+                                <span class="s">"data should be numpy array"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">data</span>
+        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dims</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">clabels</span> <span class="o">=</span> <span class="n">clabels</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">rlabels</span> <span class="o">=</span> <span class="n">rlabels</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">fname</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+
+<div class="viewcode-block" id="fabiodata.read"><a class="viewcode-back" href="../../api/modules.html#fabio.datIO.fabiodata.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        To be overridden by format specific subclasses</span>
+<span class="sd">        """</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Class has not implemented read method yet"</span><span class="p">)</span>
+
+<span class="c">#import stuff from Jon's columnfile things</span>
+
+</div></div>
+<div class="viewcode-block" id="columnfile"><a class="viewcode-back" href="../../api/modules.html#fabio.datIO.columnfile">[docs]</a><span class="k">class</span> <span class="nc">columnfile</span><span class="p">(</span><span class="n">fabiodata</span><span class="p">):</span>
+    <span class="s">"Concrete fabiodata class"</span>
+<div class="viewcode-block" id="columnfile.read"><a class="viewcode-back" href="../../api/modules.html#fabio.datIO.columnfile.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="kn">import</span> <span class="nn">cf_io</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">infile</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">'rb'</span><span class="p">)</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"columnfile: file"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="o">+</span> <span class="s">"not found."</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">clabels</span><span class="p">)</span> <span class="o">=</span> <span class="n">cf_io</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"columnfile: read error, file "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="o">+</span> <span class="s">" possibly corrupt"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dims</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+</pre></div></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/dm3image.html b/doc/html/_modules/fabio/dm3image.html
new file mode 100644
index 0000000..9b518ef
--- /dev/null
+++ b/doc/html/_modules/fabio/dm3image.html
@@ -0,0 +1,312 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.dm3image — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.dm3image</h1><div class="highlight"><pre>
+<span class="sd">"""</span>
+<span class="sd">Authors: Henning O. Sorensen & Erik Knudsen</span>
+<span class="sd">         Center for Fundamental Research: Metal Structures in Four Dimensions</span>
+<span class="sd">         Risoe National Laboratory</span>
+<span class="sd">         Frederiksborgvej 399</span>
+<span class="sd">         DK-4000 Roskilde</span>
+<span class="sd">         email:erik.knudsen at risoe.dk</span>
+
+<span class="sd">        + Jon Wright, ESRF</span>
+<span class="sd">"""</span>
+<span class="kn">import</span> <span class="nn">logging</span>
+<span class="kn">import</span> <span class="nn">numpy</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"dm3image"</span><span class="p">)</span>
+
+<span class="n">DATA_TYPES</span> <span class="o">=</span> <span class="p">{</span>  <span class="mi">2</span>     <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int16</span><span class="p">,</span>
+                <span class="mi">4</span>     <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span>
+                <span class="mi">3</span>     <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span>
+                <span class="mi">5</span>     <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">,</span>
+                <span class="mi">6</span>     <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span>
+                <span class="mi">7</span>     <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float</span><span class="p">,</span>
+                <span class="mi">8</span>     <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int8</span><span class="p">,</span>
+                <span class="mi">9</span>     <span class="p">:</span>  <span class="bp">None</span><span class="p">,</span>
+                <span class="mi">10</span>    <span class="p">:</span>  <span class="bp">None</span><span class="p">,</span>
+                <span class="mi">15</span>    <span class="p">:</span>  <span class="s">'Struct'</span><span class="p">,</span>
+                <span class="mi">18</span>    <span class="p">:</span>  <span class="bp">None</span><span class="p">,</span>
+                <span class="mi">20</span>    <span class="p">:</span>  <span class="bp">None</span>
+                <span class="p">}</span>
+
+<span class="n">DATA_BYTES</span> <span class="o">=</span> <span class="p">{</span>  <span class="mi">2</span>     <span class="p">:</span>  <span class="mi">2</span><span class="p">,</span>
+                <span class="mi">4</span>     <span class="p">:</span>  <span class="mi">2</span><span class="p">,</span>
+                <span class="mi">3</span>     <span class="p">:</span>  <span class="mi">4</span><span class="p">,</span>
+                <span class="mi">5</span>     <span class="p">:</span>  <span class="mi">4</span><span class="p">,</span>
+                <span class="mi">6</span>     <span class="p">:</span>  <span class="mi">4</span><span class="p">,</span>
+                <span class="mi">7</span>     <span class="p">:</span>  <span class="mi">8</span><span class="p">,</span>
+                <span class="mi">8</span>     <span class="p">:</span>  <span class="mi">1</span><span class="p">,</span>
+                <span class="mi">9</span>     <span class="p">:</span>  <span class="bp">None</span><span class="p">,</span>
+                <span class="mi">10</span>    <span class="p">:</span>  <span class="bp">None</span><span class="p">,</span>
+                <span class="mi">15</span>    <span class="p">:</span>  <span class="s">'Struct'</span><span class="p">,</span>
+                <span class="mi">18</span>    <span class="p">:</span>  <span class="bp">None</span><span class="p">,</span>
+                <span class="mi">20</span>    <span class="p">:</span>  <span class="bp">None</span>
+                <span class="p">}</span>
+
+
+
+<div class="viewcode-block" id="dm3image"><a class="viewcode-back" href="../../api/modules.html#fabio.dm3image.dm3image">[docs]</a><span class="k">class</span> <span class="nc">dm3image</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">""" Read and try to write the dm3 data format """</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">encoded_datatype</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">no_data_elements</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">grouptag_is_sorted</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">grouptag_is_open</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_data_type</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_is_data</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">grouptag_no_tags</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytes_in_file</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_label_length</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">go_on</span> <span class="o">=</span> <span class="bp">None</span>
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+        <span class="n">file_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="c"># should be 3</span>
+        <span class="k">assert</span> <span class="n">file_format</span> <span class="o">==</span> <span class="mi">3</span><span class="p">,</span> <span class="s">'Wrong file type '</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytes_in_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">byte_order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="c"># 0 = big, 1= little</span>
+        <span class="k">print</span> <span class="s">'read dm3 file - file format '</span><span class="p">,</span> <span class="n">file_format</span>
+        <span class="k">print</span> <span class="s">'Bytes in file : '</span> <span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bytes_in_file</span>
+        <span class="k">print</span> <span class="s">'Byte order :'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">byte_order</span><span class="p">,</span> <span class="s">'  - 0 = bigEndian , 1 = littleEndian'</span>
+
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">byte_order</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">swap</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">byte_order</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">swap</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span>
+
+<div class="viewcode-block" id="dm3image.read"><a class="viewcode-back" href="../../api/modules.html#fabio.dm3image.dm3image.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">go_on</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">print</span> <span class="bp">self</span><span class="o">.</span><span class="n">go_on</span>
+        <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">go_on</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">read_tag_group</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">read_tag_entry</span><span class="p">()</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">infile</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">bytes_in_file</span><span class="p">:</span> <span class="k">break</span>
+
+            <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_is_data</span> <span class="o">==</span> <span class="mi">21</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">read_tag_entry</span><span class="p">()</span>
+                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">infile</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">bytes_in_file</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">go_on</span> <span class="o">=</span> <span class="bp">False</span>
+
+        <span class="p">(</span><span class="n">dim1_raw</span><span class="p">,</span> <span class="n">dim2_raw</span><span class="p">)</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Active Size (pixels)'</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
+        <span class="p">(</span><span class="n">dim1_raw</span><span class="p">,</span> <span class="n">dim2_raw</span><span class="p">)</span> <span class="o">=</span> <span class="p">(</span><span class="nb">eval</span><span class="p">(</span><span class="n">dim1_raw</span><span class="p">),</span> <span class="nb">eval</span><span class="p">(</span><span class="n">dim2_raw</span><span class="p">))</span>
+        <span class="p">(</span><span class="n">dim1_binning</span><span class="p">,</span> <span class="n">dim2_binning</span><span class="p">)</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Binning'</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
+        <span class="p">(</span><span class="n">dim1_binning</span><span class="p">,</span> <span class="n">dim2_binning</span><span class="p">)</span> <span class="o">=</span> <span class="p">(</span><span class="nb">eval</span><span class="p">(</span><span class="n">dim1_binning</span><span class="p">),</span> <span class="nb">eval</span><span class="p">(</span><span class="n">dim2_binning</span><span class="p">))</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="n">dim1_raw</span> <span class="o">/</span> <span class="n">dim1_binning</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="n">dim2_raw</span> <span class="o">/</span> <span class="n">dim2_binning</span>
+        <span class="c">#print dim1,dim2</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">'Data'</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Data'</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="bp">self</span [...]
+</div>
+<div class="viewcode-block" id="dm3image.readbytes"><a class="viewcode-back" href="../../api/modules.html#fabio.dm3image.dm3image.readbytes">[docs]</a>    <span class="k">def</span> <span class="nf">readbytes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bytes_to_read</span><span class="p">,</span> <span class="n">format</span><span class="p">,</span> <span class="n">swap</span><span class="o">=</span><span class="bp">True</span><span  [...]
+        <span class="n">raw</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">bytes_to_read</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">format</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">raw</span><span class="p">,</span> <span class="n">format</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">raw</span>
+        <span class="k">if</span> <span class="n">swap</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span>
+        <span class="k">return</span> <span class="n">data</span>
+
+
+</div>
+<div class="viewcode-block" id="dm3image.read_tag_group"><a class="viewcode-back" href="../../api/modules.html#fabio.dm3image.dm3image.read_tag_group">[docs]</a>    <span class="k">def</span> <span class="nf">read_tag_group</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">grouptag_is_sorted</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">grouptag_is_open</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">grouptag_no_tags</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'TagGroup is sorted? </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">grouptag_is_sorted</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'TagGroup is open? </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">grouptag_is_open</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'no of tags in TagGroup </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">grouptag_no_tags</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="dm3image.read_tag_entry"><a class="viewcode-back" href="../../api/modules.html#fabio.dm3image.dm3image.read_tag_entry">[docs]</a>    <span class="k">def</span> <span class="nf">read_tag_entry</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_is_data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_label_length</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'does Tag have data ? </span><span class="si">%s</span><span class="s">  -  20 = Tag group , 21 = data '</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_is_data</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'length of tag_label '</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_label_length</span><span class="p">)</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_label_length</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">tag_label</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tag_label_length</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">tag_label</span> <span class="o">=</span> <span class="bp">None</span>
+
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_is_data</span> <span class="o">==</span> <span class="mi">21</span><span class="p">:</span>
+            <span class="c"># This is data</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">tag_label</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_tag_type</span><span class="p">()</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">tag_label</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">tag_label</span><span class="p">])</span>
+
+</div>
+<div class="viewcode-block" id="dm3image.read_tag_type"><a class="viewcode-back" href="../../api/modules.html#fabio.dm3image.dm3image.read_tag_type">[docs]</a>    <span class="k">def</span> <span class="nf">read_tag_type</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="o">!=</span> <span class="s">'</span><span class="si">%%%%</span><span class="s">'</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">IOError</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_data_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'data is of type : </span><span class="si">%s</span><span class="s">  - 1 = simple, 2= string, 3 = array, >3 structs'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_data_type</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'encode type: </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span><span class="p">,</span> <span class="n">DATA_TYPES</span><span class="p">[</span> <span class="bp">self</span><span c [...]
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_data_type</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="c"># simple type</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="n">DATA_BYTES</span><span class="p">[</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span><span class="p">],</span>
+                                  <span class="n">DATA_TYPES</span><span class="p">[</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span><span class="p">],</span>
+                                  <span class="n">swap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">swap</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="c"># are the data stored in a simple array?</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span> <span class="o">==</span> <span class="mi">20</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_data_type</span> <span class="o">==</span> <span class="mi">3</span> <span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">no_data_elements</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_type</span> <span class="o">==</span> <span class="mi">10</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'skip bytes </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_data_elements</span><span class="p">)</span>
+                <span class="n">dump</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">no_data_elements</span><span class="p">)</span>
+                <span class="k">return</span> <span class="bp">None</span>
+
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'Data are stored as a simple a array -'</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s"> data elemets stored as </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_data_elements</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_type</ [...]
+            <span class="n">read_no_bytes</span> <span class="o">=</span> <span class="n">DATA_BYTES</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">data_type</span><span class="p">]</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_data_elements</span>
+            <span class="n">format</span> <span class="o">=</span> <span class="n">DATA_TYPES</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">data_type</span><span class="p">]</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="n">read_no_bytes</span><span class="p">,</span> <span class="n">format</span><span class="p">,</span> <span class="n">swap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">swap</span><span class="p">)</span>
+
+        <span class="c"># are the data stored in a complex array ?</span>
+        <span class="c"># print 'tag_type + data_type', self.tag_encoded_type,self.tag_data_type</span>
+
+        <span class="c">#print self.tag_encoded_type , self.tag_data_type </span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span> <span class="o">==</span> <span class="mi">20</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_data_type</span> <span class="o">></span> <span class="mi">3</span> <span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'found array - new tag_encoded_type </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span><span class="p">)</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span> <span class="o">==</span> <span class="mi">15</span><span class="p">:</span>            <span class="c"># struct type</span>
+                 <span class="c">###type = self.readbytes(4,numpy.int32)</span>
+                <span class="n">struct_name_length</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="n">struct_number_fields</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="c">#print 'struct - name_length, number_field',  struct_name_length,struct_number_fields</span>
+                <span class="c">#print self.infile.read(struct_name_length)</span>
+                <span class="n">field_info</span> <span class="o">=</span> <span class="p">[]</span>
+                <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">struct_number_fields</span><span class="p">):</span>
+                    <span class="n">field_info</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</ [...]
+                <span class="c">#print field_info</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">no_data_elements</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="c">#print '%i data elemets stored as ' %self.no_data_elements</span>
+                <span class="n">bytes_in_struct</span> <span class="o">=</span> <span class="mi">0</span>
+                <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">struct_number_fields</span><span class="p">):</span>
+                    <span class="n">bytes_in_struct</span> <span class="o">+=</span> <span class="n">DATA_BYTES</span><span class="p">[</span><span class="n">field_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]]</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">'skip bytes </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_data_elements</span> <span class="o">*</span> <span class="n">bytes_in_struct</span><span class="p">)</span>
+                <span class="n">dump</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">no_data_elements</span> <span class="o">*</span> <span class="n">bytes_in_struct</span><span class="p">)</span>
+                <span class="k">return</span> <span class="bp">None</span>
+
+
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_encoded_type</span> <span class="o">==</span> <span class="mi">15</span><span class="p">:</span>            <span class="c"># struct type</span>
+            <span class="c">###type = self.readbytes(4,numpy.int32)</span>
+            <span class="n">struct_name_length</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="n">struct_number_fields</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="c">#print 'struct - name_length, number_field',  struct_name_length,struct_number_fields</span>
+            <span class="c">#print self.infile.read(struct_name_length)</span>
+            <span class="n">field_info</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">struct_number_fields</span><span class="p">):</span>
+                <span class="n">field_info</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span [...]
+            <span class="c">#print field_info</span>
+            <span class="n">field_data</span> <span class="o">=</span> <span class="s">''</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">struct_number_fields</span><span class="p">):</span>
+                <span class="c">#print type(i)</span>
+                <span class="n">field_data</span> <span class="o">=</span> <span class="n">field_data</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="n">field_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="bp">None</span><span class="p">,</span> <span class="n">swap</span><span class=" [...]
+                <span class="n">field_data</span> <span class="o">=</span> <span class="n">field_data</span> <span class="o">+</span> <span class="s">'</span><span class="si">%i</span><span class="s">  '</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">readbytes</span><span class="p">(</span><span class="n">DATA_BYTES</span><span class="p">[</span><span class="n">field_info</span><span class="p">[</span><span class="n">i</span><s [...]
+                                                                 <span class="n">DATA_TYPES</span><span class="p">[</span><span class="n">field_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]],</span>
+                                                                 <span class="n">swap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">swap</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="k">return</span> <span class="n">field_data</span>
+</div>
+<div class="viewcode-block" id="dm3image.read_data"><a class="viewcode-back" href="../../api/modules.html#fabio.dm3image.dm3image.read_data">[docs]</a>    <span class="k">def</span> <span class="nf">read_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">encoded_datatype</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span [...]
+</pre></div></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/edfimage.html b/doc/html/_modules/fabio/edfimage.html
new file mode 100644
index 0000000..d5fcf56
--- /dev/null
+++ b/doc/html/_modules/fabio/edfimage.html
@@ -0,0 +1,1027 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.edfimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.edfimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c"># -*- coding: utf8 -*-</span>
+<span class="sd">"""</span>
+
+<span class="sd">License: GPLv2+</span>
+
+<span class="sd">Authors:</span>
+<span class="sd">........</span>
+<span class="sd">* Henning O. Sorensen & Erik Knudsen:</span>
+<span class="sd">  Center for Fundamental Research: Metal Structures in Four Dimensions;</span>
+<span class="sd">  Risoe National Laboratory;</span>
+<span class="sd">  Frederiksborgvej 399;</span>
+<span class="sd">  DK-4000 Roskilde;</span>
+<span class="sd">  email:erik.knudsen at risoe.dk</span>
+<span class="sd">* Jon Wright & Jérôme Kieffer:</span>
+<span class="sd">  European Synchrotron Radiation Facility;</span>
+<span class="sd">  Grenoble (France)</span>
+
+
+<span class="sd">"""</span>
+<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">with_statement</span>
+<span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">types</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"edfimage"</span><span class="p">)</span>
+<span class="kn">import</span> <span class="nn">numpy</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">from</span> <span class="nn">fabioutils</span> <span class="kn">import</span> <span class="n">isAscii</span><span class="p">,</span> <span class="n">toAscii</span><span class="p">,</span> <span class="n">nice_int</span>
+<span class="kn">from</span> <span class="nn">compression</span> <span class="kn">import</span> <span class="n">decBzip2</span><span class="p">,</span> <span class="n">decGzip</span><span class="p">,</span> <span class="n">decZlib</span>
+
+
+<span class="n">BLOCKSIZE</span> <span class="o">=</span> <span class="mi">512</span>
+<span class="n">DATA_TYPES</span> <span class="o">=</span> <span class="p">{</span>  <span class="s">"SignedByte"</span>    <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int8</span><span class="p">,</span>
+                <span class="s">"Signed8"</span>       <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int8</span><span class="p">,</span>
+                <span class="s">"UnsignedByte"</span>  <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">,</span>
+                <span class="s">"Unsigned8"</span>     <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">,</span>
+                <span class="s">"SignedShort"</span>   <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int16</span><span class="p">,</span>
+                <span class="s">"Signed16"</span>      <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int16</span><span class="p">,</span>
+                <span class="s">"UnsignedShort"</span> <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span>
+                <span class="s">"Unsigned16"</span>    <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span>
+                <span class="s">"UnsignedShortInteger"</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span>
+                <span class="s">"SignedInteger"</span> <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span>
+                <span class="s">"Signed32"</span>      <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span>
+                <span class="s">"UnsignedInteger"</span><span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">,</span>
+                <span class="s">"Unsigned32"</span>    <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">,</span>
+                <span class="s">"SignedLong"</span>    <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span>
+                <span class="s">"UnsignedLong"</span>  <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">,</span>
+                <span class="s">"Signed64"</span>      <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">int64</span><span class="p">,</span>
+                <span class="s">"Unsigned64"</span>    <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint64</span><span class="p">,</span>
+                <span class="s">"FloatValue"</span>    <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span>
+                <span class="s">"FLOATVALUE"</span>    <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span>
+                <span class="s">"FLOAT"</span>         <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="c"># fit2d</span>
+                <span class="s">"Float"</span>         <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="c"># fit2d</span>
+                <span class="s">"FloatIEEE32"</span>   <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span>
+                <span class="s">"Float32"</span>       <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span>
+                <span class="s">"Double"</span>        <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">,</span>
+                <span class="s">"DoubleValue"</span>   <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">,</span>
+                <span class="s">"FloatIEEE64"</span>   <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">,</span>
+                <span class="s">"DoubleIEEE64"</span>  <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span><span class="p">}</span>
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">DATA_TYPES</span><span class="p">[</span><span class="s">"FloatIEEE128"</span> <span class="p">]</span> <span class="o">=</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float128</span>
+    <span class="n">DATA_TYPES</span><span class="p">[</span><span class="s">"DoubleIEEE128"</span> <span class="p">]</span> <span class="o">=</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float128</span>
+    <span class="n">DATA_TYPES</span><span class="p">[</span><span class="s">"QuadrupleValue"</span> <span class="p">]</span> <span class="o">=</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">float128</span>
+
+<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+    <span class="c"># not in your numpy</span>
+    <span class="k">pass</span>
+
+<span class="n">NUMPY_EDF_DTYPE</span> <span class="o">=</span> <span class="p">{</span><span class="s">"int8"</span>       <span class="p">:</span><span class="s">"SignedByte"</span><span class="p">,</span>
+                   <span class="s">"int16"</span>      <span class="p">:</span><span class="s">"SignedShort"</span><span class="p">,</span>
+                   <span class="s">"int32"</span>      <span class="p">:</span><span class="s">"SignedInteger"</span><span class="p">,</span>
+                   <span class="s">"int64"</span>      <span class="p">:</span><span class="s">"Signed64"</span><span class="p">,</span>
+                   <span class="s">"uint8"</span>      <span class="p">:</span><span class="s">"UnsignedByte"</span><span class="p">,</span>
+                   <span class="s">"uint16"</span>     <span class="p">:</span><span class="s">"UnsignedShort"</span><span class="p">,</span>
+                   <span class="s">"uint32"</span>     <span class="p">:</span><span class="s">"UnsignedInteger"</span><span class="p">,</span>
+                   <span class="s">"uint64"</span>     <span class="p">:</span><span class="s">"Unsigned64"</span><span class="p">,</span>
+                   <span class="s">"float32"</span>    <span class="p">:</span><span class="s">"FloatValue"</span><span class="p">,</span>
+                   <span class="s">"float64"</span>    <span class="p">:</span><span class="s">"DoubleValue"</span><span class="p">,</span>
+                   <span class="s">"float128"</span>   <span class="p">:</span><span class="s">"QuadrupleValue"</span><span class="p">,</span>
+             <span class="p">}</span>
+
+<span class="n">MINIMUM_KEYS</span> <span class="o">=</span> <span class="p">[</span><span class="s">'HEADERID'</span><span class="p">,</span>
+                <span class="s">'IMAGE'</span><span class="p">,</span>
+                <span class="s">'BYTEORDER'</span><span class="p">,</span>
+                <span class="s">'DATATYPE'</span><span class="p">,</span>
+                <span class="s">'DIM_1'</span><span class="p">,</span>
+                <span class="s">'DIM_2'</span><span class="p">,</span>
+                <span class="s">'SIZE'</span><span class="p">]</span> <span class="c"># Size is thought to be essential for writing at least</span>
+
+<span class="n">DEFAULT_VALUES</span> <span class="o">=</span> <span class="p">{</span>
+                  <span class="c"># I do not define default values as they will be calculated at write time</span>
+                  <span class="c"># JK20110415</span>
+                  <span class="p">}</span>
+
+<div class="viewcode-block" id="Frame"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.Frame">[docs]</a><span class="k">class</span> <span class="nc">Frame</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    A class representing a single frame in an EDF file</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">data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">header_keys</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">number</span><s [...]
+        <span class="k">if</span> <span class="n">header</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">header_keys</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="n">header_keys</span><span class="p">[:]</span>
+            <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">header_keys</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Header key </span><span class="si">%s</span><span class="s">, in header_keys is not in header dictionary, poping !!!"</span> <span class="o">%</span> <span class="n">key</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()]</span> <span class="o">=</span> <span class="n">key</span>
+            <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Header key </span><span class="si">%s</span><span class="s"> is not a string"</span> <span class="o">%</span> <span class="n">key</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="o">=</span> <span class="n">data</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dims</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">start</span> <span class="o">=</span> <span class="bp">None</span> <span class="c"># Position of start of raw data in file</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="bp">None</span>  <span class="c"># size of raw data in file</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">file</span> <span class="o">=</span> <span class="bp">None</span>  <span class="c"># opened file object with locking capabilities !!!</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">number</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">number</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">iFrame</span> <span class="o">=</span> <span class="n">number</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">iFrame</span> <span class="o">=</span> <span class="mi">0</span>
+
+<div class="viewcode-block" id="Frame.parseheader"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.Frame.parseheader">[docs]</a>    <span class="k">def</span> <span class="nf">parseheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">block</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Parse the header in some EDF format from an already open file</span>
+
+<span class="sd">        @param block: string representing the header block</span>
+<span class="sd">        @type block: string, should be full ascii</span>
+<span class="sd">        @return: size of the binary blob</span>
+<span class="sd">        """</span>
+        <span class="c">#reset values ...</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="n">calcsize</span> <span class="o">=</span> <span class="mi">1</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dims</span> <span class="o">=</span> <span class="p">[]</span>
+
+        <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">block</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">';'</span><span class="p">):</span>
+            <span class="k">if</span> <span class="s">'='</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
+                <span class="n">key</span><span class="p">,</span> <span class="n">val</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'='</span> <span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+                <span class="c"># Why would someone put null bytes in a header?</span>
+                <span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">"</span><span class="se">\x00</span><span class="s">"</span><span class="p">,</span><span class="s">" "</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">"</span><span class="se">\x00</span><span class="s">"</span><span class="p">,</span><span class="s">" "</span><span class="p">)</span><span class="o">.</sp [...]
+                <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()]</span> <span class="o">=</span> <span class="n">key</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+
+        <span class="c"># Compute image size</span>
+        <span class="k">if</span> <span class="s">"SIZE"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">nice_int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">"SIZE"</span><span class="p">]])</span>
+            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Unable to convert to integer : </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> "</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">"SIZE"</span><span [...]
+        <span class="k">if</span> <span class="s">"DIM_1"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">dim1</span> <span class="o">=</span> <span class="n">nice_int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'DIM_1'</span><span class="p">]])</span>
+            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Unable to convert to integer Dim_1: </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">"DIM_1"</span><s [...]
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">calcsize</span> <span class="o">*=</span> <span class="n">dim1</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">dims</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dim1</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"No Dim_1 in headers !!!"</span><span class="p">)</span>
+        <span class="k">if</span> <span class="s">"DIM_2"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">dim2</span> <span class="o">=</span> <span class="n">nice_int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'DIM_2'</span><span class="p">]])</span>
+            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Unable to convert to integer Dim_3: </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">"DIM_2"</span><s [...]
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">calcsize</span> <span class="o">*=</span> <span class="n">dim2</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">dims</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dim2</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"No Dim_2 in headers !!!"</span><span class="p">)</span>
+        <span class="n">iDim</span> <span class="o">=</span> <span class="mi">3</span>
+        <span class="c"># JON: this appears to be for nD images, but we don't treat those</span>
+        <span class="k">while</span> <span class="n">iDim</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">strDim</span> <span class="o">=</span> <span class="s">"DIM_</span><span class="si">%i</span><span class="s">"</span> <span class="o">%</span> <span class="n">iDim</span>
+            <span class="k">if</span> <span class="n">strDim</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">:</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">dim3</span> <span class="o">=</span> <span class="n">nice_int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="n">strDim</span><span class="p">]])</span>
+                <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Unable to convert to integer </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">"</span>
+                                  <span class="o">%</span> <span class="p">(</span><span class="n">strDim</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="n">strDim</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span>< [...]
+                    <span class="n">dim3</span> <span class="o">=</span> <span class="bp">None</span>
+                    <span class="n">iDim</span> <span class="o">=</span> <span class="bp">None</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="k">if</span> <span class="n">dim3</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
+                        <span class="c"># Otherwise treat dim3==1 as a 2D image</span>
+                        <span class="n">calcsize</span> <span class="o">*=</span> <span class="n">dim3</span>
+                        <span class="bp">self</span><span class="o">.</span><span class="n">dims</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dim3</span><span class="p">)</span>
+                    <span class="n">iDim</span> <span class="o">+=</span> <span class="mi">1</span>
+
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"No Dim_3 -> it is a 2D image"</span><span class="p">)</span>
+                <span class="n">iDim</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">if</span> <span class="s">"DATATYPE"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="o">=</span> <span class="n">DATA_TYPES</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'DATATYPE'</span><span class="p">]]]</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Defaulting type to uint16"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class= [...]
+        <span class="n">calcsize</span> <span class="o">*=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span>
+        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">calcsize</span>
+        <span class="k">elif</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">!=</span> <span class="n">calcsize</span><span class="p">):</span>
+            <span class="k">if</span> <span class="p">(</span><span class="s">"COMPRESSION"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><spa [...]
+                <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">"Mismatch between the expected size </span><span class="si">%s</span><span class="s"> and the calculated one </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">,</span> <span class="n">calcsize</ [...]
+                <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">calcsize</span>
+
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dims</span><span class="p">):</span>
+            <span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">"dim</span><span class="si">%i</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">),</span> <span class="n">n</span><span class="p">)</span>
+
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span>
+
+</div>
+<div class="viewcode-block" id="Frame.swap_needed"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.Frame.swap_needed">[docs]</a>    <span class="k">def</span> <span class="nf">swap_needed</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Decide if we need to byteswap</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="p">(</span><span class="s">'Low'</span>  <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'BYTEORDER'</span><span class="p">]]</span> <span class="ow">and</span> <span class="n">numpy</span><span class="o">.</span><span c [...]
+           <span class="p">(</span><span class="s">'High'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'BYTEORDER'</span><span class="p">]]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">numpy</span><span class="o">.</span><s [...]
+            <span class="k">return</span> <span class="bp">False</span>
+        <span class="k">if</span> <span class="p">(</span><span class="s">'High'</span>  <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'BYTEORDER'</span><span class="p">]]</span> <span class="ow">and</span> <span class="n">numpy</span><span class="o">.</span><span  [...]
+           <span class="p">(</span><span class="s">'Low'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'BYTEORDER'</span><span class="p">]]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">numpy</span><span class="o">.</span><sp [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">8</span><span class="p">]:</span>
+                <span class="k">return</span> <span class="bp">True</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">return</span> <span class="bp">False</span>
+
+</div>
+<div class="viewcode-block" id="Frame.getData"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.Frame.getData">[docs]</a>    <span class="k">def</span> <span class="nf">getData</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Unpack a binary blob according to the specification given in the header</span>
+
+<span class="sd">        @return: dataset as numpy.ndarray</span>
+<span class="sd">        """</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span>
+        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="k">if</span> <span class="s">"DATATYPE"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="o">=</span> <span class="n">DATA_TYPES</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">"DATATYPE"</span><span class="p">]]]</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span>
+            <span class="n">dims</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dims</span><span class="p">[:]</span>
+            <span class="n">dims</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+            <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">lock</span><span class="p">:</span>
+                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">closed</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"file: </span><span class="si">%s</span><span class="s"> from </span><span class="si">%s</span><span class="s"> is closed. Cannot read data."</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="p">,</span> <span class="bp">self</span><span class [...]
+                    <span class="k">return</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">start</span><span class="p">)</span>
+                    <span class="n">fileData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">)</span>
+
+            <span class="k">if</span> <span class="p">(</span><span class="s">"COMPRESSION"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">):</span>
+                <span class="n">compression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">"COMPRESSION"</span><span class="p">]]</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+                <span class="n">uncompressed_size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span>
+                <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">dims</span><span class="p">:</span>
+                    <span class="n">uncompressed_size</span> <span class="o">*=</span> <span class="n">i</span>
+                <span class="k">if</span> <span class="s">"OFFSET"</span> <span class="ow">in</span> <span class="n">compression</span> <span class="p">:</span>
+                    <span class="k">try</span><span class="p">:</span>
+                        <span class="kn">import</span> <span class="nn">byte_offset</span><span class="c">#IGNORE:F0401</span>
+                    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+                        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Unimplemented compression scheme:  </span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">)"</span> <span class="o">%</span> <span class="p">(</span><span class="n">compression</span><span class="p">,</span> <span class="n">error</span><span class="p">))</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">myData</span> <span class="o">=</span> <span class="n">byte_offset</span><span class="o">.</span><span class="n">analyseCython</span><span class="p">(</span><span class="n">fileData</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">uncompressed_size</span><span class="p">)</span>
+                        <span class="n">rawData</span> <span class="o">=</span> <span class="n">myData</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+                        <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">uncompressed_size</span>
+                <span class="k">elif</span> <span class="n">compression</span> <span class="o">==</span> <span class="s">"NONE"</span><span class="p">:</span>
+                    <span class="n">rawData</span> <span class="o">=</span> <span class="n">fileData</span>
+                <span class="k">elif</span> <span class="s">"GZIP"</span> <span class="ow">in</span> <span class="n">compression</span><span class="p">:</span>
+                    <span class="n">rawData</span> <span class="o">=</span> <span class="n">decGzip</span><span class="p">(</span><span class="n">fileData</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">uncompressed_size</span>
+                <span class="k">elif</span> <span class="s">"BZ"</span> <span class="ow">in</span> <span class="n">compression</span> <span class="p">:</span>
+                    <span class="n">rawData</span> <span class="o">=</span> <span class="n">decBzip2</span><span class="p">(</span><span class="n">fileData</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">uncompressed_size</span>
+                <span class="k">elif</span> <span class="s">"Z"</span> <span class="ow">in</span> <span class="n">compression</span> <span class="p">:</span>
+                    <span class="n">rawData</span> <span class="o">=</span> <span class="n">decZlib</span><span class="p">(</span><span class="n">fileData</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">uncompressed_size</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Unknown compression scheme </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">compression</span><span class="p">)</span>
+                    <span class="n">rawData</span> <span class="o">=</span> <span class="n">fileData</span>
+
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">rawData</span> <span class="o">=</span> <span class="n">fileData</span>
+
+            <span class="n">expected</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span>
+            <span class="n">obtained</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">rawData</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">expected</span> <span class="o">></span> <span class="n">obtained</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Data stream is incomplete: </span><span class="si">%s</span><span class="s"> < expected </span><span class="si">%s</span><span class="s"> bytes"</span> <span class="o">%</span> <span class="p">(</span><span class="n">obtained</span><span class="p">,</span> <span class="n">expected</span><span class="p">))</span>
+                <span class="n">rawData</span> <span class="o">+=</span> <span class="s">"</span><span class="se">\x00</span><span class="s">"</span> <span class="o">*</span> <span class="p">(</span><span class="n">expected</span> <span class="o">-</span> <span class="n">obtained</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="n">expected</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="n">rawData</span><span class="p">):</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">"Data stream contains trailing junk : </span><span class="si">%s</span><span class="s"> > expected </span><span class="si">%s</span><span class="s"> bytes"</span> <span class="o">%</span> <span class="p">(</span><span class="n">obtained</span><span class="p">,</span> <span class="n">expected</span><span class="p">))</span>
+                <span class="n">rawData</span> <span class="o">=</span> <span class="n">rawData</span><span class="p">[:</span><span class="n">expected</span><span class="p">]</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">swap_needed</span><span class="p">():</span>
+                <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">rawData</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span><span class="o">.</span><span class="n">reshape</span><span class="p">( [...]
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">rawData</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="nb">tuple</span><span class="p">(</span><span class="n">dims [...]
+            <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="o">=</span> <span class="n">data</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">type</span>
+        <span class="k">return</span> <span class="n">data</span></div>
+<div class="viewcode-block" id="Frame.setData"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.Frame.setData">[docs]</a>    <span class="k">def</span> <span class="nf">setData</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">npa</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""Setter for data in edf frame"""</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_data</span> <span class="o">=</span> <span class="n">npa</span></div>
+    <span class="n">data</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getData</span><span class="p">,</span> <span class="n">setData</span><span class="p">,</span> <span class="s">"property: (edf)frame.data, uncompress the datablock when needed"</span><span class="p">)</span>
+<div class="viewcode-block" id="Frame.getByteCode"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.Frame.getByteCode">[docs]</a>    <span class="k">def</span> <span class="nf">getByteCode</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">type</span>
+
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span></div>
+<div class="viewcode-block" id="Frame.setByteCode"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.Frame.setByteCode">[docs]</a>    <span class="k">def</span> <span class="nf">setByteCode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_iVal</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_bytecode</span> <span class="o">=</span> <span class="n">_iVal</span></div>
+    <span class="n">bytecode</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getByteCode</span><span class="p">,</span> <span class="n">setByteCode</span><span class="p">)</span>
+
+<div class="viewcode-block" id="Frame.getEdfBlock"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.Frame.getEdfBlock">[docs]</a>    <span class="k">def</span> <span class="nf">getEdfBlock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">force_type</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">fit2dMode</span><span class="o">=</span><span class="bp">False</span><span [...]
+        <span class="sd">"""</span>
+<span class="sd">        @param force_type: type of the dataset to be enforced like "float64" or "uint16"</span>
+<span class="sd">        @type force_type: string or numpy.dtype</span>
+<span class="sd">        @param fit2dMode: enforce compatibility with fit2d and starts countimg number of images at 1</span>
+<span class="sd">        @type fit2dMode: boolean</span>
+<span class="sd">        @return: ascii header block</span>
+<span class="sd">        @rtype: python string with the concatenation of the ascii header and the binary data block</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">force_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">force_type</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span>
+        <span class="n">fit2dMode</span> <span class="o">=</span> <span class="nb">bool</span><span class="p">(</span><span class="n">fit2dMode</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">KEY</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+            <span class="k">if</span> <span class="n">KEY</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="n">KEY</span><span class="p">]</span> <span class="o">=</span> <span class="n">key</span>
+            <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+
+        <span class="n">header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+        <span class="n">header_keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">[:]</span>
+        <span class="n">capsHeader</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+
+        <span class="n">listHeader</span> <span class="o">=</span> <span class="p">[</span><span class="s">"{</span><span class="se">\n</span><span class="s">"</span><span class="p">]</span>
+<span class="c">#        First of all clean up the headers:</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">capsHeader</span><span class="p">:</span>
+            <span class="k">if</span> <span class="s">"DIM_"</span> <span class="ow">in</span> <span class="n">i</span><span class="p">:</span>
+                <span class="n">header</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">capsHeader</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+                <span class="n">header_keys</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">capsHeader</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+        <span class="k">for</span> <span class="n">KEY</span> <span class="ow">in</span> <span class="p">[</span><span class="s">"SIZE"</span><span class="p">,</span> <span class="s">"EDF_BINARYSIZE"</span><span class="p">,</span> <span class="s">"EDF_HEADERSIZE"</span><span class="p">,</span> <span class="s">"BYTEORDER"</span><span class="p">,</span> <span class="s">"DATATYPE"</span><span class="p">,</span> <span class="s">"HEADERID [...]
+            <span class="k">if</span> <span class="n">KEY</span> <span class="ow">in</span> <span class="n">capsHeader</span><span class="p">:</span>
+                <span class="n">header</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">capsHeader</span><span class="p">[</span><span class="n">KEY</span><span class="p">])</span>
+                <span class="n">header_keys</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">capsHeader</span><span class="p">[</span><span class="n">KEY</span><span class="p">])</span>
+        <span class="k">if</span> <span class="s">"EDF_DATABLOCKID"</span> <span class="ow">in</span> <span class="n">capsHeader</span><span class="p">:</span>
+            <span class="n">header_keys</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">"EDF_DATABLOCKID"</span><span class="p">])</span>
+            <span class="c">#but do not remove the value from dict, instead reset the key ...</span>
+            <span class="k">if</span> <span class="n">capsHeader</span><span class="p">[</span><span class="s">"EDF_DATABLOCKID"</span><span class="p">]</span> <span class="o">!=</span> <span class="s">"EDF_DataBlockID"</span><span class="p">:</span>
+                <span class="n">header</span><span class="p">[</span><span class="s">"EDF_DataBlockID"</span><span class="p">]</span> <span class="o">=</span> <span class="n">header</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">"EDF_DATABLOCKID"</span><span class="p">])</span>
+                <span class="n">capsHeader</span><span class="p">[</span><span class="s">"EDF_DATABLOCKID"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"EDF_DataBlockID"</span>
+
+<span class="c">#            Then update static headers freshly deleted</span>
+        <span class="n">header_keys</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">"Size"</span><span class="p">)</span>
+        <span class="n">header</span><span class="p">[</span><span class="s">"Size"</span><span class="p">]</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+        <span class="n">header_keys</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">"HeaderID"</span><span class="p">)</span>
+        <span class="n">header</span><span class="p">[</span><span class="s">"HeaderID"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"EH:</span><span class="si">%06d</span><span class="s">:000000:000000"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iFrame</span> <span class="o">+</span> <span class="n">fit2dMode</span><span class="p">)</span>
+        <span class="n">header_keys</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">"Image"</span><span class="p">)</span>
+        <span class="n">header</span><span class="p">[</span><span class="s">"Image"</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iFrame</span> <span class="o">+</span> <span class="n">fit2dMode</span><span class="p">)</span>
+
+        <span class="n">dims</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
+        <span class="n">nbdim</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">dims</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">dims</span><span class="p">:</span>
+            <span class="n">key</span> <span class="o">=</span> <span class="s">"Dim_</span><span class="si">%i</span><span class="s">"</span> <span class="o">%</span> <span class="n">nbdim</span>
+            <span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span>
+            <span class="n">header_keys</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span>
+            <span class="n">nbdim</span> <span class="o">-=</span> <span class="mi">1</span>
+        <span class="n">header_keys</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">"DataType"</span><span class="p">)</span>
+        <span class="n">header</span><span class="p">[</span><span class="s">"DataType"</span><span class="p">]</span> <span class="o">=</span> <span class="n">NUMPY_EDF_DTYPE</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">dtype</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="p">))]</span>
+        <span class="n">header_keys</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">"ByteOrder"</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">numpy</span><span class="o">.</span><span class="n">little_endian</span><span class="p">:</span>
+            <span class="n">header</span><span class="p">[</span><span class="s">"ByteOrder"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"LowByteFirst"</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">header</span><span class="p">[</span><span class="s">"ByteOrder"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"HighByteFirst"</span>
+        <span class="n">approxHeaderSize</span> <span class="o">=</span> <span class="mi">100</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">header</span><span class="p">:</span>
+            <span class="n">approxHeaderSize</span> <span class="o">+=</span> <span class="mi">7</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span>
+        <span class="n">approxHeaderSize</span> <span class="o">=</span> <span class="n">BLOCKSIZE</span> <span class="o">*</span> <span class="p">(</span><span class="n">approxHeaderSize</span> <span class="o">//</span> <span class="n">BLOCKSIZE</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
+        <span class="n">header_keys</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">"EDF_HeaderSize"</span><span class="p">)</span>
+        <span class="n">header</span><span class="p">[</span><span class="s">"EDF_HeaderSize"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"</span><span class="si">%5s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">approxHeaderSize</span><span class="p">)</span>
+        <span class="n">header_keys</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">"EDF_BinarySize"</span><span class="p">)</span>
+        <span class="n">header</span><span class="p">[</span><span class="s">"EDF_BinarySize"</span><span class="p">]</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+        <span class="n">header_keys</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">"EDF_DataBlockID"</span><span class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">"EDF_DataBlockID"</span> <span class="ow">in</span> <span class="n">header</span><span class="p">:</span>
+            <span class="n">header</span><span class="p">[</span><span class="s">"EDF_DataBlockID"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"</span><span class="si">%i</span><span class="s">.Image.Psd"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iFrame</span> <span class="o">+</span> <span class="n">fit2dMode</span><span class="p">)</span>
+        <span class="n">preciseSize</span> <span class="o">=</span> <span class="mi">4</span> <span class="c">#2 before {\n 2 after }\n</span>
+        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">header_keys</span><span class="p">:</span>
+            <span class="c">#Escape keys or values that are no ascii</span>
+            <span class="n">strKey</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">isAscii</span><span class="p">(</span><span class="n">strKey</span><span class="p">,</span> <span class="n">listExcluded</span><span class="o">=</span><span class="p">[</span><span class="s">"}"</span><span class="p">,</span> <span class="s">"{"</span><span class="p">]):</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Non ascii key </span><span class="si">%s</span><span class="s">, skipping"</span> <span class="o">%</span> <span class="n">strKey</span><span class="p">)</span>
+                <span class="k">continue</span>
+            <span class="n">strValue</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">isAscii</span><span class="p">(</span><span class="n">strValue</span><span class="p">,</span> <span class="n">listExcluded</span><span class="o">=</span><span class="p">[</span><span class="s">"}"</span><span class="p">,</span> <span class="s">"{"</span><span class="p">]):</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Non ascii value </span><span class="si">%s</span><span class="s">, skipping"</span> <span class="o">%</span> <span class="n">strValue</span><span class="p">)</span>
+                <span class="k">continue</span>
+            <span class="n">line</span> <span class="o">=</span> <span class="n">strKey</span> <span class="o">+</span> <span class="s">" = "</span> <span class="o">+</span> <span class="n">strValue</span> <span class="o">+</span> <span class="s">" ;</span><span class="se">\n</span><span class="s">"</span>
+            <span class="n">preciseSize</span> <span class="o">+=</span> <span class="nb">len</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
+            <span class="n">listHeader</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">preciseSize</span> <span class="o">></span> <span class="n">approxHeaderSize</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"I expected the header block only at </span><span class="si">%s</span><span class="s"> in fact it is </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">approxHeaderSize</span><span class="p">,</span> <span class="n">preciseSize</span><span class="p">))</span>
+            <span class="k">for</span>  <span class="n">idx</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">listHeader</span><span class="p">[:]):</span>
+                <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"EDF_HeaderSize"</span><span class="p">):</span>
+                    <span class="n">headerSize</span> <span class="o">=</span> <span class="n">BLOCKSIZE</span> <span class="o">*</span> <span class="p">(</span><span class="n">preciseSize</span> <span class="o">//</span> <span class="n">BLOCKSIZE</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
+                    <span class="n">newline</span> <span class="o">=</span> <span class="s">"EDF_HeaderSize = </span><span class="si">%5s</span><span class="s"> ;</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">headerSize</span>
+                    <span class="n">delta</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">newline</span><span class="p">)</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
+                    <span class="k">if</span> <span class="p">(</span><span class="n">preciseSize</span> <span class="o">//</span> <span class="n">BLOCKSIZE</span><span class="p">)</span> <span class="o">!=</span> <span class="p">((</span><span class="n">preciseSize</span> <span class="o">+</span> <span class="n">delta</span><span class="p">)</span> <span class="o">//</span> <span class="n">BLOCKSIZE</span><span class="p">):</span>
+                        <span class="n">headerSize</span> <span class="o">=</span> <span class="n">BLOCKSIZE</span> <span class="o">*</span> <span class="p">((</span><span class="n">preciseSize</span> <span class="o">+</span> <span class="n">delta</span><span class="p">)</span> <span class="o">//</span> <span class="n">BLOCKSIZE</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
+                        <span class="n">newline</span> <span class="o">=</span> <span class="s">"EDF_HeaderSize = </span><span class="si">%5s</span><span class="s"> ;</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">headerSize</span>
+                    <span class="n">preciseSize</span> <span class="o">=</span> <span class="n">preciseSize</span> <span class="o">+</span> <span class="n">delta</span>
+                    <span class="n">listHeader</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> <span class="o">=</span> <span class="n">newline</span>
+                    <span class="k">break</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">headerSize</span> <span class="o">=</span> <span class="n">approxHeaderSize</span>
+        <span class="n">listHeader</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">" "</span><span class="o">*</span><span class="p">(</span><span class="n">headerSize</span> <span class="o">-</span> <span class="n">preciseSize</span><span class="p">)</span> <span class="o">+</span> <span class="s">"}</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span>
+        <span class="k">return</span> <span class="s">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">listHeader</span><span class="p">)</span> <span class="o">+</span> <span class="n">data</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+
+
+</div></div>
+<div class="viewcode-block" id="edfimage"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage">[docs]</a><span class="k">class</span> <span class="nc">edfimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">""" Read and try to write the ESRF edf data format """</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">data</span><span class="o">=</span><span class="bp">None</span> <span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">header_keys</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">frames</span>< [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filesize</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">dim</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span> <span class="c">#IGNORE:W0703</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Data don't look like a numpy array (</span><span class="si">%s</span><span class="s">), resetting all!!"</span> <span class="o">%</span> <span class="n">error</span><span class="p">)</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="bp">None</span>
+            <span class="n">dim</span> <span class="o">=</span> <span class="mi">0</span>
+            <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">header</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">dim</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
+            <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">header</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">dim</span> <span class="o">==</span> <span class="mi">1</span> <span class="p">:</span>
+            <span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
+            <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">header</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">dim</span> <span class="o">==</span> <span class="mi">3</span> <span class="p">:</span>
+            <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="p">:,</span> <span class="p">:],</span> <span class="n">header</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">dim</span> <span class="o">==</span> <span class="mi">4</span> <span class="p">:</span>
+            <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="p">:,</span> <span class="p">:],</span> <span class="n">header</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">dim</span> <span class="o">==</span> <span class="mi">5</span> <span class="p">:</span>
+            <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="p">:,</span> <span class="p">:],</span> <span class="n">header</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">frames</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">frame</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">,</span>
+                          <span class="n">header_keys</span><span class="o">=</span><span class="n">header_keys</span> <span class="p">,</span>
+                          <span class="n">number</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[</span><span class="n">frame</span><span class="p">]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="n">frames</span>
+
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="edfimage.checkHeader"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.checkHeader">[docs]</a>    <span class="k">def</span> <span class="nf">checkHeader</span><span class="p">(</span><span class="n">header</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Empty for fabioimage but may be populated by others classes</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">header</span><span class="p">)</span> <span class="o">!=</span> <span class="n">types</span><span class="o">.</span><span class="n">DictionaryType</span><span class="p">:</span>
+            <span class="k">return</span> <span class="p">{}</span>
+        <span class="n">new</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">header</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+            <span class="n">new</span><span class="p">[</span><span class="n">toAscii</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="s">";{}"</span><span class="p">)]</span> <span class="o">=</span> <span class="n">toAscii</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s">";{}"</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">new</span>
+</div>
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">_readHeaderBlock</span><span class="p">(</span><span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in a header in some EDF format from an already open file</span>
+
+<span class="sd">        @param infile: file object open in read mode</span>
+<span class="sd">        @return: string (or None if no header was found.</span>
+<span class="sd">        """</span>
+        <span class="n">MAX_HEADER_SIZE</span> <span class="o">=</span> <span class="n">BLOCKSIZE</span> <span class="o">*</span> <span class="mi">20</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">BLOCKSIZE</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">block</span><span class="p">)</span> <span class="o"><</span> <span class="n">BLOCKSIZE</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Under-short header: only </span><span class="si">%i</span><span class="s"> bytes in </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">block</span><span class="p">),</span> <span class="n">infile</span><span class="o">.</span [...]
+            <span class="k">return</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">block</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"{"</span><span class="p">)</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span> <span class="p">:</span>
+            <span class="c"># This does not look like an edf file</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"no opening {. Corrupt header of EDF file </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">infile</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+            <span class="k">return</span>
+        <span class="k">if</span> <span class="s">"EDF_HeaderSize"</span> <span class="ow">in</span> <span class="n">block</span><span class="p">:</span>
+            <span class="n">start</span> <span class="o">=</span> <span class="n">block</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s">"EDF_HeaderSize"</span><span class="p">)</span>
+            <span class="n">chunk</span> <span class="o">=</span> <span class="n">block</span><span class="p">[</span><span class="n">start</span><span class="p">:]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"="</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">new_max_header_size</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">chunk</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">";"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
+            <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Unable to read header size in </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">chunk</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">new_max_header_size</span> <span class="o">></span> <span class="n">MAX_HEADER_SIZE</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">"Redefining MAX_HEADER_SIZE to </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">new_max_header_size</span><span class="p">)</span>
+                    <span class="n">MAX_HEADER_SIZE</span> <span class="o">=</span> <span class="n">new_max_header_size</span>
+        <span class="k">while</span> <span class="s">'}'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">block</span><span class="p">:</span>
+            <span class="n">block</span> <span class="o">=</span> <span class="n">block</span> <span class="o">+</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">BLOCKSIZE</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">block</span><span class="p">)</span> <span class="o">></span> <span class="n">MAX_HEADER_SIZE</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Runaway header in EDF file MAX_HEADER_SIZE: </span><span class="si">%s</span><span class="s"> </span><span class="se">\n</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">MAX_HEADER_SIZE</span><span class="p">,</span> <span class="n">block</span><span class="p">))</span>
+                <span class="k">return</span>
+        <span class="n">start</span> <span class="o">=</span> <span class="n">block</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"{"</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
+        <span class="n">end</span> <span class="o">=</span> <span class="n">block</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"}"</span><span class="p">)</span>
+
+        <span class="c"># Now it is essential to go to the start of the binary part</span>
+        <span class="k">if</span> <span class="n">block</span><span class="p">[</span><span class="n">end</span><span class="p">:</span> <span class="n">end</span> <span class="o">+</span> <span class="mi">3</span><span class="p">]</span> <span class="o">==</span> <span class="s">"}</span><span class="se">\r\n</span><span class="s">"</span><span class="p">:</span>
+            <span class="n">offset</span> <span class="o">=</span> <span class="n">end</span> <span class="o">+</span> <span class="mi">3</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">block</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">block</span><span class="p">[</span><span class="n">end</span><span class="p">:</span> <span class="n">end</span> <span class="o">+</span> <span class="mi">2</span><span class="p">]</span> <span class="o">==</span> <span class="s">"}</span><span class="se">\n</span><span class="s">"</span><span class="p">:</span>
+            <span class="n">offset</span> <span class="o">=</span> <span class="n">end</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">block</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Unable to locate start of the binary section"</span><span class="p">)</span>
+            <span class="n">offset</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="n">offset</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">offset</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_CUR</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">block</span><span class="p">[</span><span class="n">start</span><span class="p">:</span><span class="n">end</span><span class="p">]</span>
+
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read all headers in a file and populate self.header</span>
+<span class="sd">        data is not yet populated</span>
+<span class="sd">        @type infile: file object open in read mode</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">bContinue</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">while</span> <span class="n">bContinue</span><span class="p">:</span>
+            <span class="n">block</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_readHeaderBlock</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">block</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="n">bContinue</span> <span class="o">=</span> <span class="bp">False</span>
+                <span class="k">break</span>
+            <span class="n">frame</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">(</span><span class="n">number</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">nframes</span><span class="p">)</span>
+            <span class="n">size</span> <span class="o">=</span> <span class="n">frame</span><span class="o">.</span><span class="n">parseheader</span><span class="p">(</span><span class="n">block</span><span class="p">)</span>
+            <span class="n">frame</span><span class="o">.</span><span class="n">file</span> <span class="o">=</span> <span class="n">infile</span>
+            <span class="n">frame</span><span class="o">.</span><span class="n">start</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+            <span class="n">frame</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">size</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">+=</span> <span class="p">[</span><span class="n">frame</span><span class="p">]</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">size</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_CUR</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"infile is </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">infile</span><span class="p">)</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Position is </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">infile</span><span class="o">.</span><span class="n">tell</span><span class="p">())</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"size is </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">size</span><span class="p">)</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"It seams this error occurs under windows when reading a (large-) file over network: </span><span class="si">%s</span><span class="s"> "</span><span class="p">,</span> <span class="n">error</span><span class="p">)</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
+
+            <span class="k">if</span>  <span class="n">frame</span><span class="o">.</span><span class="n">start</span> <span class="o">+</span> <span class="n">size</span> <span class="o">></span> <span class="n">infile</span><span class="o">.</span><span class="n">size</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Non complete datablock: got </span><span class="si">%s</span><span class="s">, expected </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">size</span> <span class="o">-</span> <span class="n">frame</span><span class=" [...]
+                <span class="n">bContinue</span> <span class="o">=</span> <span class="bp">False</span>
+                <span class="k">break</span>
+
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">frame</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+            <span class="n">missing</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">MINIMUM_KEYS</span><span class="p">:</span>
+                <span class="k">if</span> <span class="n">item</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">frame</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">:</span>
+                    <span class="n">missing</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">"EDF file </span><span class="si">%s</span><span class="s"> frame </span><span class="si">%i</span><span class="s"> misses mandatory keys: </span><span class="si">%s</span><span class="s"> "</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p"> [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">=</span> <span class="mi">0</span>
+
+
+<div class="viewcode-block" id="edfimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in header into self.header and</span>
+<span class="sd">            the data   into self.data</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">fname</span>
+
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">frame</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">pass</span>
+        <span class="k">elif</span> <span class="n">frame</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span><span class="p">:</span>
+            <span class="bp">self</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getframe</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Reading file </span><span class="si">%s</span><span class="s"> You requested frame </span><span class="si">%s</span><span class="s"> but only </span><span class="si">%s</span><span class="s"> frames are available"</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="p">,</spa [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="c"># ensure the PIL image is reset</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div>
+<div class="viewcode-block" id="edfimage.swap_needed"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.swap_needed">[docs]</a>    <span class="k">def</span> <span class="nf">swap_needed</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Decide if we need to byteswap</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="p">(</span><span class="s">'Low'</span>  <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'BYTEORDER'</span><span class="p">]]</span> <span class="ow">and</span> <span class="n">numpy</span><span class="o">.</span><span c [...]
+           <span class="p">(</span><span class="s">'High'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'BYTEORDER'</span><span class="p">]]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">numpy</span><span class="o">.</span><s [...]
+            <span class="k">return</span> <span class="bp">False</span>
+        <span class="k">if</span> <span class="p">(</span><span class="s">'High'</span>  <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'BYTEORDER'</span><span class="p">]]</span> <span class="ow">and</span> <span class="n">numpy</span><span class="o">.</span><span  [...]
+           <span class="p">(</span><span class="s">'Low'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">capsHeader</span><span class="p">[</span><span class="s">'BYTEORDER'</span><span class="p">]]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">numpy</span><span class="o">.</span><sp [...]
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">8</span><span class="p">]:</span>
+                <span class="k">return</span> <span class="bp">True</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">return</span> <span class="bp">False</span>
+</div>
+<div class="viewcode-block" id="edfimage.unpack"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.unpack">[docs]</a>    <span class="k">def</span> <span class="nf">unpack</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Unpack a binary blob according to the specification given in the header and return the dataset</span>
+
+<span class="sd">        @return: dataset as numpy.ndarray</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">getData</span><span class="p">()</span>
+
+</div>
+<div class="viewcode-block" id="edfimage.getframe"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getframe">[docs]</a>    <span class="k">def</span> <span class="nf">getframe</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">):</span>
+        <span class="sd">""" returns the file numbered 'num' in the series as a fabioimage """</span>
+        <span class="n">newImage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Single frame EDF; having fabioimage default behavour: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">num</span><span class="p">)</span>
+            <span class="n">newImage</span> <span class="o">=</span> <span class="n">fabioimage</span><span class="o">.</span><span class="n">getframe</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">num</span> <span class="ow">in</span> <span class="nb">xrange</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nframes</span><span class="p">):</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Multi frame EDF; having edfimage specific behavour: </span><span class="si">%s</span><span class="s">/</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">num</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span><span  [...]
+            <span class="n">newImage</span> <span class="o">=</span> <span class="n">edfimage</span><span class="p">(</span><span class="n">frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">)</span>
+            <span class="n">newImage</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">=</span> <span class="n">num</span>
+            <span class="n">newImage</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">filename</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">txt</span> <span class="o">=</span> <span class="s">"Cannot access frame: </span><span class="si">%s</span><span class="s">/</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">num</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">txt</span><span class="p">)</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">"edfimage.getframe:"</span> <span class="o">+</span> <span class="n">txt</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">newImage</span>
+
+</div>
+<div class="viewcode-block" id="edfimage.previous"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.previous">[docs]</a>    <span class="k">def</span> <span class="nf">previous</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the previous file in the series as a fabioimage """</span>
+        <span class="n">newImage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">newImage</span> <span class="o">=</span> <span class="n">fabioimage</span><span class="o">.</span><span class="n">previous</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">newFrameId</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">-</span> <span class="mi">1</span>
+            <span class="n">newImage</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getframe</span><span class="p">(</span><span class="n">newFrameId</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">newImage</span>
+
+</div>
+<div class="viewcode-block" id="edfimage.next"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.next">[docs]</a>    <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the next file in the series as a fabioimage """</span>
+        <span class="n">newImage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">newImage</span> <span class="o">=</span> <span class="n">fabioimage</span><span class="o">.</span><span class="n">next</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">newFrameId</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">+</span> <span class="mi">1</span>
+            <span class="n">newImage</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getframe</span><span class="p">(</span><span class="n">newFrameId</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">newImage</span>
+
+</div>
+<div class="viewcode-block" id="edfimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">force_type</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">fit2dMode</span><span class="o">= [...]
+        <span class="sd">"""</span>
+<span class="sd">        Try to write a file</span>
+<span class="sd">        check we can write zipped also</span>
+<span class="sd">        mimics that fabian was writing uint16 (we sometimes want floats)</span>
+
+<span class="sd">        @param force_type: can be numpy.uint16 or simply "float"</span>
+<span class="sd">        @return: None</span>
+
+<span class="sd">        """</span>
+
+        <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">"wb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">frame</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+                <span class="n">frame</span><span class="o">.</span><span class="n">iFrame</span> <span class="o">=</span> <span class="n">i</span>
+                <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">frame</span><span class="o">.</span><span class="n">getEdfBlock</span><span class="p">(</span><span class="n">force_type</span><span class="o">=</span><span class="n">force_type</span><span class="p">,</span> <span class="n">fit2dMode</span><span class="o">=</span><span class="n">fit2dMode</span><span class="p">))</span>
+
+</div>
+<div class="viewcode-block" id="edfimage.appendFrame"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.appendFrame">[docs]</a>    <span class="k">def</span> <span class="nf">appendFrame</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="bp">None</span><span clas [...]
+        <span class="sd">"""</span>
+<span class="sd">        Method used add a frame to an EDF file</span>
+<span class="sd">        @param frame: frame to append to edf image</span>
+<span class="sd">        @type frame: instance of Frame</span>
+<span class="sd">        @return: None</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="n">Frame</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Frame</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">header</span><span class="p">))</span>
+
+</div>
+<div class="viewcode-block" id="edfimage.deleteFrame"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.deleteFrame">[docs]</a>    <span class="k">def</span> <span class="nf">deleteFrame</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frameNb</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Method used to remove a frame from an EDF image. by default the last one is removed.</span>
+<span class="sd">        @param frameNb: frame number to remove, by  default the last.</span>
+<span class="sd">        @type frameNb: integer</span>
+<span class="sd">        @return: None</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">frameNb</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">frameNb</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="edfimage.fastReadData"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.fastReadData">[docs]</a>    <span class="k">def</span> <span class="nf">fastReadData</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        This is a special method that will read and return the data from another file ...</span>
+<span class="sd">        The aim is performances, ... but only supports uncompressed files. </span>
+<span class="sd">         </span>
+<span class="sd">        @return: data from another file using positions from current edfimage</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">filename</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
+            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"edfimage.fastReadData is only valid with another file: </span><span class="si">%s</span><span class="s"> does not exist"</span> <span class="o">%</span> <span class="p">(</span><span class="n">filename</span><span class="p">))</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="n">frame</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span>
+        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span><span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+            <span class="n">f</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">frame</span><span class="o">.</span><span class="n">start</span><span class="p">)</span>
+            <span class="n">raw</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">frame</span><span class="o">.</span><span class="n">size</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">raw</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span><span class="p">)</span>
+            <span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">err</span> <span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"unable to convert file content to numpy array: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">err</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">data</span>
+</div>
+<div class="viewcode-block" id="edfimage.fastReadROI"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.fastReadROI">[docs]</a>    <span class="k">def</span> <span class="nf">fastReadROI</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">coords</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Method reading Region of Interest of another file  based on metadata available in current edfimage.</span>
+<span class="sd">        The aim is performances, ... but only supports uncompressed files.</span>
+<span class="sd">        </span>
+<span class="sd">        @return: ROI-data from another file using positions from current edfimage</span>
+<span class="sd">        @rtype: numpy 2darray</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">filename</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
+            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"edfimage.fastReadData is only valid with another file: </span><span class="si">%s</span><span class="s"> does not exist"</span> <span class="o">%</span> <span class="p">(</span><span class="n">filename</span><span class="p">))</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="n">frame</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span>
+
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
+            <span class="n">slice1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">make_slice</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nb">slice</span><span class="p">)</span> <span class="ow">and</span> \
+                                  <span class="nb">isinstance</span><span class="p">(</span><span class="n">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nb">slice</span><span class="p">):</span>
+            <span class="n">slice1</span> <span class="o">=</span> <span class="n">coords</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">'readROI: Unable to understand Region Of Interest: got </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="n">coords</span><span class="p">)</span>
+            <span class="k">return</span>
+        <span class="n">d1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+        <span class="n">start0</span> <span class="o">=</span> <span class="n">slice1</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">start</span>
+        <span class="n">start1</span> <span class="o">=</span> <span class="n">slice1</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">start</span>
+        <span class="n">slice2</span> <span class="o">=</span> <span class="p">(</span><span class="nb">slice</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">slice1</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">stop</span> <span class="o">-</span> <span class="n">start0</span><span class="p">,</span> <span class="n">slice1</span><span class="p">[</span><span class="mi" [...]
+                   <span class="nb">slice</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">slice1</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">stop</span> <span class="o">-</span> <span class="n">start1</span><span class="p">,</span> <span class="n">slice1</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class [...]
+        <span class="n">start</span> <span class="o">=</span> <span class="n">frame</span><span class="o">.</span><span class="n">start</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">*</span> <span class="p">(</span><span class="n">d1</span> <span class="o">*</span> <span class="n">start0</span> <span class="o">+</span> <span class="n">start1</span><span class="p">)</span>
+        <span class="n">size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">*</span> <span class="p">((</span><span class="n">slice2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">stop</span><span class="p">)</span> <span class="o">*</span> <span class="n">d1</span><span class="p">)</span>
+        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span><span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+            <span class="n">f</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">start</span><span class="p">)</span>
+            <span class="n">raw</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">size</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">raw</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span><span class="p">)</span>
+            <span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">d1</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">err</span> <span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"unable to convert file content to numpy array: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">err</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">data</span><span class="p">[</span><span class="n">slice2</span><span class="p">]</span>
+
+
+<span class="c">################################################################################</span>
+<span class="c"># Properties definition for header, data, header_keys and capsHeader</span>
+<span class="c">################################################################################</span></div>
+<div class="viewcode-block" id="edfimage.getNbFrames"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getNbFrames">[docs]</a>    <span class="k">def</span> <span class="nf">getNbFrames</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Getter for number of frames</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">)</span></div>
+<div class="viewcode-block" id="edfimage.setNbFrames"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.setNbFrames">[docs]</a>    <span class="k">def</span> <span class="nf">setNbFrames</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Setter for number of frames ... should do nothing. Here just to avoid bugs</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">val</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"trying to set the number of frames "</span><span class="p">)</span></div>
+    <span class="n">nframes</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getNbFrames</span><span class="p">,</span> <span class="n">setNbFrames</span><span class="p">,</span> <span class="s">"property: number of frames in EDF file"</span><span class="p">)</span>
+
+
+<div class="viewcode-block" id="edfimage.getHeader"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getHeader">[docs]</a>    <span class="k">def</span> <span class="nf">getHeader</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Getter for the headers. used by the property header,</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">header</span></div>
+<div class="viewcode-block" id="edfimage.setHeader"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.setHeader">[docs]</a>    <span class="k">def</span> <span class="nf">setHeader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_dictHeader</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Enforces the propagation of the header to the list of frames</span>
+<span class="sd">        """</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="n">_dictHeader</span>
+        <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[</span><span class="n">Frame</span><span class="p">(</span><span class="n">header</span><span class="o">=</span><span class="n">_dictHeader</span><span class="p">)]</span>
+        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Frame</span><span class="p">(</span><span class="n">header</span><span class="o">=</span><span class="n">_dictHeader</span><span class="p">))</span></div>
+<div class="viewcode-block" id="edfimage.delHeader"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.delHeader">[docs]</a>    <span class="k">def</span> <span class="nf">delHeader</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Deleter for edf header</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span></div>
+    <span class="n">header</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getHeader</span><span class="p">,</span> <span class="n">setHeader</span><span class="p">,</span> <span class="n">delHeader</span><span class="p">,</span> <span class="s">"property: header of EDF file"</span><span class="p">)</span>
+
+<div class="viewcode-block" id="edfimage.getHeaderKeys"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getHeaderKeys">[docs]</a>    <span class="k">def</span> <span class="nf">getHeaderKeys</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Getter for edf header_keys</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">header_keys</span></div>
+<div class="viewcode-block" id="edfimage.setHeaderKeys"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.setHeaderKeys">[docs]</a>    <span class="k">def</span> <span class="nf">setHeaderKeys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_listtHeader</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Enforces the propagation of the header_keys to the list of frames</span>
+<span class="sd">        @param _listtHeader: list of the (ordered) keys in the header</span>
+<span class="sd">        @type _listtHeader: python list</span>
+<span class="sd">        """</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="n">_listtHeader</span>
+        <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[</span><span class="n">Frame</span><span class="p">(</span><span class="n">header_keys</span><span class="o">=</span><span class="n">_listtHeader</span><span class="p">)]</span>
+        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Frame</span><span class="p">(</span><span class="n">header_keys</span><span class="o">=</span><span class="n">_listtHeader</span><span class="p">))</span></div>
+<div class="viewcode-block" id="edfimage.delHeaderKeys"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.delHeaderKeys">[docs]</a>    <span class="k">def</span> <span class="nf">delHeaderKeys</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Deleter for edf header_keys</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="p">[]</span></div>
+    <span class="n">header_keys</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getHeaderKeys</span><span class="p">,</span> <span class="n">setHeaderKeys</span><span class="p">,</span> <span class="n">delHeaderKeys</span><span class="p">,</span> <span class="s">"property: header_keys of EDF file"</span><span class="p">)</span>
+
+<div class="viewcode-block" id="edfimage.getData"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getData">[docs]</a>    <span class="k">def</span> <span class="nf">getData</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        getter for edf Data</span>
+<span class="sd">        @return: data for current frame</span>
+<span class="sd">        @rtype: numpy.ndarray</span>
+<span class="sd">        """</span>
+        <span class="n">npaData</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">npaData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">data</span>
+        <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[</span><span class="n">Frame</span><span class="p">()]</span>
+            <span class="n">npaData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">data</span>
+        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Frame</span><span class="p">())</span>
+                <span class="n">npaData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">data</span>
+        <span class="k">return</span> <span class="n">npaData</span>
+</div>
+<div class="viewcode-block" id="edfimage.setData"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.setData">[docs]</a>    <span class="k">def</span> <span class="nf">setData</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_data</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Enforces the propagation of the data to the list of frames</span>
+<span class="sd">        @param _data: numpy array representing data</span>
+<span class="sd">        """</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">_data</span>
+        <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[</span><span class="n">Frame</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">_data</span><span class="p">)]</span>
+        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Frame</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">_data</span><span class="p">))</span></div>
+<div class="viewcode-block" id="edfimage.delData"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.delData">[docs]</a>    <span class="k">def</span> <span class="nf">delData</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        deleter for edf Data</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="bp">None</span></div>
+    <span class="n">data</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getData</span><span class="p">,</span> <span class="n">setData</span><span class="p">,</span> <span class="n">delData</span><span class="p">,</span> <span class="s">"property: data of EDF file"</span><span class="p">)</span>
+
+<div class="viewcode-block" id="edfimage.getCapsHeader"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getCapsHeader">[docs]</a>    <span class="k">def</span> <span class="nf">getCapsHeader</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        getter for edf headers keys in upper case</span>
+<span class="sd">        @return: data for current frame</span>
+<span class="sd">        @rtype: dict</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">capsHeader</span></div>
+<div class="viewcode-block" id="edfimage.setCapsHeader"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.setCapsHeader">[docs]</a>    <span class="k">def</span> <span class="nf">setCapsHeader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_data</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Enforces the propagation of the header_keys to the list of frames</span>
+<span class="sd">        @param _data: numpy array representing data</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">capsHeader</span> <span class="o">=</span> <span class="n">_data</span></div>
+<div class="viewcode-block" id="edfimage.delCapsHeader"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.delCapsHeader">[docs]</a>    <span class="k">def</span> <span class="nf">delCapsHeader</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        deleter for edf capsHeader</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">capsHeader</span> <span class="o">=</span> <span class="p">{}</span></div>
+    <span class="n">capsHeader</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getCapsHeader</span><span class="p">,</span> <span class="n">setCapsHeader</span><span class="p">,</span> <span class="n">delCapsHeader</span><span class="p">,</span> <span class="s">"property: capsHeader of EDF file, i.e. the keys of the header in UPPER case."</span><span class="p">)</span>
+
+<div class="viewcode-block" id="edfimage.getDim1"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getDim1">[docs]</a>    <span class="k">def</span> <span class="nf">getDim1</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="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">dim1</span></div>
+<div class="viewcode-block" id="edfimage.setDim1"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.setDim1">[docs]</a>    <span class="k">def</span> <span class="nf">setDim1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_iVal</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="n">_iVal</span>
+        <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[</span><span class="n">Frame</span><span class="p">()]</span>
+        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Frame</span><span class="p">())</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="n">_iVal</span></div>
+    <span class="n">dim1</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getDim1</span><span class="p">,</span> <span class="n">setDim1</span><span class="p">)</span>
+<div class="viewcode-block" id="edfimage.getDim2"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getDim2">[docs]</a>    <span class="k">def</span> <span class="nf">getDim2</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="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">dim2</span></div>
+<div class="viewcode-block" id="edfimage.setDim2"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.setDim2">[docs]</a>    <span class="k">def</span> <span class="nf">setDim2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_iVal</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="n">_iVal</span>
+        <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[</span><span class="n">Frame</span><span class="p">()]</span>
+        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Frame</span><span class="p">())</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="n">_iVal</span></div>
+    <span class="n">dim2</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getDim2</span><span class="p">,</span> <span class="n">setDim2</span><span class="p">)</span>
+
+<div class="viewcode-block" id="edfimage.getDims"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getDims">[docs]</a>    <span class="k">def</span> <span class="nf">getDims</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="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">dims</span></div>
+    <span class="n">dims</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getDims</span><span class="p">)</span>
+<div class="viewcode-block" id="edfimage.getByteCode"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getByteCode">[docs]</a>    <span class="k">def</span> <span class="nf">getByteCode</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="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">bytecode</span></div>
+<div class="viewcode-block" id="edfimage.setByteCode"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.setByteCode">[docs]</a>    <span class="k">def</span> <span class="nf">setByteCode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_iVal</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">_iVal</span>
+        <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[</span><span class="n">Frame</span><span class="p">()]</span>
+        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Frame</span><span class="p">())</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">_iVal</span></div>
+    <span class="n">bytecode</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getByteCode</span><span class="p">,</span> <span class="n">setByteCode</span><span class="p">)</span>
+<div class="viewcode-block" id="edfimage.getBpp"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.getBpp">[docs]</a>    <span class="k">def</span> <span class="nf">getBpp</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="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">bpp</span></div>
+<div class="viewcode-block" id="edfimage.setBpp"><a class="viewcode-back" href="../../api/modules.html#fabio.edfimage.edfimage.setBpp">[docs]</a>    <span class="k">def</span> <span class="nf">setBpp</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_iVal</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="n">_iVal</span>
+        <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span> <span class="o">=</span> <span class="p">[</span><span class="n">Frame</span><span class="p">()]</span>
+        <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Frame</span><span class="p">())</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__frames</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span><span class="p">]</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="n">_iVal</span></div>
+    <span class="n">bpp</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getBpp</span><span class="p">,</span> <span class="n">setBpp</span><span class="p">)</span>
+</pre></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/fabioimage.html b/doc/html/_modules/fabio/fabioimage.html
new file mode 100644
index 0000000..5dd8ee1
--- /dev/null
+++ b/doc/html/_modules/fabio/fabioimage.html
@@ -0,0 +1,651 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.fabioimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.fabioimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+
+<span class="sd">"""</span>
+
+<span class="sd">Authors: Henning O. Sorensen & Erik Knudsen</span>
+<span class="sd">         Center for Fundamental Research: Metal Structures in Four Dimensions</span>
+<span class="sd">         Risoe National Laboratory</span>
+<span class="sd">         Frederiksborgvej 399</span>
+<span class="sd">         DK-4000 Roskilde</span>
+<span class="sd">         email:erik.knudsen at risoe.dk</span>
+
+<span class="sd">         and Jon Wright, Jerome Kieffer: ESRF</span>
+
+<span class="sd">"""</span>
+<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">with_statement</span>
+<span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">types</span><span class="o">,</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">tempfile</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"fabioimage"</span><span class="p">)</span>
+<span class="kn">import</span> <span class="nn">numpy</span>
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">from</span> <span class="nn">PIL</span> <span class="kn">import</span> <span class="n">Image</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"PIL is not installed ... trying to do without"</span><span class="p">)</span>
+    <span class="n">Image</span> <span class="o">=</span> <span class="bp">None</span>
+<span class="kn">import</span> <span class="nn">fabioutils</span><span class="o">,</span> <span class="nn">converters</span>
+
+
+<div class="viewcode-block" id="fabioimage"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage">[docs]</a><span class="k">class</span> <span class="nc">fabioimage</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    A common object for images in fable</span>
+<span class="sd">    Contains a numpy array (.data) and dict of meta data (.header)</span>
+<span class="sd">    """</span>
+
+    <span class="n">_need_a_seek_to_read</span> <span class="o">=</span> <span class="bp">False</span>
+    <span class="n">_need_a_real_file</span> <span class="o">=</span> <span class="bp">False</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">data</span><span class="o">=</span><span class="bp">None</span> <span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Set up initial values</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_classname</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="ow">in</span> <span class="n">types</span><span class="o">.</span><span class="n">StringTypes</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"fabioimage.__init__ bad argument - "</span> <span class="o">+</span> \
+                            <span class="s">"data should be numpy array"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">checkData</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="n">header</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">checkHeader</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> <span class="c"># holds key ordering</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="bp">None</span>     <span class="c"># numpy typecode</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="mi">2</span>             <span class="c"># bytes per pixel</span>
+        <span class="c"># cache for image statistics</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">mean</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maxval</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stddev</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">minval</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="c"># Cache roi</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">roi</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">area_sum</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">slice</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="c"># New for multiframe files</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span> <span class="o">=</span> <span class="mi">1</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">currentframe</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filenumber</span> <span class="o">=</span> <span class="bp">None</span>
+
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="fabioimage.checkHeader"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.checkHeader">[docs]</a>    <span class="k">def</span> <span class="nf">checkHeader</span><span class="p">(</span><span class="n">header</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Empty for fabioimage but may be populated by others classes</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">header</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="p">{}</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">header</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="fabioimage.checkData"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.checkData">[docs]</a>    <span class="k">def</span> <span class="nf">checkData</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Empty for fabioimage but may be populated by others classes, especially for format accepting only integers</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">data</span>
+</div>
+<div class="viewcode-block" id="fabioimage.getclassname"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.getclassname">[docs]</a>    <span class="k">def</span> <span class="nf">getclassname</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Retrieves the name of the class</span>
+<span class="sd">        @return: the name of the class</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_classname</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">_classname</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">"<class '"</span><span class="p">,</span> <span class="s">""</span><span class="p">)</spa [...]
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_classname</span></div>
+    <span class="n">classname</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getclassname</span><span class="p">)</span>
+
+<div class="viewcode-block" id="fabioimage.getframe"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.getframe">[docs]</a>    <span class="k">def</span> <span class="nf">getframe</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">):</span>
+        <span class="sd">""" returns the file numbered 'num' in the series as a fabioimage """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nframes</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="c"># single image per file</span>
+            <span class="kn">import</span> <span class="nn">openimage</span>
+            <span class="k">return</span> <span class="n">openimage</span><span class="o">.</span><span class="n">openimage</span><span class="p">(</span>
+                <span class="n">fabioutils</span><span class="o">.</span><span class="n">jump_filename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">,</span> <span class="n">num</span><span class="p">))</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"getframe out of range"</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="fabioimage.previous"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.previous">[docs]</a>    <span class="k">def</span> <span class="nf">previous</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the previous file in the series as a fabioimage """</span>
+        <span class="kn">import</span> <span class="nn">openimage</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="o">.</span><span class="n">openimage</span><span class="p">(</span>
+            <span class="n">fabioutils</span><span class="o">.</span><span class="n">previous_filename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">))</span>
+</div>
+<div class="viewcode-block" id="fabioimage.next"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.next">[docs]</a>    <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the next file in the series as a fabioimage """</span>
+        <span class="kn">import</span> <span class="nn">openimage</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="o">.</span><span class="n">openimage</span><span class="p">(</span>
+            <span class="n">fabioutils</span><span class="o">.</span><span class="n">next_filename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">))</span>
+</div>
+<div class="viewcode-block" id="fabioimage.toPIL16"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.toPIL16">[docs]</a>    <span class="k">def</span> <span class="nf">toPIL16</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Convert to Python Imaging Library 16 bit greyscale image</span>
+
+<span class="sd">        FIXME - this should be handled by the libraries now</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">Image</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">"PIL is not installed !!! "</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">filename</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span>
+        <span class="c"># mode map</span>
+        <span class="n">size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="mi">2</span><span class="p">][::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+        <span class="n">typmap</span> <span class="o">=</span> <span class="p">{</span>
+            <span class="s">'float32'</span> <span class="p">:</span> <span class="s">"F"</span>     <span class="p">,</span>
+            <span class="s">'int32'</span>   <span class="p">:</span> <span class="s">"F;32S"</span> <span class="p">,</span>
+            <span class="s">'uint32'</span>  <span class="p">:</span> <span class="s">"F;32"</span>  <span class="p">,</span>
+            <span class="s">'int16'</span>   <span class="p">:</span> <span class="s">"F;16S"</span> <span class="p">,</span>
+            <span class="s">'uint16'</span>  <span class="p">:</span> <span class="s">"F;16"</span>  <span class="p">,</span>
+            <span class="s">'int8'</span>    <span class="p">:</span> <span class="s">"F;8S"</span>  <span class="p">,</span>
+            <span class="s">'uint8'</span>   <span class="p">:</span> <span class="s">"F;8"</span>  <span class="p">}</span>
+        <span class="k">if</span> <span class="n">typmap</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">name</span><span class="p">):</span>
+            <span class="n">mode2</span> <span class="o">=</span> <span class="n">typmap</span><span class="p">[</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">name</span> <span class="p">]</span>
+            <span class="n">mode1</span> <span class="o">=</span> <span class="n">mode2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Unknown numpy type "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">type</span><span class="p">))</span>
+        <span class="c">#</span>
+        <span class="c"># hack for byteswapping for PIL in MacOS</span>
+        <span class="n">testval</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="n">numpy</span><span class="o" [...]
+        <span class="k">if</span>  <span class="n">testval</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">dats</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+        <span class="k">elif</span> <span class="n">testval</span> <span class="o">==</span> <span class="mi">256</span><span class="p">:</span>
+            <span class="n">dats</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Endian unknown in fabioimage.toPIL16"</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">frombuffer</span><span class="p">(</span><span class="n">mode1</span><span class="p">,</span>
+                                         <span class="n">size</span><span class="p">,</span>
+                                         <span class="n">dats</span><span class="p">,</span>
+                                         <span class="s">"raw"</span><span class="p">,</span>
+                                         <span class="n">mode2</span><span class="p">,</span>
+                                         <span class="mi">0</span><span class="p">,</span>
+                                         <span class="mi">1</span><span class="p">)</span>
+
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span>
+</div>
+<div class="viewcode-block" id="fabioimage.getheader"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.getheader">[docs]</a>    <span class="k">def</span> <span class="nf">getheader</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns self.header """</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span>
+</div>
+<div class="viewcode-block" id="fabioimage.getmax"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.getmax">[docs]</a>    <span class="k">def</span> <span class="nf">getmax</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" Find max value in self.data, caching for the future """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">maxval</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">maxval</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">max</span><span class="p">()</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">maxval</span>
+</div>
+<div class="viewcode-block" id="fabioimage.getmin"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.getmin">[docs]</a>    <span class="k">def</span> <span class="nf">getmin</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" Find min value in self.data, caching for the future """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">minval</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">minval</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">min</span><span class="p">()</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">minval</span>
+</div>
+<div class="viewcode-block" id="fabioimage.make_slice"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.make_slice">[docs]</a>    <span class="k">def</span> <span class="nf">make_slice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coords</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Convert a len(4) set of coords into a len(2)</span>
+<span class="sd">        tuple (pair) of slice objects</span>
+<span class="sd">        the latter are immutable, meaning the roi can be cached</span>
+<span class="sd">        """</span>
+        <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
+            <span class="c"># fabian edfimage preference</span>
+            <span class="k">if</span> <span class="n">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">></span> <span class="n">coords</span><span class="p">[</span><span class="mi">2</span><span class="p">]:</span>
+                <span class="n">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">3</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">coords</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span>
+            <span class="k">if</span> <span class="n">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">></span> <span class="n">coords</span><span class="p">[</span><span class="mi">3</span><span class="p">]:</span>
+                <span class="n">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">4</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">coords</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span> <span class="n">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]]</span>
+            <span class="c">#in fabian: normally coordinates are given as (x,y) whereas</span>
+            <span class="c"># a matrix is given as row,col</span>
+            <span class="c"># also the (for whichever reason) the image is flipped upside</span>
+            <span class="c"># down wrt to the matrix hence these tranformations</span>
+            <span class="n">fixme</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">-</span> <span class="n">coords</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span>
+                     <span class="n">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">,</span>
+                     <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">-</span> <span class="n">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span>
+                     <span class="n">coords</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
+        <span class="k">return</span> <span class="p">(</span><span class="nb">slice</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">fixme</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="nb">int</span><span class="p">(</span><span class="n">fixme</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)< [...]
+                 <span class="nb">slice</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">fixme</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span> <span class="nb">int</span><span class="p">(</span><span class="n">fixme</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
+
+</div>
+<div class="viewcode-block" id="fabioimage.integrate_area"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.integrate_area">[docs]</a>    <span class="k">def</span> <span class="nf">integrate_area</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coords</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Sums up a region of interest</span>
+<span class="sd">        if len(coords) == 4 -> convert coords to slices</span>
+<span class="sd">        if len(coords) == 2 -> use as slices</span>
+<span class="sd">        floor -> ? removed as unused in the function.</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="c"># This should return NAN, not zero ?</span>
+            <span class="k">return</span> <span class="mi">0</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
+            <span class="n">sli</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">make_slice</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nb">slice</span><span class="p">)</span> <span class="ow">and</span> \
+                                  <span class="nb">isinstance</span><span class="p">(</span><span class="n">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nb">slice</span><span class="p">):</span>
+            <span class="n">sli</span> <span class="o">=</span> <span class="n">coords</span>
+
+        <span class="k">if</span> <span class="n">sli</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">slice</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">area_sum</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">pass</span>
+        <span class="k">elif</span> <span class="n">sli</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">slice</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">roi</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">area_sum</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">roi</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">dtype</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</span><span class="n">float</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">slice</span> <span class="o">=</span> <span class="n">sli</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">roi</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span> <span class="bp">self</span><span class="o">.</span><span class="n">slice</span> <span class="p">]</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">area_sum</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">roi</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">dtype</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</span><span class="n">float</span><span class="p">)</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">area_sum</span>
+</div>
+<div class="viewcode-block" id="fabioimage.getmean"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.getmean">[docs]</a>    <span class="k">def</span> <span class="nf">getmean</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" return the mean """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">mean</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">mean</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">dtype</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</span><span class="n">double</span><span class="p">)</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">mean</span>
+</div>
+<div class="viewcode-block" id="fabioimage.getstddev"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.getstddev">[docs]</a>    <span class="k">def</span> <span class="nf">getstddev</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" return the standard deviation """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">stddev</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">stddev</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">dtype</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</span><span class="n">double</span><span class="p">)</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">stddev</span>
+</div>
+<div class="viewcode-block" id="fabioimage.add"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.add">[docs]</a>    <span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Add another Image - warning, does not clip to 16 bit images by default</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="s">'data'</span><span class="p">):</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">'edfimage.add() called with something that '</span> <span class="o">+</span> \
+                <span class="s">'does not have a data field'</span><span class="p">)</span>
+        <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="p">,</span> \
+                  <span class="s">'incompatible images - Do they have the same size?'</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">+</span> <span class="n">other</span><span class="o">.</span><span class="n">data</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+
+</div>
+<div class="viewcode-block" id="fabioimage.resetvals"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.resetvals">[docs]</a>    <span class="k">def</span> <span class="nf">resetvals</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" Reset cache - call on changing data """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">mean</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stddev</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maxval</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">minval</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">roi</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slice</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">area_sum</span> <span class="o">=</span> <span class="bp">None</span>
+</div>
+<div class="viewcode-block" id="fabioimage.rebin"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.rebin">[docs]</a>    <span class="k">def</span> <span class="nf">rebin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x_rebin_fact</span><span class="p">,</span> <span class="n">y_rebin_fact</span><span class="p">,</span> <span class="n">keep_I</span><span class="o">=</span><span class="bp">True</span><span [...]
+        <span class="sd">"""</span>
+<span class="sd">        Rebin the data and adjust dims</span>
+<span class="sd">        @param x_rebin_fact: x binning factor</span>
+<span class="sd">        @param y_rebin_fact: y binning factor</span>
+<span class="sd">        @param keep_I: shall the signal increase ?</span>
+<span class="sd">        @type x_rebin_fact: int</span>
+<span class="sd">        @type y_rebin_fact: int</span>
+<span class="sd">        @type keep_I: boolean</span>
+
+
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">'Please read in the file you wish to rebin first'</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">%</span> <span class="n">x_rebin_fact</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">%</span> <span class="n">y_rebin_fact</span> <span class="o">!=</span> [...]
+            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">'image size is not divisible by rebin factor - '</span> <span class="o">+</span> \
+                  <span class="s">'skipping rebin'</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">dataIn</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"float64"</span><span class="p">)</span>
+            <span class="n">shapeIn</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+            <span class="n">shapeOut</span> <span class="o">=</span> <span class="p">(</span><span class="n">shapeIn</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">/</span> <span class="n">y_rebin_fact</span><span class="p">,</span> <span class="n">shapeIn</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">/</span> <span class="n">x_rebin_fact</span><span class="p">)</span>
+            <span class="n">binsize</span> <span class="o">=</span> <span class="n">y_rebin_fact</span> <span class="o">*</span> <span class="n">x_rebin_fact</span>
+            <span class="k">if</span> <span class="n">binsize</span> <span class="o"><</span> <span class="mi">50</span><span class="p">:</span> <span class="c">#method faster for small binning (4x4)</span>
+                <span class="n">out</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">shapeOut</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s">"float64"</span><span class="p">)</span>
+                <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">x_rebin_fact</span><span class="p">):</span>
+                    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">y_rebin_fact</span><span class="p">):</span>
+                        <span class="n">out</span> <span class="o">+=</span> <span class="n">dataIn</span><span class="p">[</span><span class="n">i</span><span class="p">::</span><span class="n">y_rebin_fact</span><span class="p">,</span> <span class="n">j</span><span class="p">::</span><span class="n">x_rebin_fact</span><span class="p">]</span>
+            <span class="k">else</span><span class="p">:</span> <span class="c">#method faster for large binning (8x8)</span>
+                <span class="n">temp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="s">"float64"</span><span class="p">)</span>
+                <span class="n">temp</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="p">(</span><span class="n">shapeOut</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">y_rebin_fact</span><span class="p">,</span> <span class="n">shapeOut</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">x_rebin_fact</span><span class="p">)</span>
+                <span class="n">out</span> <span class="o">=</span> <span class="n">temp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">keep_I</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="p">(</span><span class="n">out</span> <span class="o">/</span> <span class="p">(</span><span class="n">y_rebin_fact</span> <span class="o">*</span> <span class="n">x_rebin_fact</span><span class="p">))</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</spa [...]
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">out</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">/</span> <span class="n">x_rebin_fact</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">/</span> <span class="n">y_rebin_fact</span>
+
+        <span class="c">#update header</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">update_header</span><span class="p">()</span>
+</div>
+<div class="viewcode-block" id="fabioimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        To be overwritten - write the file</span>
+<span class="sd">        """</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Class has not implemented readheader method yet"</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="fabioimage.save"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.save">[docs]</a>    <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="s">'wrapper for write'</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="fabioimage.readheader"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.readheader">[docs]</a>    <span class="k">def</span> <span class="nf">readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Call the _readheader function...</span>
+<span class="sd">        """</span>
+        <span class="c"># Override the needs asserting that all headers can be read via python modules</span>
+        <span class="n">save_state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_need_a_real_file</span> <span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_need_a_seek_to_read</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_need_a_real_file</span> <span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_need_a_seek_to_read</span> <span class="o">=</span> <span class="bp">False</span><span class="p">,</span> <span class="bp">False</span>
+        <span class="n">fin</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">fin</span><span class="p">)</span>
+        <span class="n">fin</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_need_a_real_file</span> <span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_need_a_seek_to_read</span> <span class="o">=</span> <span class="n">save_state</span>
+</div>
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fik_obj</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Must be overridden in classes</span>
+<span class="sd">        """</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Class has not implemented _readheader method yet"</span><span class="p">)</span>
+
+<div class="viewcode-block" id="fabioimage.update_header"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.update_header">[docs]</a>    <span class="k">def</span> <span class="nf">update_header</span><span class="p">(</span><span class="bp">self</span> <span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        update the header entries</span>
+<span class="sd">        by default pass in a dict of key, values.</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwds</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="fabioimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        To be overridden - fill in self.header and self.data</span>
+<span class="sd">        """</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Class has not implemented read method yet"</span><span class="p">)</span>
+<span class="c">#        return self</span>
+</div>
+<div class="viewcode-block" id="fabioimage.load"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.load">[docs]</a>    <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">arg</span><span class="p">,</span> <span class="o">**</span><span class="n">kwarg</span><span class="p">):</span>
+        <span class="s">"Wrapper for read"</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="o">*</span><span class="n">arg</span><span class="p">,</span> <span class="o">**</span><span class="n">kwarg</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="fabioimage.readROI"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.readROI">[docs]</a>    <span class="k">def</span> <span class="nf">readROI</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">coords</span><span clas [...]
+        <span class="sd">"""</span>
+<span class="sd">        Method reading Region of Interest.</span>
+<span class="sd">        This implementation is the trivial one, just doing read and crop</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">frame</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">slice</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">make_slice</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">coords</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">coords</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nb">slice</span><span class="p">)</span> <span class="ow">and</span> \
+                                  <span class="nb">isinstance</span><span class="p">(</span><span class="n">coords</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nb">slice</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">slice</span> <span class="o">=</span> <span class="n">coords</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">'readROI: Unable to understand Region Of Interest: got </span><span class="si">%s</span><span class="s">'</span><span class="p">,</span> <span class="n">coords</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">roi</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span> <span class="bp">self</span><span class="o">.</span><span class="n">slice</span> <span class="p">]</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">roi</span>
+
+</div>
+    <span class="k">def</span> <span class="nf">_open</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">"rb"</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Try to handle compressed files, streams, shared memory etc</span>
+<span class="sd">        Return an object which can be used for "read" and "write"</span>
+<span class="sd">        ... FIXME - what about seek ?</span>
+<span class="sd">        """</span>
+        <span class="n">fileObject</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">fname</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filenumber</span> <span class="o">=</span> <span class="n">fabioutils</span><span class="o">.</span><span class="n">extract_filenumber</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"read"</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"write"</span><span class="p">):</span>
+            <span class="c"># It is already something we can use</span>
+            <span class="k">return</span> <span class="n">fname</span>
+        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="nb">unicode</span><span class="p">)):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"filename"</span><span class="p">]</span> <span class="o">=</span> <span class="n">fname</span>
+            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">fname</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s">".gz"</span><span class="p">:</span>
+                <span class="n">fileObject</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_compressed_stream</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span>
+                                       <span class="n">fabioutils</span><span class="o">.</span><span class="n">COMPRESSORS</span><span class="p">[</span><span class="s">'.gz'</span><span class="p">],</span>
+                                       <span class="n">fabioutils</span><span class="o">.</span><span class="n">GzipFile</span><span class="p">,</span>
+                                       <span class="n">mode</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">fname</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s">'.bz2'</span><span class="p">:</span>
+                <span class="n">fileObject</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_compressed_stream</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span>
+                                       <span class="n">fabioutils</span><span class="o">.</span><span class="n">COMPRESSORS</span><span class="p">[</span><span class="s">'.bz2'</span><span class="p">],</span>
+                                       <span class="n">fabioutils</span><span class="o">.</span><span class="n">BZ2File</span><span class="p">,</span>
+                                       <span class="n">mode</span><span class="p">)</span>
+            <span class="c">#</span>
+            <span class="c"># Here we return the file even though it may be bzipped or gzipped</span>
+            <span class="c"># but named incorrectly...</span>
+            <span class="c">#</span>
+            <span class="c"># FIXME - should we fix that or complain about the daft naming?</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">fileObject</span> <span class="o">=</span> <span class="n">fabioutils</span><span class="o">.</span><span class="n">File</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span>
+            <span class="k">if</span> <span class="s">"name"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">fileObject</span><span class="p">):</span>
+                <span class="n">fileObject</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">fname</span>
+
+        <span class="k">return</span> <span class="n">fileObject</span>
+
+    <span class="k">def</span> <span class="nf">_compressed_stream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
+                           <span class="n">fname</span><span class="p">,</span>
+                           <span class="n">system_uncompress</span><span class="p">,</span>
+                           <span class="n">python_uncompress</span><span class="p">,</span>
+                           <span class="n">mode</span><span class="o">=</span><span class="s">'rb'</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Try to transparently handle gzip / bzip without always getting python</span>
+<span class="sd">        performance</span>
+<span class="sd">        """</span>
+        <span class="c"># assert that python modules are always OK based on performance benchmark</span>
+        <span class="c"># Try to fix the way we are using them?</span>
+        <span class="n">fobj</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_need_a_real_file</span> <span class="ow">and</span> <span class="n">mode</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">"r"</span><span class="p">:</span>
+            <span class="n">fo</span> <span class="o">=</span> <span class="n">python_uncompress</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span>
+<span class="c">#            fobj = os.tmpfile()</span>
+            <span class="c">#problem when not administrator under certain flavors of windows</span>
+            <span class="n">tmpfd</span><span class="p">,</span> <span class="n">tmpfn</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">mkstemp</span><span class="p">()</span>
+            <span class="n">os</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="n">tmpfd</span><span class="p">)</span>
+            <span class="n">fobj</span> <span class="o">=</span> <span class="n">fabioutils</span><span class="o">.</span><span class="n">File</span><span class="p">(</span><span class="n">tmpfn</span><span class="p">,</span> <span class="s">"w+b"</span><span class="p">)</span>
+            <span class="n">fobj</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fo</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
+            <span class="n">fo</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+            <span class="n">fobj</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_need_a_seek_to_read</span> <span class="ow">and</span> <span class="n">mode</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">"r"</span><span class="p">:</span>
+            <span class="n">fo</span> <span class="o">=</span> <span class="n">python_uncompress</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span>
+            <span class="n">fobj</span> <span class="o">=</span> <span class="n">fabioutils</span><span class="o">.</span><span class="n">StringIO</span><span class="p">(</span><span class="n">fo</span><span class="o">.</span><span class="n">read</span><span class="p">(),</span> <span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">fobj</span> <span class="o">=</span> <span class="n">python_uncompress</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">fobj</span>
+
+<div class="viewcode-block" id="fabioimage.convert"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.fabioimage.convert">[docs]</a>    <span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dest</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Convert a fabioimage object into another fabioimage object (with possible conversions)</span>
+<span class="sd">        @param dest: destination type "EDF", "edfimage" or the class itself</span>
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">dest</span><span class="p">)</span> <span class="ow">in</span> <span class="n">types</span><span class="o">.</span><span class="n">StringTypes</span><span class="p">:</span>
+            <span class="n">dest</span> <span class="o">=</span> <span class="n">dest</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
+            <span class="n">modules</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="k">for</span> <span class="n">val</span>  <span class="ow">in</span> <span class="n">fabioutils</span><span class="o">.</span><span class="n">FILETYPES</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
+                <span class="n">modules</span> <span class="o">+=</span> <span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="s">"image"</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">val</span> <span class="k">if</span> <span class="n">i</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">]</span>
+            <span class="n">klass</span> <span class="o">=</span> <span class="bp">None</span>
+            <span class="n">module</span> <span class="o">=</span> <span class="bp">None</span>
+            <span class="n">klass_name</span> <span class="o">=</span> <span class="bp">None</span>
+            <span class="k">for</span> <span class="n">klass_name</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span>
+                <span class="k">if</span>  <span class="n">klass_name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">dest</span><span class="p">):</span>
+                    <span class="k">try</span><span class="p">:</span>
+                        <span class="n">module</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">modules</span><span class="p">[</span><span class="s">"fabio."</span> <span class="o">+</span> <span class="n">klass_name</span><span class="p">]</span>
+                    <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
+                        <span class="k">try</span><span class="p">:</span>
+                            <span class="n">module</span> <span class="o">=</span> <span class="nb">__import__</span><span class="p">(</span><span class="n">klass_name</span><span class="p">)</span>
+                        <span class="k">except</span><span class="p">:</span>
+                            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Failed to import </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">klass_name</span><span class="p">)</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"imported </span><span class="si">%s</span><span class="s">image"</span><span class="p">,</span> <span class="n">klass_name</span><span class="p">)</span>
+                    <span class="k">if</span> <span class="n">module</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+                        <span class="k">break</span>
+            <span class="k">if</span> <span class="n">module</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">klass_name</span><span class="p">):</span>
+                    <span class="n">klass</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">klass_name</span><span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Module </span><span class="si">%s</span><span class="s"> has no image class"</span> <span class="o">%</span> <span class="n">module</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dest</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="p">):</span>
+            <span class="n">klass</span> <span class="o">=</span> <span class="n">dest</span><span class="o">.</span><span class="n">__class__</span>
+        <span class="k">elif</span> <span class="p">(</span><span class="s">"__new__"</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">dest</span><span class="p">))</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dest</span><span class="p">(),</span> <span class="n">fabioimage</span><span class="p">):</span>
+            <span class="n">klass</span> <span class="o">=</span> <span class="n">dest</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Unrecognized destination format: </span><span class="si">%s</span><span class="s"> "</span> <span class="o">%</span> <span class="n">dest</span><span class="p">)</span>
+            <span class="k">return</span> <span class="bp">self</span>
+        <span class="k">if</span> <span class="n">klass</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Unrecognized destination format: </span><span class="si">%s</span><span class="s"> "</span> <span class="o">%</span> <span class="n">dest</span><span class="p">)</span>
+            <span class="k">return</span> <span class="bp">self</span>
+        <span class="n">other</span> <span class="o">=</span> <span class="n">klass</span><span class="p">()</span> <span class="c">#temporary instance (to be overwritten)</span>
+        <span class="n">other</span> <span class="o">=</span> <span class="n">klass</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">converters</span><span class="o">.</span><span class="n">convert_data</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">classname</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">classname</span><span class="p">,< [...]
+                    <span class="n">header</span><span class="o">=</span><span class="n">converters</span><span class="o">.</span><span class="n">convert_header</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">classname</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">classname</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><s [...]
+        <span class="k">return</span> <span class="n">other</span>
+</div></div>
+<div class="viewcode-block" id="test"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioimage.test">[docs]</a><span class="k">def</span> <span class="nf">test</span><span class="p">():</span>
+    <span class="sd">"""</span>
+<span class="sd">    check some basic fabioimage functionality</span>
+<span class="sd">    """</span>
+    <span class="kn">import</span> <span class="nn">time</span>
+    <span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+
+    <span class="n">dat</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">ones</span><span class="p">((</span><span class="mi">1024</span><span class="p">,</span> <span class="mi">1024</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+    <span class="n">dat</span> <span class="o">=</span> <span class="p">(</span><span class="n">dat</span> <span class="o">*</span> <span class="mi">50000</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+    <span class="k">assert</span> <span class="n">dat</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">char</span> <span class="o">==</span> <span class="n">numpy</span><span class="o">.</span><span class="n">ones</span><span class="p">((</span><span class="mi">1</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span><span class="o">.</span><span class="n">dt [...]
+    <span class="n">hed</span> <span class="o">=</span> <span class="p">{</span><span class="s">"Title"</span><span class="p">:</span><span class="s">"50000 everywhere"</span><span class="p">}</span>
+    <span class="n">obj</span> <span class="o">=</span> <span class="n">fabioimage</span><span class="p">(</span><span class="n">dat</span><span class="p">,</span> <span class="n">hed</span><span class="p">)</span>
+
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">getmax</span><span class="p">()</span> <span class="o">==</span> <span class="mi">50000</span>
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">getmin</span><span class="p">()</span> <span class="o">==</span> <span class="mi">50000</span>
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">getmean</span><span class="p">()</span> <span class="o">==</span> <span class="mi">50000</span> <span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">getmean</span><span class="p">()</span>
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">getstddev</span><span class="p">()</span> <span class="o">==</span> <span class="mf">0.</span>
+
+    <span class="n">dat2</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">1024</span><span class="p">,</span> <span class="mi">1024</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span> <span class="n">savespace</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+    <span class="n">cord</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">256</span><span class="p">,</span> <span class="mi">256</span><span class="p">,</span> <span class="mi">790</span><span class="p">,</span> <span class="mi">768</span> <span class="p">]</span>
+    <span class="n">slic</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">make_slice</span><span class="p">(</span><span class="n">cord</span><span class="p">)</span>
+    <span class="n">dat2</span><span class="p">[</span><span class="n">slic</span><span class="p">]</span> <span class="o">=</span> <span class="n">dat2</span><span class="p">[</span><span class="n">slic</span><span class="p">]</span> <span class="o">+</span> <span class="mi">100</span>
+
+    <span class="n">obj</span> <span class="o">=</span> <span class="n">fabioimage</span><span class="p">(</span><span class="n">dat2</span><span class="p">,</span> <span class="n">hed</span><span class="p">)</span>
+
+    <span class="c"># New object, so...</span>
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">maxval</span> <span class="ow">is</span> <span class="bp">None</span>
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">minval</span> <span class="ow">is</span> <span class="bp">None</span>
+
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">getmax</span><span class="p">()</span> <span class="o">==</span> <span class="mi">100</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">getmax</span><span class="p">()</span>
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">getmin</span><span class="p">()</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">getmin</span><span class="p">()</span>
+    <span class="n">npix</span> <span class="o">=</span> <span class="p">(</span><span class="n">slic</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">stop</span> <span class="o">-</span> <span class="n">slic</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">start</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span cl [...]
+    <span class="n">obj</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+    <span class="n">area1</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">integrate_area</span><span class="p">(</span><span class="n">cord</span><span class="p">)</span>
+    <span class="n">obj</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+    <span class="n">area2</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">integrate_area</span><span class="p">(</span><span class="n">slic</span><span class="p">)</span>
+    <span class="k">assert</span> <span class="n">area1</span> <span class="o">==</span> <span class="n">area2</span>
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">integrate_area</span><span class="p">(</span><span class="n">cord</span><span class="p">)</span> <span class="o">==</span> <span class="n">obj</span><span class="o">.</span><span class="n">integrate_area</span><span class="p">(</span><span class="n">slic</span><span class="p">)</span>
+    <span class="k">assert</span> <span class="n">obj</span><span class="o">.</span><span class="n">integrate_area</span><span class="p">(</span><span class="n">cord</span><span class="p">)</span> <span class="o">==</span> <span class="n">npix</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">integrate_area</span><span class="p">(</span><span class="n">cord</span><span class="p">)</span>
+
+
+    <span class="k">def</span> <span class="nf">clean</span><span class="p">():</span>
+        <span class="sd">""" clean up the created testfiles"""</span>
+        <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">[</span><span class="s">"testfile"</span><span class="p">,</span> <span class="s">"testfile.gz"</span><span class="p">,</span> <span class="s">"testfile.bz2"</span><span class="p">]:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="k">continue</span>
+
+
+    <span class="n">clean</span><span class="p">()</span>
+    <span class="kn">import</span> <span class="nn">gzip</span><span class="o">,</span> <span class="nn">bz2</span>
+    <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s">"testfile.gz"</span><span class="p">,</span> <span class="s">"wb"</span><span class="p">)</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"{ hello }"</span><span class="p">)</span>
+    <span class="n">fout</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="s">"testfile.gz"</span><span class="p">)</span>
+    <span class="n">readin</span> <span class="o">=</span> <span class="n">fout</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+    <span class="k">assert</span> <span class="n">readin</span> <span class="o">==</span> <span class="s">"{ hello }"</span><span class="p">,</span> <span class="n">readin</span> <span class="o">+</span> <span class="s">" gzipped file"</span>
+
+
+    <span class="n">bz2</span><span class="o">.</span><span class="n">BZ2File</span><span class="p">(</span><span class="s">"testfilebz"</span><span class="p">,</span> <span class="s">"wb"</span><span class="p">)</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"{ hello }"</span><span class="p">)</span>
+    <span class="n">fout</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="s">"testfile.bz2"</span><span class="p">)</span>
+    <span class="n">readin</span> <span class="o">=</span> <span class="n">fout</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+    <span class="k">assert</span> <span class="n">readin</span> <span class="o">==</span> <span class="s">"{ hello }"</span><span class="p">,</span> <span class="n">readin</span> <span class="o">+</span> <span class="s">" bzipped file"</span>
+
+    <span class="n">ftest</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">"testfile"</span><span class="p">,</span> <span class="s">"wb"</span><span class="p">)</span>
+    <span class="n">ftest</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"{ hello }"</span><span class="p">)</span>
+    <span class="k">assert</span> <span class="n">ftest</span> <span class="o">==</span> <span class="n">obj</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">ftest</span><span class="p">)</span>
+    <span class="n">ftest</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    <span class="n">fout</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="s">"testfile"</span><span class="p">)</span>
+    <span class="n">readin</span> <span class="o">=</span> <span class="n">fout</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+    <span class="k">assert</span> <span class="n">readin</span> <span class="o">==</span> <span class="s">"{ hello }"</span><span class="p">,</span> <span class="n">readin</span> <span class="o">+</span> <span class="s">"plain file"</span>
+    <span class="n">fout</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    <span class="n">ftest</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    <span class="n">clean</span><span class="p">()</span>
+
+    <span class="k">print</span> <span class="s">"Passed in"</span><span class="p">,</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">start</span><span class="p">,</span> <span class="s">"s"</span>
+</div>
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span>
+    <span class="n">test</span><span class="p">()</span>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/fabioutils.html b/doc/html/_modules/fabio/fabioutils.html
new file mode 100644
index 0000000..1134049
--- /dev/null
+++ b/doc/html/_modules/fabio/fabioutils.html
@@ -0,0 +1,668 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.fabioutils — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.fabioutils</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#coding: utf8</span>
+
+<span class="sd">"""</span>
+<span class="sd">General purpose utilities functions for fabio</span>
+<span class="sd">"""</span>
+<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">with_statement</span>
+<span class="kn">import</span> <span class="nn">re</span><span class="o">,</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">threading</span><span class="o">,</span> <span class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">StringIO</span> <span class="kn">as</span> <span class="nn">stringIO</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"fabioutils"</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">compression</span> <span class="kn">import</span> <span class="n">bz2</span><span class="p">,</span> <span class="n">gzip</span>
+<span class="kn">import</span> <span class="nn">traceback</span>
+<span class="kn">from</span> <span class="nn">math</span> <span class="kn">import</span> <span class="n">ceil</span>
+
+
+
+<span class="n">FILETYPES</span> <span class="o">=</span> <span class="p">{</span>
+    <span class="c"># extension NNNimage fabioclass</span>
+    <span class="c"># type consistency - always use a list if one case is</span>
+    <span class="s">'edf'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'edf'</span><span class="p">],</span>
+    <span class="s">'cor'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'edf'</span><span class="p">],</span>
+    <span class="s">'pnm'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'pnm'</span><span class="p">],</span>
+    <span class="s">'pgm'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'pnm'</span><span class="p">],</span>
+    <span class="s">'pbm'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'pnm'</span><span class="p">],</span>
+    <span class="s">'tif'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'tif'</span><span class="p">],</span>
+    <span class="s">'tiff'</span>   <span class="p">:</span> <span class="p">[</span><span class="s">'tif'</span><span class="p">],</span>
+    <span class="s">'img'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'adsc'</span><span class="p">,</span> <span class="s">'OXD'</span><span class="p">,</span> <span class="s">'HiPiC'</span><span class="p">],</span>
+    <span class="s">'mccd'</span>   <span class="p">:</span> <span class="p">[</span><span class="s">'marccd'</span><span class="p">],</span>
+    <span class="s">'mar2300'</span><span class="p">:</span> <span class="p">[</span><span class="s">'mar345'</span><span class="p">],</span>
+    <span class="s">'sfrm'</span>   <span class="p">:</span> <span class="p">[</span><span class="s">'bruker100'</span><span class="p">],</span>
+    <span class="s">'msk'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'fit2dmask'</span><span class="p">],</span>
+    <span class="s">'spr'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'fit2dspreadsheet'</span><span class="p">],</span>
+    <span class="s">'dm3'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'dm3'</span><span class="p">],</span>
+    <span class="s">'kcd'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'kcd'</span><span class="p">],</span>
+    <span class="s">'cbf'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">'cbf'</span><span class="p">],</span>
+    <span class="s">'xml'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">"xsd"</span><span class="p">],</span>
+    <span class="s">'xsd'</span>    <span class="p">:</span> <span class="p">[</span><span class="s">"xsd"</span><span class="p">],</span>
+             <span class="p">}</span>
+
+<span class="c"># Add bzipped and gzipped</span>
+<span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">FILETYPES</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+    <span class="n">FILETYPES</span><span class="p">[</span><span class="n">key</span> <span class="o">+</span> <span class="s">".bz2"</span><span class="p">]</span> <span class="o">=</span> <span class="n">FILETYPES</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+    <span class="n">FILETYPES</span><span class="p">[</span><span class="n">key</span> <span class="o">+</span> <span class="s">".gz"</span><span class="p">]</span> <span class="o">=</span> <span class="n">FILETYPES</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+
+
+<span class="c"># Compressors</span>
+
+<span class="n">COMPRESSORS</span> <span class="o">=</span> <span class="p">{}</span>
+
+
+<span class="n">dictAscii</span> <span class="o">=</span> <span class="p">{</span><span class="bp">None</span><span class="p">:[</span><span class="nb">chr</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">32</span><span class="p">,</span> <span class="mi">127</span><span class="p">)],</span>
+           <span class="p">}</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">lines</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">popen</span><span class="p">(</span><span class="s">"gzip -h 2>&1"</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+    <span class="c"># Looking for "usage"</span>
+    <span class="k">if</span> <span class="s">"sage"</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
+        <span class="n">COMPRESSORS</span><span class="p">[</span><span class="s">'.gz'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'gzip -dc '</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">COMPRESSORS</span><span class="p">[</span><span class="s">'.gz'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
+<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
+    <span class="n">COMPRESSORS</span><span class="p">[</span><span class="s">'.gz'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">lines</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">popen</span><span class="p">(</span><span class="s">"bzip2 -h 2>&1"</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+    <span class="c"># Looking for "usage"</span>
+    <span class="k">if</span> <span class="s">"sage"</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
+        <span class="n">COMPRESSORS</span><span class="p">[</span><span class="s">'.bz2'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'bzip2 -dc '</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">COMPRESSORS</span><span class="p">[</span><span class="s">'.bz2'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
+<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
+    <span class="n">COMPRESSORS</span><span class="p">[</span><span class="s">'.bz2'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
+
+<div class="viewcode-block" id="deprecated"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.deprecated">[docs]</a><span class="k">def</span> <span class="nf">deprecated</span><span class="p">(</span><span class="n">func</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    used to deprecate a function/method: prints a lot of warning messages to enforce the modifaction of the code</span>
+<span class="sd">    """</span>
+    <span class="k">def</span> <span class="nf">wrapper</span><span class="p">(</span><span class="o">*</span><span class="n">arg</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        decorator that deprecates the use of a function  </span>
+<span class="sd">        """</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> is Deprecated !!! </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">func_name</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">li [...]
+        <span class="k">return</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">arg</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">wrapper</span>
+</div>
+<div class="viewcode-block" id="pad"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.pad">[docs]</a><span class="k">def</span> <span class="nf">pad</span><span class="p">(</span><span class="n">mystr</span><span class="p">,</span> <span class="n">pattern</span><span class="o">=</span><span class="s">" "</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">80</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Performs the padding of the string to the right size with the right pattern </span>
+<span class="sd">    """</span>
+    <span class="n">size</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">size</span><span class="p">)</span>
+    <span class="n">padded_size</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">ceil</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">mystr</span><span class="p">))</span> <span class="o">/</span> <span class="n">size</span><span class="p">)</span> <span class="o">*</span> <span class="n">size</span><span class="p">)</span>
+    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">pattern</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">mystr</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="n">padded_size</span><span class="p">,</span> <span class="n">pattern</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">return</span> <span class="p">(</span><span class="n">mystr</span> <span class="o">+</span> <span class="n">pattern</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">ceil</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">padded_size</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">mystr</span><span class="p">))</span>  [...]
+
+</div>
+<div class="viewcode-block" id="getnum"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.getnum">[docs]</a><span class="k">def</span> <span class="nf">getnum</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    # try to figure out a file number</span>
+<span class="sd">    # guess it starts at the back</span>
+<span class="sd">    """</span>
+    <span class="n">stem</span> <span class="p">,</span> <span class="n">num</span><span class="p">,</span> <span class="n">post_num</span> <span class="o">=</span> <span class="n">numstem</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">num</span><span class="p">)</span>
+    <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+        <span class="k">return</span> <span class="bp">None</span>
+</div>
+<div class="viewcode-block" id="FilenameObject"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.FilenameObject">[docs]</a><span class="k">class</span> <span class="nc">FilenameObject</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    The 'meaning' of a filename ... </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">stem</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+            <span class="n">num</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+            <span class="n">directory</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+            <span class="n">format</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+            <span class="n">extension</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+            <span class="n">postnum</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+            <span class="n">digits</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span>
+            <span class="n">filename</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        This class can either be instanciated by a set of parameters like  directory, prefix, num, extension, ...   </span>
+<span class="sd">        </span>
+<span class="sd">        @param stem: the stem is a kind of prefix (str)</span>
+<span class="sd">        @param num: image number in the serie (int)</span>
+<span class="sd">        @param directory: name of the directory (str)</span>
+<span class="sd">        @param format: ??</span>
+<span class="sd">        @param extension: </span>
+<span class="sd">        @param postnum: </span>
+<span class="sd">        @param digits: Number of digits used to print num</span>
+<span class="sd">        </span>
+<span class="sd">        Alternative constructor: </span>
+<span class="sd">        </span>
+<span class="sd">        @param filename: fullpath of an image file to be deconstructed into directory, prefix, num, extension, ... </span>
+<span class="sd">        </span>
+<span class="sd">        """</span>
+
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">stem</span> <span class="o">=</span> <span class="n">stem</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">num</span> <span class="o">=</span> <span class="n">num</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">format</span> <span class="o">=</span> <span class="n">format</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="o">=</span> <span class="n">extension</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">digits</span> <span class="o">=</span> <span class="n">digits</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">postnum</span> <span class="o">=</span> <span class="n">postnum</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">directory</span> <span class="o">=</span> <span class="n">directory</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">compressed</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="n">filename</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">deconstruct_filename</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+
+
+<div class="viewcode-block" id="FilenameObject.str"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.FilenameObject.str">[docs]</a>    <span class="k">def</span> <span class="nf">str</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" Return a string representation """</span>
+        <span class="n">fmt</span> <span class="o">=</span> <span class="s">"stem </span><span class="si">%s</span><span class="s">, num </span><span class="si">%s</span><span class="s"> format </span><span class="si">%s</span><span class="s"> extension </span><span class="si">%s</span><span class="s"> "</span> <span class="o">+</span> \
+                <span class="s">"postnum = </span><span class="si">%s</span><span class="s"> digits </span><span class="si">%s</span><span class="s"> dir </span><span class="si">%s</span><span class="s">"</span>
+        <span class="k">return</span> <span class="n">fmt</span> <span class="o">%</span> <span class="nb">tuple</span><span class="p">([</span><span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">stem</span> <span class="p">,</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">num</span> <span class="p">,</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">format</span> <span class="p">,</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="p">,</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">postnum</span> <span class="p">,</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">digits</span> <span class="p">,</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">directory</span> <span class="p">]</span> <span class="p">])</span></div>
+    <span class="n">__repr__</span> <span class="o">=</span> <span class="nb">str</span>
+
+<div class="viewcode-block" id="FilenameObject.tostring"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.FilenameObject.tostring">[docs]</a>    <span class="k">def</span> <span class="nf">tostring</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        convert yourself to a string</span>
+<span class="sd">        """</span>
+        <span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stem</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">digits</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">num</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="s">"%0"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">digits</span><span class="p">)</span> <span class="o">+</span> <span class="s">"d"</span>
+            <span class="n">name</span> <span class="o">+=</span> <span class="n">fmt</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">num</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">postnum</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">name</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">postnum</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">name</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">extension</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">directory</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">directory</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">name</span>
+
+</div>
+<div class="viewcode-block" id="FilenameObject.deconstruct_filename"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.FilenameObject.deconstruct_filename">[docs]</a>    <span class="k">def</span> <span class="nf">deconstruct_filename</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Break up a filename to get image type and number</span>
+<span class="sd">        """</span>
+        <span class="n">direc</span><span class="p">,</span> <span class="n">name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+        <span class="n">direc</span> <span class="o">=</span> <span class="n">direc</span> <span class="ow">or</span> <span class="bp">None</span>
+        <span class="n">parts</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"."</span><span class="p">)</span>
+        <span class="n">compressed</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="n">stem</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">extn</span> <span class="o">=</span> <span class="s">""</span>
+        <span class="n">postnum</span> <span class="o">=</span> <span class="s">""</span>
+        <span class="n">ndigit</span> <span class="o">=</span> <span class="mi">4</span>
+        <span class="n">num</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="n">typ</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">"gz"</span><span class="p">,</span> <span class="s">"bz2"</span><span class="p">]:</span>
+            <span class="n">extn</span> <span class="o">=</span> <span class="s">"."</span> <span class="o">+</span> <span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+            <span class="n">parts</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+            <span class="n">compressed</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">if</span> <span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="n">FILETYPES</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+            <span class="n">typ</span> <span class="o">=</span> <span class="n">FILETYPES</span><span class="p">[</span><span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span>
+            <span class="n">extn</span> <span class="o">=</span> <span class="s">"."</span> <span class="o">+</span> <span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="n">extn</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">stem</span><span class="p">,</span> <span class="n">numstring</span><span class="p">,</span> <span class="n">postnum</span> <span class="o">=</span> <span class="n">numstem</span><span class="p">(</span><span class="s">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span>
+                <span class="n">num</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">numstring</span><span class="p">)</span>
+                <span class="n">ndigit</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numstring</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">err</span><span class="p">:</span>
+                <span class="c"># There is no number - hence make num be None, not 0</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"l176: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">err</span><span class="p">)</span>
+                <span class="n">num</span> <span class="o">=</span> <span class="bp">None</span>
+                <span class="n">stem</span> <span class="o">=</span> <span class="s">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c"># Probably two type left</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+                <span class="c"># Probably GE format stem_numb</span>
+                <span class="n">parts2</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"_"</span><span class="p">)</span>
+                <span class="k">if</span> <span class="n">parts2</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
+                    <span class="n">num</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">parts2</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+                    <span class="n">ndigit</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts2</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+                    <span class="n">typ</span> <span class="o">=</span> <span class="p">[</span><span class="s">'GE'</span><span class="p">]</span>
+                    <span class="n">stem</span> <span class="o">=</span> <span class="s">"_"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts2</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">+</span> <span class="s">"_"</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">num</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+                    <span class="n">ndigit</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+                    <span class="n">typ</span> <span class="o">=</span> <span class="p">[</span><span class="s">'bruker'</span><span class="p">]</span>
+                    <span class="n">stem</span> <span class="o">=</span> <span class="s">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">+</span> <span class="s">"."</span>
+                <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">err</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"l196: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">err</span><span class="p">)</span>
+                    <span class="n">typ</span> <span class="o">=</span> <span class="bp">None</span>
+                    <span class="n">extn</span> <span class="o">=</span> <span class="s">"."</span> <span class="o">+</span> <span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="n">extn</span>
+                    <span class="n">numstring</span> <span class="o">=</span> <span class="s">""</span>
+                    <span class="k">try</span><span class="p">:</span>
+                        <span class="n">stem</span> <span class="p">,</span> <span class="n">numstring</span><span class="p">,</span> <span class="n">postnum</span> <span class="o">=</span> <span class="n">numstem</span><span class="p">(</span><span class="s">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span>
+                    <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">err</span><span class="p">:</span>
+                        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"l202: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">err</span><span class="p">)</span>
+                        <span class="k">raise</span>
+                    <span class="k">if</span> <span class="n">numstring</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
+                        <span class="n">num</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">numstring</span><span class="p">)</span>
+                        <span class="n">ndigit</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numstring</span><span class="p">)</span>
+                <span class="c">#            raise Exception("Cannot decode "+filename)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">stem</span> <span class="o">=</span> <span class="n">stem</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">num</span> <span class="o">=</span> <span class="n">num</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">directory</span> <span class="o">=</span> <span class="n">direc</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">format</span> <span class="o">=</span> <span class="n">typ</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="o">=</span> <span class="n">extn</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">postnum</span> <span class="o">=</span> <span class="n">postnum</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">digits</span> <span class="o">=</span> <span class="n">ndigit</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">compressed</span> <span class="o">=</span> <span class="n">compressed</span>
+</div></div>
+<div class="viewcode-block" id="numstem"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.numstem">[docs]</a><span class="k">def</span> <span class="nf">numstem</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
+    <span class="sd">""" cant see how to do without reversing strings</span>
+<span class="sd">    Match 1 or more digits going backwards from the end of the string</span>
+<span class="sd">    """</span>
+    <span class="n">reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">r"^(.*?)(-?[0-9]{0,9})(\D*)$"</span><span class="p">)</span>
+    <span class="c">#reg = re.compile("""(\D*)(\d\d*)(\w*)""")</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">res</span> <span class="o">=</span> <span class="n">reg</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">groups</span><span class="p">()</span>
+        <span class="c">#res = reg.match(name[::-1]).groups()</span>
+        <span class="c">#return [ r[::-1] for r in res[::-1]]</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">res</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">res</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> <span class="c"># Hack for file without number</span>
+            <span class="k">return</span> <span class="p">[</span><span class="n">res</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="s">''</span><span class="p">,</span> <span class="s">''</span><span class="p">]</span>
+        <span class="k">return</span> <span class="p">[</span> <span class="n">r</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">res</span><span class="p">]</span>
+    <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span> <span class="c"># no digits found</span>
+        <span class="k">return</span> <span class="p">[</span><span class="n">name</span><span class="p">,</span> <span class="s">""</span><span class="p">,</span> <span class="s">""</span><span class="p">]</span>
+
+<span class="c">#@deprecated</span></div>
+<div class="viewcode-block" id="deconstruct_filename"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.deconstruct_filename">[docs]</a><span class="k">def</span> <span class="nf">deconstruct_filename</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Function for backward compatibility.</span>
+<span class="sd">    Deprecated</span>
+<span class="sd">    """</span>
+    <span class="k">return</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">filename</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="construct_filename"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.construct_filename">[docs]</a><span class="k">def</span> <span class="nf">construct_filename</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+    <span class="s">"Try to construct the filename for a given frame"</span>
+    <span class="n">fobj</span> <span class="o">=</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">filename</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">frame</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+        <span class="n">fobj</span><span class="o">.</span><span class="n">num</span> <span class="o">=</span> <span class="n">frame</span>
+    <span class="k">return</span> <span class="n">fobj</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+</div>
+<div class="viewcode-block" id="next_filename"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.next_filename">[docs]</a><span class="k">def</span> <span class="nf">next_filename</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">padding</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
+    <span class="sd">""" increment number """</span>
+    <span class="n">fobj</span> <span class="o">=</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
+    <span class="n">fobj</span><span class="o">.</span><span class="n">num</span> <span class="o">+=</span> <span class="mi">1</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">padding</span><span class="p">:</span>
+        <span class="n">fobj</span><span class="o">.</span><span class="n">digits</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">return</span> <span class="n">fobj</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+</div>
+<div class="viewcode-block" id="previous_filename"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.previous_filename">[docs]</a><span class="k">def</span> <span class="nf">previous_filename</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">padding</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
+    <span class="sd">""" decrement number """</span>
+    <span class="n">fobj</span> <span class="o">=</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
+    <span class="n">fobj</span><span class="o">.</span><span class="n">num</span> <span class="o">-=</span> <span class="mi">1</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">padding</span><span class="p">:</span>
+        <span class="n">fobj</span><span class="o">.</span><span class="n">digits</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">return</span> <span class="n">fobj</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+</div>
+<div class="viewcode-block" id="jump_filename"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.jump_filename">[docs]</a><span class="k">def</span> <span class="nf">jump_filename</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">num</span><span class="p">,</span> <span class="n">padding</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
+    <span class="sd">""" jump to number """</span>
+    <span class="n">fobj</span> <span class="o">=</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
+    <span class="n">fobj</span><span class="o">.</span><span class="n">num</span> <span class="o">=</span> <span class="n">num</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">padding</span><span class="p">:</span>
+        <span class="n">fobj</span><span class="o">.</span><span class="n">digits</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">return</span> <span class="n">fobj</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+
+</div>
+<div class="viewcode-block" id="extract_filenumber"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.extract_filenumber">[docs]</a><span class="k">def</span> <span class="nf">extract_filenumber</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
+    <span class="sd">""" extract file number """</span>
+    <span class="n">fobj</span> <span class="o">=</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">fobj</span><span class="o">.</span><span class="n">num</span>
+</div>
+<div class="viewcode-block" id="isAscii"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.isAscii">[docs]</a><span class="k">def</span> <span class="nf">isAscii</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">listExcluded</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    @param name: string to check</span>
+<span class="sd">    @param listExcluded: list of char or string excluded.</span>
+<span class="sd">    @return: True of False whether  name is pure ascii or not</span>
+<span class="sd">    """</span>
+    <span class="n">isascii</span> <span class="o">=</span> <span class="bp">None</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">name</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">"ascii"</span><span class="p">)</span>
+    <span class="k">except</span> <span class="ne">UnicodeDecodeError</span><span class="p">:</span>
+        <span class="n">isascii</span> <span class="o">=</span> <span class="bp">False</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">listExcluded</span><span class="p">:</span>
+            <span class="n">isascii</span> <span class="o">=</span> <span class="ow">not</span><span class="p">(</span><span class="nb">any</span><span class="p">(</span><span class="n">bad</span> <span class="ow">in</span>  <span class="n">name</span> <span class="k">for</span> <span class="n">bad</span> <span class="ow">in</span> <span class="n">listExcluded</span><span class="p">))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">isascii</span> <span class="o">=</span> <span class="bp">True</span>
+    <span class="k">return</span> <span class="n">isascii</span>
+</div>
+<div class="viewcode-block" id="toAscii"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.toAscii">[docs]</a><span class="k">def</span> <span class="nf">toAscii</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">excluded</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    @param name: string to check</span>
+<span class="sd">    @param excluded: tuple of char or string excluded (not list: they are mutable).</span>
+<span class="sd">    @return: the name with all non valid char removed</span>
+<span class="sd">    """</span>
+    <span class="k">if</span> <span class="n">excluded</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">dictAscii</span><span class="p">:</span>
+        <span class="n">ascii</span> <span class="o">=</span> <span class="n">dictAscii</span><span class="p">[</span><span class="bp">None</span><span class="p">][:]</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">excluded</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">ascii</span><span class="p">:</span>
+                <span class="n">ascii</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"toAscii: % not in ascii table"</span> <span class="o">%</span> <span class="n">i</span><span class="p">)</span>
+        <span class="n">dictAscii</span><span class="p">[</span><span class="n">excluded</span><span class="p">]</span> <span class="o">=</span> <span class="n">ascii</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">ascii</span> <span class="o">=</span> <span class="n">dictAscii</span><span class="p">[</span><span class="n">excluded</span><span class="p">]</span>
+    <span class="n">out</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">ascii</span><span class="p">]</span>
+    <span class="k">return</span> <span class="s">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">out</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="nice_int"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.nice_int">[docs]</a><span class="k">def</span> <span class="nf">nice_int</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
+    <span class="sd">""" </span>
+<span class="sd">    Workaround that int('1.0') raises an exception </span>
+<span class="sd">    </span>
+<span class="sd">    @param s: string to be converted to integer</span>
+<span class="sd">    """</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
+    <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+        <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">s</span><span class="p">))</span>
+
+</div>
+<div class="viewcode-block" id="StringIO"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.StringIO">[docs]</a><span class="k">class</span> <span class="nc">StringIO</span><span class="p">(</span><span class="n">stringIO</span><span class="o">.</span><span class="n">StringIO</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    just an interface providing the name and mode property to a StringIO</span>
+
+<span class="sd">    BugFix for MacOSX mainly</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">data</span><span class="p">,</span> <span class="n">fname</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">"r"</span><span class="p">):</span>
+        <span class="n">stringIO</span><span class="o">.</span><span class="n">StringIO</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">closed</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="k">if</span> <span class="n">fname</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s">"fabioStream"</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">fname</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">mode</span> <span class="o">=</span> <span class="n">mode</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">lock</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">Semaphore</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="bp">None</span>
+
+<div class="viewcode-block" id="StringIO.getSize"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.StringIO.getSize">[docs]</a>    <span class="k">def</span> <span class="nf">getSize</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Measuring size of </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+            <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">lock</span><span class="p">:</span>
+                <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_END</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__size</span></div>
+<div class="viewcode-block" id="StringIO.setSize"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.StringIO.setSize">[docs]</a>    <span class="k">def</span> <span class="nf">setSize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="n">size</span></div>
+    <span class="n">size</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getSize</span><span class="p">,</span> <span class="n">setSize</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="File"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.File">[docs]</a><span class="k">class</span> <span class="nc">File</span><span class="p">(</span><span class="nb">file</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    wrapper for "file" with locking</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">name</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">"rb"</span><span class="p">,</span> <span class="n">buffering</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+        <span class="sd">"""file(name[, mode[, buffering]]) -> file object</span>
+<span class="sd">            </span>
+<span class="sd">        Open a file.  The mode can be 'r', 'w' or 'a' for reading (default),</span>
+<span class="sd">        writing or appending.  The file will be created if it doesn't exist</span>
+<span class="sd">        when opened for writing or appending; it will be truncated when</span>
+<span class="sd">        opened for writing.  Add a 'b' to the mode for binary files.</span>
+<span class="sd">        Add a '+' to the mode to allow simultaneous reading and writing.</span>
+<span class="sd">        If the buffering argument is given, 0 means unbuffered, 1 means line</span>
+<span class="sd">        buffered, and larger numbers specify the buffer size.  The preferred way</span>
+<span class="sd">        to open a file is with the builtin open() function.</span>
+<span class="sd">        Add a 'U' to mode to open the file for input with universal newline</span>
+<span class="sd">        support.  Any line ending in the input file will be seen as a '\n'</span>
+<span class="sd">        in Python.  Also, a file so opened gains the attribute 'newlines';</span>
+<span class="sd">        the value for this attribute is one of None (no newline read yet),</span>
+<span class="sd">        '\r', '\n', '\r\n' or a tuple containing all the newline types seen.</span>
+<span class="sd">        </span>
+<span class="sd">        'U' cannot be combined with 'w' or '+' mode.</span>
+<span class="sd">        """</span>
+        <span class="nb">file</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">mode</span><span class="p">,</span> <span class="n">buffering</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">lock</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">Semaphore</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="bp">None</span>
+<div class="viewcode-block" id="File.getSize"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.File.getSize">[docs]</a>    <span class="k">def</span> <span class="nf">getSize</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Measuring size of </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+            <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">lock</span><span class="p">:</span>
+                <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_END</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__size</span></div>
+<div class="viewcode-block" id="File.setSize"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.File.setSize">[docs]</a>    <span class="k">def</span> <span class="nf">setSize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="n">size</span></div>
+    <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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Close the file.</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="nb">file</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="bp">self</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="k">return</span> <span class="bp">self</span>
+    <span class="n">size</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getSize</span><span class="p">,</span> <span class="n">setSize</span><span class="p">)</span>
+
+</div>
+<div class="viewcode-block" id="UnknownCompressedFile"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.UnknownCompressedFile">[docs]</a><span class="k">class</span> <span class="nc">UnknownCompressedFile</span><span class="p">(</span><span class="n">File</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    wrapper for "File" with locking</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">name</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">"rb"</span><span class="p">,</span> <span class="n">buffering</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"No decompressor found for this type of file (are gzip anf bz2 installed ???"</span><span class="p">)</span>
+        <span class="n">File</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">mode</span><span class="p">,</span> <span class="n">buffering</span><span class="p">)</span>
+</div>
+<span class="k">if</span> <span class="n">gzip</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+    <span class="n">GzipFile</span> <span class="o">=</span> <span class="n">UnknownCompressedFile</span>
+<span class="k">else</span><span class="p">:</span>
+<div class="viewcode-block" id="GzipFile"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.GzipFile">[docs]</a>    <span class="k">class</span> <span class="nc">GzipFile</span><span class="p">(</span><span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Just a wrapper forgzip.GzipFile providing the correct seek capabilities for python 2.5   </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">filename</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">compresslevel</span><span class="o">=</span><span class="mi">9</span><span class="p">,</span> <span class="n">fileobj</s [...]
+            <span class="sd">"""</span>
+<span class="sd">            Wrapper with locking for constructor for the GzipFile class.</span>
+<span class="sd">            </span>
+<span class="sd">            At least one of fileobj and filename must be given a</span>
+<span class="sd">            non-trivial value.</span>
+<span class="sd">            </span>
+<span class="sd">            The new class instance is based on fileobj, which can be a regular</span>
+<span class="sd">            file, a StringIO object, or any other object which simulates a file.</span>
+<span class="sd">            It defaults to None, in which case filename is opened to provide</span>
+<span class="sd">            a file object.</span>
+<span class="sd">            </span>
+<span class="sd">            When fileobj is not None, the filename argument is only used to be</span>
+<span class="sd">            included in the gzip file header, which may includes the original</span>
+<span class="sd">            filename of the uncompressed file.  It defaults to the filename of</span>
+<span class="sd">            fileobj, if discernible; otherwise, it defaults to the empty string,</span>
+<span class="sd">            and in this case the original filename is not included in the header.</span>
+<span class="sd">            </span>
+<span class="sd">            The mode argument can be any of 'r', 'rb', 'a', 'ab', 'w', or 'wb',</span>
+<span class="sd">            depending on whether the file will be read or written.  The default</span>
+<span class="sd">            is the mode of fileobj if discernible; otherwise, the default is 'rb'.</span>
+<span class="sd">            Be aware that only the 'rb', 'ab', and 'wb' values should be used</span>
+<span class="sd">            for cross-platform portability.</span>
+<span class="sd">            </span>
+<span class="sd">            The compresslevel argument is an integer from 1 to 9 controlling the</span>
+<span class="sd">            level of compression; 1 is fastest and produces the least compression,</span>
+<span class="sd">            and 9 is slowest and produces the most compression.  The default is 9.</span>
+<span class="sd">            """</span>
+            <span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">mode</span><span class="p">,</span> <span class="n">compresslevel</span><span class="p">,</span> <span class="n">fileobj</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">lock</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">Semaphore</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="bp">None</span>
+
+
+        <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span> <span class="o"><</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">7</span><span class="p">):</span>
+            <span class="k">def</span> <span class="nf">getSize</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Measuring size of </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+                    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+                        <span class="n">f</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="o">-</span><span class="mi">4</span><span class="p">)</span>
+                        <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</spa [...]
+                <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__size</span>
+            <span class="k">def</span> <span class="nf">setSize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="n">value</span>
+            <span class="n">size</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getSize</span><span class="p">,</span> <span class="n">setSize</span><span class="p">)</span>
+            <span class="nd">@property</span>
+            <span class="k">def</span> <span class="nf">closed</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="o">.</span><span class="n">fileobj</span> <span class="ow">is</span> <span class="bp">None</span>
+
+            <span class="k">def</span> <span class="nf">seek</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">offset</span><span class="p">,</span> <span class="n">whence</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">SEEK_SET</span><span class="p">):</span>
+                <span class="sd">"""</span>
+<span class="sd">                Move to new file position.</span>
+<span class="sd">        </span>
+<span class="sd">                Argument offset is a byte count.  Optional argument whence defaults to</span>
+<span class="sd">                0 (offset from start of file, offset should be >= 0); other values are 1</span>
+<span class="sd">                (move relative to current position, positive or negative), and 2 (move</span>
+<span class="sd">                relative to end of file, usually negative, although many platforms allow</span>
+<span class="sd">                seeking beyond the end of a file).  If the file is opened in text mode,</span>
+<span class="sd">                only offsets returned by tell() are legal.  Use of other offsets causes</span>
+<span class="sd">                undefined behavior.</span>
+<span class="sd">                </span>
+<span class="sd">                This is a wrapper for seek to ensure compatibility with old python 2.5</span>
+<span class="sd">                """</span>
+                <span class="k">if</span> <span class="n">whence</span> <span class="o">==</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_SET</span><span class="p">:</span>
+                    <span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
+                <span class="k">elif</span> <span class="n">whence</span> <span class="o">==</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_CUR</span><span class="p">:</span>
+                    <span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">offset</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">tell</span><span class="p">())</span>
+                <span class="k">elif</span> <span class="n">whence</span> <span class="o">==</span> <span class="n">os</span><span class="o">.</span><span class="n">SEEK_END</span><span class="p">:</span>
+                    <span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
+                    <span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">offset</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">tell</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+                <span class="sd">"""</span>
+<span class="sd">                Close the file.</span>
+<span class="sd">                """</span>
+                <span class="k">return</span> <span class="n">gzip</span><span class="o">.</span><span class="n">GzipFile</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+</div>
+<span class="k">if</span> <span class="n">bz2</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+    <span class="n">BZ2File</span> <span class="o">=</span> <span class="n">UnknownCompressedFile</span>
+<span class="k">else</span><span class="p">:</span>
+<div class="viewcode-block" id="BZ2File"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.BZ2File">[docs]</a>    <span class="k">class</span> <span class="nc">BZ2File</span><span class="p">(</span><span class="n">bz2</span><span class="o">.</span><span class="n">BZ2File</span><span class="p">):</span>
+        <span class="s">"Wrapper with lock"</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">name</span> <span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">'r'</span><span class="p">,</span> <span class="n">buffering</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">compresslevel</span><span class="o">=</span><span class="mi">9< [...]
+            <span class="sd">"""</span>
+<span class="sd">            BZ2File(name [, mode='r', buffering=0, compresslevel=9]) -> file object</span>
+<span class="sd">            </span>
+<span class="sd">            Open a bz2 file. The mode can be 'r' or 'w', for reading (default) or</span>
+<span class="sd">            writing. When opened for writing, the file will be created if it doesn't</span>
+<span class="sd">            exist, and truncated otherwise. If the buffering argument is given, 0 means</span>
+<span class="sd">            unbuffered, and larger numbers specify the buffer size. If compresslevel</span>
+<span class="sd">            is given, must be a number between 1 and 9.</span>
+<span class="sd">            </span>
+<span class="sd">            Add a 'U' to mode to open the file for input with universal newline</span>
+<span class="sd">            support. Any line ending in the input file will be seen as a '\n' in</span>
+<span class="sd">            Python. Also, a file so opened gains the attribute 'newlines'; the value</span>
+<span class="sd">            for this attribute is one of None (no newline read yet), '\r', '\n',</span>
+<span class="sd">            '\r\n' or a tuple containing all the newline types seen. Universal</span>
+<span class="sd">            newlines are available only when reading.</span>
+<span class="sd">            """</span>
+            <span class="n">bz2</span><span class="o">.</span><span class="n">BZ2File</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span> <span class="p">,</span> <span class="n">mode</span><span class="p">,</span> <span class="n">buffering</span><span class="p">,</span> <span class="n">compresslevel</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">lock</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">Semaphore</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="bp">None</span>
+<div class="viewcode-block" id="BZ2File.getSize"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.BZ2File.getSize">[docs]</a>        <span class="k">def</span> <span class="nf">getSize</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Measuring size of </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+                <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">lock</span><span class="p">:</span>
+                    <span class="n">pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+                    <span class="nb">all</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tell</span><span class="p">()</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__size</span></div>
+<div class="viewcode-block" id="BZ2File.setSize"><a class="viewcode-back" href="../../api/modules.html#fabio.fabioutils.BZ2File.setSize">[docs]</a>        <span class="k">def</span> <span class="nf">setSize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">__size</span> <span class="o">=</span> <span class="n">value</span></div>
+        <span class="n">size</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">getSize</span><span class="p">,</span> <span class="n">setSize</span><span class="p">)</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+                <span class="sd">"""</span>
+<span class="sd">                Close the file.</span>
+<span class="sd">                """</span>
+                <span class="k">return</span> <span class="n">bz2</span><span class="o">.</span><span class="n">BZ2File</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="bp">self</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+            <span class="k">return</span> <span class="bp">self</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/file_series.html b/doc/html/_modules/fabio/file_series.html
new file mode 100644
index 0000000..c00d56f
--- /dev/null
+++ b/doc/html/_modules/fabio/file_series.html
@@ -0,0 +1,496 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.file_series — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.file_series</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+
+<span class="sd">"""</span>
+
+<span class="sd">Authors:</span>
+<span class="sd">........</span>
+
+<span class="sd">* Henning O. Sorensen & Erik Knudsen</span>
+<span class="sd">  Center for Fundamental Research: Metal Structures in Four Dimensions</span>
+<span class="sd">  Risoe National Laboratory</span>
+<span class="sd">  Frederiksborgvej 399</span>
+<span class="sd">  DK-4000 Roskilde</span>
+<span class="sd">  email:erik.knudsen at risoe.dk</span>
+<span class="sd">* Jon Wright, ESRF</span>
+
+<span class="sd">"""</span>
+<span class="kn">import</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">sys</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"fileseries"</span><span class="p">)</span>
+<span class="kn">import</span> <span class="nn">traceback</span> <span class="kn">as</span> <span class="nn">pytraceback</span>
+
+<span class="kn">from</span> <span class="nn">fabioutils</span> <span class="kn">import</span> <span class="n">FilenameObject</span><span class="p">,</span> <span class="n">next_filename</span>
+
+<span class="kn">from</span> <span class="nn">openimage</span> <span class="kn">import</span> <span class="n">openimage</span>
+
+
+<div class="viewcode-block" id="new_file_series0"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.new_file_series0">[docs]</a><span class="k">def</span> <span class="nf">new_file_series0</span><span class="p">(</span><span class="n">first_object</span><span class="p">,</span> <span class="n">first</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">last</span><span class="o">=</span><span class="bp">None</span><span c [...]
+    <span class="sd">"""</span>
+<span class="sd">    Created from a fabio image</span>
+<span class="sd">    first and last are file numbers</span>
+
+<span class="sd">    """</span>
+    <span class="n">im</span> <span class="o">=</span> <span class="n">first_object</span>
+    <span class="n">nimages</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="c"># for counting images</span>
+    <span class="k">if</span> <span class="bp">None</span> <span class="ow">in</span> <span class="p">(</span><span class="n">first</span><span class="p">,</span> <span class="n">last</span><span class="p">):</span>
+        <span class="n">step</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="n">total</span> <span class="o">=</span> <span class="mi">1</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">total</span> <span class="o">=</span> <span class="n">last</span> <span class="o">-</span> <span class="n">first</span>
+
+    <span class="k">yield</span> <span class="n">im</span>
+    <span class="k">while</span> <span class="n">nimages</span> <span class="o"><</span> <span class="n">total</span><span class="p">:</span>
+        <span class="n">nimages</span> <span class="o">+=</span> <span class="n">step</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">newim</span> <span class="o">=</span> <span class="n">im</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
+            <span class="n">im</span> <span class="o">=</span> <span class="n">newim</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+            <span class="n">pytraceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">()</span>
+
+            <span class="c"># Skip bad images</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Got a problem here: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">error</span><span class="p">)</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">im</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">next_filename</span><span class="p">(</span><span class="n">im</span><span class="o">.</span><span class="n">filename</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+                <span class="c"># KE: This will not work and will throw an exception</span>
+                <span class="c"># fabio.next_filename doesn't understand %nnnn on the end</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Got another problem here: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">error</span><span class="p">)</span>
+                <span class="n">im</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">next_filename</span><span class="p">(</span><span class="n">im</span><span class="o">.</span><span class="n">sequencefilename</span><span class="p">)</span>
+            <span class="k">yield</span> <span class="bp">None</span>
+        <span class="k">yield</span> <span class="n">im</span>
+
+
+</div>
+<div class="viewcode-block" id="new_file_series"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.new_file_series">[docs]</a><span class="k">def</span> <span class="nf">new_file_series</span><span class="p">(</span><span class="n">first_object</span><span class="p">,</span> <span class="n">nimages</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">step</span><span class="o">=</span><span class="mi">1</span><span class="p [...]
+    <span class="sd">"""</span>
+<span class="sd">    A generator function that creates a file series starting from a a fabioimage.</span>
+<span class="sd">    Iterates through all images in a file (if more than 1), then proceeds to</span>
+<span class="sd">    the next file as determined by fabio.next_filename.</span>
+
+<span class="sd">    @param first_object: the starting fabioimage, which will be the first one yielded</span>
+<span class="sd">        in the sequence</span>
+<span class="sd">    @param nimages:  the maximum number of images to consider</span>
+<span class="sd">        step: step size, will yield the first and every step'th image until nimages</span>
+<span class="sd">        is reached.  (e.g. nimages = 5, step = 2 will yield 3 images (0, 2, 4)</span>
+<span class="sd">    @param traceback: if True causes it to print a traceback in the event of an</span>
+<span class="sd">        exception (missing image, etc.).  Otherwise the calling routine can handle</span>
+<span class="sd">        the exception as it chooses</span>
+<span class="sd">    @param yields: the next fabioimage in the series.</span>
+<span class="sd">        In the event there is an exception, it yields the sys.exec_info for the</span>
+<span class="sd">        exception instead.  sys.exec_info is a tuple:</span>
+<span class="sd">        ( exceptionType, exceptionValue, exceptionTraceback )</span>
+<span class="sd">        from which all the exception information can be obtained.</span>
+
+<span class="sd">    Suggested usage:</span>
+<span class="sd">    </span>
+<span class="sd">    ::</span>
+<span class="sd">    </span>
+<span class="sd">        for obj in new_file_series( ... ):</span>
+<span class="sd">          if not isinstance(obj, fabio.fabioimage.fabioimage ):</span>
+<span class="sd">            # deal with errors like missing images, non readable files, etc</span>
+<span class="sd">            # e.g.</span>
+<span class="sd">            traceback.print_exception(obj[0], obj[1], obj[2])</span>
+
+<span class="sd">    """</span>
+    <span class="n">im</span> <span class="o">=</span> <span class="n">first_object</span>
+    <span class="n">nprocessed</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="n">abort</span> <span class="o">=</span> <span class="bp">False</span>
+    <span class="k">if</span> <span class="n">nimages</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+        <span class="k">yield</span> <span class="n">im</span>
+        <span class="n">nprocessed</span> <span class="o">+=</span> <span class="mi">1</span>
+    <span class="k">while</span> <span class="n">nprocessed</span> <span class="o"><</span> <span class="n">nimages</span><span class="p">:</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">newim</span> <span class="o">=</span> <span class="n">im</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
+            <span class="n">im</span> <span class="o">=</span> <span class="n">newim</span>
+            <span class="n">retVal</span> <span class="o">=</span> <span class="n">im</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">ex</span><span class="p">:</span>
+            <span class="n">retVal</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">()</span>
+            <span class="k">if</span><span class="p">(</span><span class="n">traceback</span><span class="p">):</span>
+                <span class="n">pytraceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">()</span>
+                <span class="c"># Skip bad images</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Got a problem here: next() failed </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">ex</span><span class="p">)</span>
+            <span class="c"># Skip bad images</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">im</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">next_filename</span><span class="p">(</span><span class="n">im</span><span class="o">.</span><span class="n">filename</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">ex</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Got another problem here: next_filename(im.filename) </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">ex</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">nprocessed</span> <span class="o">%</span> <span class="n">step</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">yield</span> <span class="n">retVal</span>
+            <span class="c"># Avoid cyclic references with exc_info ?</span>
+            <span class="n">retVal</span> <span class="o">=</span> <span class="bp">None</span>
+            <span class="k">if</span> <span class="n">abort</span><span class="p">:</span> <span class="k">break</span>
+        <span class="n">nprocessed</span> <span class="o">+=</span> <span class="mi">1</span>
+
+
+</div>
+<div class="viewcode-block" id="file_series"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series">[docs]</a><span class="k">class</span> <span class="nc">file_series</span><span class="p">(</span><span class="nb">list</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Represents a series of files to iterate</span>
+<span class="sd">    has an idea of a current position to do next and prev</span>
+
+<span class="sd">    You also get from the list python superclass:</span>
+<span class="sd">       append</span>
+<span class="sd">       count</span>
+<span class="sd">       extend</span>
+<span class="sd">       insert</span>
+<span class="sd">       pop</span>
+<span class="sd">       remove</span>
+<span class="sd">       reverse</span>
+<span class="sd">       sort</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">list_of_strings</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Constructor:</span>
+
+<span class="sd">        @param list_of_strings: arg should be a list of strings which are filenames</span>
+
+<span class="sd">        """</span>
+        <span class="nb">super</span><span class="p">(</span><span class="n">file_series</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">list_of_strings</span><span class="p">)</span>
+        <span class="c"># track current position in list</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">=</span> <span class="mi">0</span>
+
+
+    <span class="c"># methods which return a filename</span>
+
+<div class="viewcode-block" id="file_series.first"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.first">[docs]</a>    <span class="k">def</span> <span class="nf">first</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        First image in series</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+</div>
+<div class="viewcode-block" id="file_series.last"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.last">[docs]</a>    <span class="k">def</span> <span class="nf">last</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Last in series</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+</div>
+<div class="viewcode-block" id="file_series.previous"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.previous">[docs]</a>    <span class="k">def</span> <span class="nf">previous</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Prev in a sequence</span>
+
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">-=</span> <span class="mi">1</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="p">]</span>
+</div>
+<div class="viewcode-block" id="file_series.current"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.current">[docs]</a>    <span class="k">def</span> <span class="nf">current</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""Current position in a sequence</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="p">]</span>
+</div>
+<div class="viewcode-block" id="file_series.next"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.next">[docs]</a>    <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Next in a sequence</span>
+
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="p">]</span>
+</div>
+<div class="viewcode-block" id="file_series.jump"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.jump">[docs]</a>    <span class="k">def</span> <span class="nf">jump</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Goto a position in sequence</span>
+
+<span class="sd">        """</span>
+        <span class="k">assert</span> <span class="n">num</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="ow">and</span> <span class="n">num</span> <span class="o">></span> <span class="mi">0</span><span class="p">,</span> <span class="s">"num out of range"</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">=</span> <span class="n">num</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="p">]</span>
+</div>
+<div class="viewcode-block" id="file_series.len"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.len">[docs]</a>    <span class="k">def</span> <span class="nf">len</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Number of files</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+
+
+    <span class="c"># Methods which return a fabioimage</span>
+</div>
+<div class="viewcode-block" id="file_series.first_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.first_image">[docs]</a>    <span class="k">def</span> <span class="nf">first_image</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        First image in a sequence</span>
+
+<span class="sd">        @return: fabioimage</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">first</span><span class="p">())</span>
+</div>
+<div class="viewcode-block" id="file_series.last_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.last_image">[docs]</a>    <span class="k">def</span> <span class="nf">last_image</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Last image in a sequence</span>
+
+<span class="sd">        @return: fabioimage</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">last</span><span class="p">())</span>
+</div>
+<div class="viewcode-block" id="file_series.next_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.next_image">[docs]</a>    <span class="k">def</span> <span class="nf">next_image</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Return the next image</span>
+
+<span class="sd">        @return: fabioimage</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">next</span><span class="p">())</span>
+</div>
+<div class="viewcode-block" id="file_series.previous_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.previous_image">[docs]</a>    <span class="k">def</span> <span class="nf">previous_image</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Return the previous image</span>
+
+<span class="sd">        @return: fabioimage</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">previous</span><span class="p">())</span>
+</div>
+<div class="viewcode-block" id="file_series.jump_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.jump_image">[docs]</a>    <span class="k">def</span> <span class="nf">jump_image</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Jump to and read image</span>
+
+<span class="sd">        @return: fabioimage</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">jump</span><span class="p">(</span><span class="n">num</span><span class="p">))</span>
+</div>
+<div class="viewcode-block" id="file_series.current_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.current_image">[docs]</a>    <span class="k">def</span> <span class="nf">current_image</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Current image in sequence</span>
+
+<span class="sd">        @return: fabioimage</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">current</span><span class="p">())</span>
+
+    <span class="c"># methods which return a file_object</span>
+</div>
+<div class="viewcode-block" id="file_series.first_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.first_object">[docs]</a>    <span class="k">def</span> <span class="nf">first_object</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        First image in a sequence</span>
+
+<span class="sd">        @return: file_object</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">first</span><span class="p">())</span>
+</div>
+<div class="viewcode-block" id="file_series.last_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.last_object">[docs]</a>    <span class="k">def</span> <span class="nf">last_object</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Last image in a sequence</span>
+
+<span class="sd">        @return: file_object</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">last</span><span class="p">())</span>
+</div>
+<div class="viewcode-block" id="file_series.next_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.next_object">[docs]</a>    <span class="k">def</span> <span class="nf">next_object</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Return the next image</span>
+
+<span class="sd">        @return: file_object</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">next</span><span class="p">())</span>
+</div>
+<div class="viewcode-block" id="file_series.previous_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.previous_object">[docs]</a>    <span class="k">def</span> <span class="nf">previous_object</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Return the previous image</span>
+
+<span class="sd">        @return: file_object</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">previous</span><span class="p">())</span>
+</div>
+<div class="viewcode-block" id="file_series.jump_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.jump_object">[docs]</a>    <span class="k">def</span> <span class="nf">jump_object</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Jump to and read image</span>
+
+<span class="sd">        @return: file_object</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">jump</span><span class="p">(</span><span class="n">num</span><span class="p">))</span>
+</div>
+<div class="viewcode-block" id="file_series.current_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.file_series.current_object">[docs]</a>    <span class="k">def</span> <span class="nf">current_object</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Current image in sequence</span>
+
+<span class="sd">        @return: file_object</span>
+
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">current</span><span class="p">())</span>
+
+
+
+</div></div>
+<div class="viewcode-block" id="numbered_file_series"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.numbered_file_series">[docs]</a><span class="k">class</span> <span class="nc">numbered_file_series</span><span class="p">(</span><span class="n">file_series</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    mydata0001.edf = "mydata" + 0001 + ".edf"</span>
+<span class="sd">    mydata0002.edf = "mydata" + 0002 + ".edf"</span>
+<span class="sd">    mydata0003.edf = "mydata" + 0003 + ".edf"</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">stem</span><span class="p">,</span> <span class="n">first</span><span class="p">,</span> <span class="n">last</span><span class="p">,</span> <span class="n">extension</span><span class="p">,</span>
+                 <span class="n">digits</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">padding</span><span class="o">=</span><span class="s">'Y'</span><span class="p">,</span> <span class="n">step</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Constructor</span>
+
+<span class="sd">        @param stem: first part of the name</span>
+<span class="sd">        @param step: in case of every nth file</span>
+<span class="sd">        @param padding: possibility for specifying that numbers are not padded with zeroes up to digits</span>
+
+<span class="sd">        """</span>
+        <span class="k">if</span> <span class="n">padding</span> <span class="o">==</span> <span class="s">'Y'</span><span class="p">:</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">%0"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">digits</span><span class="p">)</span> <span class="o">+</span> <span class="s">"d</span><span class="si">%s</span><span class="s">"</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">fmt</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s%i%s</span><span class="s">"</span>
+
+        <span class="nb">super</span><span class="p">(</span><span class="n">numbered_file_series</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span>
+            <span class="p">[</span> <span class="n">fmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">stem</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">extension</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">first</span><span class="p">,</span>
+                                                          <span class="n">last</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span>
+                                                          <span class="n">step</span><span class="p">)</span> <span class="p">])</span>
+
+</div>
+<div class="viewcode-block" id="filename_series"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series">[docs]</a><span class="k">class</span> <span class="nc">filename_series</span><span class="p">:</span>
+    <span class="sd">""" Much like the others, but created from a string filename """</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">filename</span><span class="p">):</span>
+        <span class="sd">""" create from a filename (String)"""</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">obj</span> <span class="o">=</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+
+<div class="viewcode-block" id="filename_series.next"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.next">[docs]</a>    <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" increment number """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">num</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+</div>
+<div class="viewcode-block" id="filename_series.previous"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.previous">[docs]</a>    <span class="k">def</span> <span class="nf">previous</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" decrement number """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">num</span> <span class="o">-=</span> <span class="mi">1</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+</div>
+<div class="viewcode-block" id="filename_series.current"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.current">[docs]</a>    <span class="k">def</span> <span class="nf">current</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" return current filename string"""</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+</div>
+<div class="viewcode-block" id="filename_series.jump"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.jump">[docs]</a>    <span class="k">def</span> <span class="nf">jump</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">):</span>
+        <span class="sd">""" jump to a specific number """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">num</span> <span class="o">=</span> <span class="n">num</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+
+    <span class="c"># image methods</span></div>
+<div class="viewcode-block" id="filename_series.next_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.next_image">[docs]</a>    <span class="k">def</span> <span class="nf">next_image</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the next image as a fabioimage """</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">next</span><span class="p">())</span></div>
+<div class="viewcode-block" id="filename_series.prev_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.prev_image">[docs]</a>    <span class="k">def</span> <span class="nf">prev_image</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the previos image as a fabioimage """</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">previous</span><span class="p">())</span></div>
+<div class="viewcode-block" id="filename_series.current_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.current_image">[docs]</a>    <span class="k">def</span> <span class="nf">current_image</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the current image as a fabioimage"""</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">current</span><span class="p">())</span></div>
+<div class="viewcode-block" id="filename_series.jump_image"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.jump_image">[docs]</a>    <span class="k">def</span> <span class="nf">jump_image</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">):</span>
+        <span class="sd">""" returns the image number as a fabioimage"""</span>
+        <span class="k">return</span> <span class="n">openimage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">jump</span><span class="p">(</span><span class="n">num</span><span class="p">))</span>
+    <span class="c"># object methods</span></div>
+<div class="viewcode-block" id="filename_series.next_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.next_object">[docs]</a>    <span class="k">def</span> <span class="nf">next_object</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the next filename as a fabio.FilenameObject"""</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">num</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span></div>
+<div class="viewcode-block" id="filename_series.previous_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.previous_object">[docs]</a>    <span class="k">def</span> <span class="nf">previous_object</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the previous filename as a fabio.FilenameObject"""</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">num</span> <span class="o">-=</span> <span class="mi">1</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span></div>
+<div class="viewcode-block" id="filename_series.current_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.current_object">[docs]</a>    <span class="k">def</span> <span class="nf">current_object</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">""" returns the current filename as a fabio.FilenameObject"""</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span></div>
+<div class="viewcode-block" id="filename_series.jump_object"><a class="viewcode-back" href="../../api/modules.html#fabio.file_series.filename_series.jump_object">[docs]</a>    <span class="k">def</span> <span class="nf">jump_object</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">num</span><span class="p">):</span>
+        <span class="sd">""" returns the filename num as a fabio.FilenameObject"""</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">num</span> <span class="o">=</span> <span class="n">num</span>
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span>
+</pre></div></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/fit2dmaskimage.html b/doc/html/_modules/fabio/fit2dmaskimage.html
new file mode 100644
index 0000000..84aa190
--- /dev/null
+++ b/doc/html/_modules/fabio/fit2dmaskimage.html
@@ -0,0 +1,188 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.fit2dmaskimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.fit2dmaskimage</h1><div class="highlight"><pre>
+<span class="c">## Automatically adapted for numpy.oldnumeric Oct 05, 2007 by alter_code1.py</span>
+
+<span class="c">#!/usr/bin/env python</span>
+<span class="sd">"""</span>
+
+<span class="sd">Author: Andy Hammersley, ESRF</span>
+<span class="sd">Translation into python/fabio: Jon Wright, ESRF</span>
+<span class="sd">"""</span>
+
+<span class="kn">import</span> <span class="nn">numpy</span>
+
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+
+
+<div class="viewcode-block" id="fit2dmaskimage"><a class="viewcode-back" href="../../api/modules.html#fabio.fit2dmaskimage.fit2dmaskimage">[docs]</a><span class="k">class</span> <span class="nc">fit2dmaskimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">""" Read and try to write Andy Hammersley's mask format """</span>
+
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in a header from an already open file</span>
+<span class="sd">        """</span>
+        <span class="c"># 1024 bytes gives 256x32 bit integers</span>
+        <span class="n">header</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">1024</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="ow">in</span> <span class="p">[</span> <span class="p">(</span><span class="s">"M"</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
+                      <span class="p">(</span><span class="s">"A"</span><span class="p">,</span> <span class="mi">4</span><span class="p">),</span>
+                      <span class="p">(</span><span class="s">"S"</span><span class="p">,</span> <span class="mi">8</span><span class="p">),</span>
+                      <span class="p">(</span><span class="s">"K"</span><span class="p">,</span> <span class="mi">12</span><span class="p">)</span>  <span class="p">]:</span>
+            <span class="k">if</span> <span class="n">header</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">!=</span> <span class="n">i</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Not a fit2d mask file"</span><span class="p">)</span>
+        <span class="n">fit2dhdr</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="n">fit2dhdr</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="c"># 1 less than Andy's fortran</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="n">fit2dhdr</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span>
+
+
+<div class="viewcode-block" id="fit2dmaskimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.fit2dmaskimage.fit2dmaskimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in header into self.header and</span>
+<span class="sd">            the data   into self.data</span>
+<span class="sd">        """</span>
+        <span class="n">fin</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">fin</span><span class="p">)</span>
+        <span class="c"># Compute image size</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class=" [...]
+
+        <span class="c"># integer division</span>
+        <span class="n">num_ints</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">+</span> <span class="mi">31</span><span class="p">)</span> <span class="o">//</span> <span class="mi">32</span>
+        <span class="n">total</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">*</span> <span class="n">num_ints</span> <span class="o">*</span> <span class="mi">4</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="n">fin</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">total</span><span class="p">)</span>
+        <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="o">==</span> <span class="n">total</span>
+        <span class="n">fin</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+        <span class="c"># Now to unpack it</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="n">num_ints</span> <span class="o">*</span> <span class="mi">4</span><span class="p">))</span>
+
+        <span class="n">result</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="n">num_ints</span> <span class="o">*</span> <span class="mi">4</span> <span class="o">*</span> <span class="mi">8</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span cla [...]
+
+        <span class="c"># Unpack using bitwise comparisons to 2**n</span>
+        <span class="n">bits</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">ones</span><span class="p">((</span><span class="mi">1</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">8</span><span class="p">):</span>
+            <span class="n">temp</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">bitwise_and</span><span class="p">(</span><span class="n">bits</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
+            <span class="n">result</span><span class="p">[:,</span> <span class="n">i</span><span class="p">::</span><span class="mi">8</span><span class="p">]</span> <span class="o">=</span> <span class="n">temp</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span>
+            <span class="n">bits</span> <span class="o">=</span> <span class="n">bits</span> <span class="o">*</span> <span class="mi">2</span>
+        <span class="c"># Extra rows needed for packing odd dimensions</span>
+        <span class="n">spares</span> <span class="o">=</span> <span class="n">num_ints</span> <span class="o">*</span> <span class="mi">4</span> <span class="o">*</span> <span class="mi">8</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span>
+        <span class="k">if</span> <span class="n">spares</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">result</span> <span class="o">==</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">result</span><span class="p">[:,</span> <span class="p">:</span><span class="o">-</span><span class="n">spares</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class= [...]
+        <span class="c"># Transpose appears to be needed to match edf reader (scary??)</span>
+<span class="c">#        self.data = numpy.transpose(self.data)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">),</span>
+                                    <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">))</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">return</span> <span class="bp">self</span>
+
+
+</div>
+<div class="viewcode-block" id="fit2dmaskimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.fit2dmaskimage.fit2dmaskimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Try to write a file</span>
+<span class="sd">        check we can write zipped also</span>
+<span class="sd">        mimics that fabian was writing uint16 (we sometimes want floats)</span>
+<span class="sd">        """</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Not implemented yet"</span><span class="p">)</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="fit2dmaskimage.checkData"><a class="viewcode-back" href="../../api/modules.html#fabio.fit2dmaskimage.fit2dmaskimage.checkData">[docs]</a>    <span class="k">def</span> <span class="nf">checkData</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">None</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span></div></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/fit2dspreadsheetimage.html b/doc/html/_modules/fabio/fit2dspreadsheetimage.html
new file mode 100644
index 0000000..5bde89c
--- /dev/null
+++ b/doc/html/_modules/fabio/fit2dspreadsheetimage.html
@@ -0,0 +1,177 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.fit2dspreadsheetimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.fit2dspreadsheetimage</h1><div class="highlight"><pre>
+<span class="sd">"""</span>
+<span class="sd">Read the fit2d ascii image output</span>
+<span class="sd">        + Jon Wright, ESRF</span>
+<span class="sd">"""</span>
+
+<span class="kn">import</span> <span class="nn">numpy</span>
+
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+
+
+
+
+<span class="k">class</span> <span class="nc">fit2dspreadsheetimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<div class="viewcode-block" id="fit2dspreadsheetimage"><a class="viewcode-back" href="../../api/modules.html#fabio.fit2dspreadsheetimage.fit2dspreadsheetimage">[docs]</a><span class="sd">    Read a fit2d ascii format</span>
+<span class="sd">    """</span>
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+
+<span class="sd">        TODO : test for minimal attributes?</span>
+<span class="sd">        """</span>
+        <span class="n">line</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">items</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
+            <span class="n">xdim</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">items</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+            <span class="n">ydim</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">items</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'title'</span><span class="p">]</span> <span class="o">=</span> <span class="n">line</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_1'</span><span class="p">]</span> <span class="o">=</span> <span class="n">xdim</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_2'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ydim</span>
+
+    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<div class="viewcode-block" id="fit2dspreadsheetimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read">[docs]</a><span class="sd">        Read in header into self.header and</span>
+<span class="sd">            the data   into self.data</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="c"># Compute image size</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_1'</span><span class="p">])</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Dim_2'</span><span class="p">])</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"file"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="o">+</span> \
+                                <span class="s">"is corrupt, cannot read it"</span><span class="p">)</span>
+        <span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+
+        <span class="c">#now read the data into the array</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">vals</span> <span class="o">=</span> <span class="p">[]</span>
+            <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">infile</span><span class="o">.</span><span class="n">readlines</span><span class="p">():</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">vals</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">()])</span>
+                <span class="k">except</span><span class="p">:</span>
+                    <span class="k">pass</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">vals</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">bytecode</span><span class="p">)</span>
+            <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="o">==</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">)</span>
+
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> <span class="s">"Error reading ascii"</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="c"># ensure the PIL image is reset</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">return</span> <span class="bp">self</span>
+
+
+<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span>
+    <span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">time</span></div></div>
+    <span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+    <span class="n">img</span> <span class="o">=</span> <span class="n">fit2dspreadsheetimage</span><span class="p">()</span>
+    <span class="n">img</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+    <span class="k">print</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">start</span>
+    <span class="k">print</span> <span class="n">img</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="n">img</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="n">img</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+    <span class="kn">from</span> <span class="nn">matplotlib.pylab</span> <span class="kn">import</span> <span class="n">imshow</span><span class="p">,</span> <span class="n">show</span>
+    <span class="n">imshow</span><span class="p">(</span><span class="n">img</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">T</span><span class="p">)</span>
+    <span class="n">show</span><span class="p">()</span>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/kcdimage.html b/doc/html/_modules/fabio/kcdimage.html
new file mode 100644
index 0000000..cfc4ecc
--- /dev/null
+++ b/doc/html/_modules/fabio/kcdimage.html
@@ -0,0 +1,225 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.kcdimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.kcdimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="sd">"""</span>
+<span class="sd">Authors: Jerome Kieffer, ESRF </span>
+<span class="sd">         email:jerome.kieffer at esrf.fr</span>
+
+<span class="sd">kcd images are 2D images written by the old KappaCCD diffractometer built by Nonius in the 1990's</span>
+<span class="sd">Based on the edfimage.py parser.</span>
+<span class="sd">"""</span>
+
+<span class="kn">import</span> <span class="nn">numpy</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">string</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"kcdimage"</span><span class="p">)</span>
+
+<span class="n">DATA_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="s">"u16"</span>  <span class="p">:</span>  <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span> <span class="p">}</span>
+
+<span class="n">MINIMUM_KEYS</span> <span class="o">=</span> <span class="p">[</span>
+                <span class="s">'ByteOrder'</span><span class="p">,</span>
+                <span class="s">'Data type'</span><span class="p">,</span>
+                <span class="s">'X dimension'</span><span class="p">,</span>
+                <span class="s">'Y dimension'</span><span class="p">,</span>
+                <span class="s">'Number of readouts'</span><span class="p">]</span>
+
+<span class="n">DEFAULT_VALUES</span> <span class="o">=</span> <span class="p">{</span> <span class="s">"Data type"</span><span class="p">:</span> <span class="s">"u16"</span> <span class="p">}</span>
+
+
+
+
+<div class="viewcode-block" id="kcdimage"><a class="viewcode-back" href="../../api/modules.html#fabio.kcdimage.kcdimage">[docs]</a><span class="k">class</span> <span class="nc">kcdimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">""" </span>
+<span class="sd">    Read the Nonius kcd data format """</span>
+
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in a header in some KCD format from an already open file</span>
+<span class="sd">        @</span>
+<span class="sd">        """</span>
+        <span class="n">oneLine</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+        <span class="n">alphanum</span> <span class="o">=</span> <span class="n">string</span><span class="o">.</span><span class="n">digits</span> <span class="o">+</span> <span class="n">string</span><span class="o">.</span><span class="n">letters</span> <span class="o">+</span> <span class="s">". "</span>
+        <span class="n">asciiHeader</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">for</span> <span class="n">oneChar</span> <span class="ow">in</span> <span class="n">oneLine</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">oneChar</span> <span class="ow">in</span> <span class="n">alphanum</span><span class="p">:</span>
+                <span class="n">asciiHeader</span> <span class="o">=</span> <span class="bp">False</span>
+
+
+        <span class="k">if</span> <span class="n">asciiHeader</span> <span class="ow">is</span> <span class="bp">False</span><span class="p">:</span>
+            <span class="c"># This does not look like an edf file</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"First line of </span><span class="si">%s</span><span class="s"> does not seam to be ascii text!"</span> <span class="o">%</span> <span class="n">infile</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+        <span class="n">endOfHeaders</span> <span class="o">=</span> <span class="bp">False</span>
+        <span class="k">while</span> <span class="ow">not</span> <span class="n">endOfHeaders</span><span class="p">:</span>
+            <span class="n">oneLine</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">oneLine</span><span class="p">)</span> <span class="o">></span> <span class="mi">100</span><span class="p">:</span>
+                <span class="n">endOfHeaders</span> <span class="o">=</span> <span class="bp">True</span>
+                <span class="k">break</span>
+            <span class="k">if</span> <span class="n">oneLine</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s">"Binned mode"</span><span class="p">:</span>
+                <span class="n">oneLine</span> <span class="o">=</span> <span class="s">"Mode = Binned"</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">key</span><span class="p">,</span> <span class="n">val</span> <span class="o">=</span> <span class="n">oneLine</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'='</span> <span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="n">endOfHeaders</span> <span class="o">=</span> <span class="bp">True</span>
+                <span class="k">break</span>
+            <span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+        <span class="n">missing</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">MINIMUM_KEYS</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">item</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">:</span>
+                <span class="n">missing</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">missing</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"KCD file misses the keys "</span> <span class="o">+</span> <span class="s">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">missing</span><span class="p">))</span>
+
+
+<div class="viewcode-block" id="kcdimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.kcdimage.kcdimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read in header into self.header and</span>
+<span class="sd">            the data   into self.data</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="c"># Compute image size</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'X dimension'</span><span class="p">])</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Y dimension'</span><span class="p">])</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"KCD file </span><span class="si">%s</span><span class="s"> is corrupt, cannot read it"</span> <span class="o">%</span> <span class="n">fname</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">bytecode</span> <span class="o">=</span> <span class="n">DATA_TYPES</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Data type'</span><span class="p">]]</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+        <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
+            <span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="mi">2</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Defaulting type to uint16"</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">nbReadOut</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Number of readouts'</span><span class="p">])</span>
+        <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Defaulting number of ReadOut to 1"</span><span class="p">)</span>
+            <span class="n">nbReadOut</span> <span class="o">=</span> <span class="mi">1</span>
+        <span class="n">fileSize</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">stat</span><span class="p">(</span><span class="n">fname</span><span class="p">)[</span><span class="mi">6</span><span class="p">]</span>
+        <span class="n">expected_size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">*</span> <span class="n">nbReadOut</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">fileSize</span> <span class="o">-</span> <span class="n">expected_size</span><span class="p">)</span>
+        <span class="n">block</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+        <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">block</span><span class="p">)</span> <span class="o">==</span> <span class="n">expected_size</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+        <span class="c">#now read the data into the array</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">))</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nbReadOut</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">+=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span>
+                    <span class="n">block</span><span class="p">[</span><span class="n">i</span> <span class="o">*</span> <span class="n">expected_size</span> <span class="o">/</span> <span class="n">nbReadOut</span><span class="p">:(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="n">expected_size</span> <span class="o">/</span> <span class="n">nbReadOut</span><span class="p">],</span> <span  [...]
+                    <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">])</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">print</span> <span class="nb">len</span><span class="p">(</span><span class="n">block</span><span class="p">),</span> <span class="n">bytecode</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> \
+              <span class="s">'Size spec in kcd-header does not match size of image data field'</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">type</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="c"># ensure the PIL image is reset</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">return</span> <span class="bp">self</span>
+
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="kcdimage.checkData"><a class="viewcode-back" href="../../api/modules.html#fabio.kcdimage.kcdimage.checkData">[docs]</a>    <span class="k">def</span> <span class="nf">checkData</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">None</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span></div></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/mar345image.html b/doc/html/_modules/fabio/mar345image.html
new file mode 100644
index 0000000..74b843d
--- /dev/null
+++ b/doc/html/_modules/fabio/mar345image.html
@@ -0,0 +1,420 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.mar345image — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.mar345image</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#coding: utf8 </span>
+<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">with_statement</span>
+<span class="n">__doc__</span> <span class="o">=</span> <span class="s">"""</span>
+
+<span class="s">Authors:</span>
+<span class="s">........</span>
+<span class="s">* Henning O. Sorensen & Erik Knudsen:</span>
+<span class="s">  Center for Fundamental Research: Metal Structures in Four Dimensions;</span>
+<span class="s">  Risoe National Laboratory;</span>
+<span class="s">  Frederiksborgvej 399;</span>
+<span class="s">  DK-4000 Roskilde;</span>
+<span class="s">  email:erik.knudsen at risoe.dk</span>
+<span class="s">* Jon Wright, Jérôme Kieffer & Gaël Goret:</span>
+<span class="s">  European Synchrotron Radiation Facility;</span>
+<span class="s">  Grenoble (France)</span>
+
+<span class="s">         </span>
+<span class="s">"""</span>
+
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">import</span> <span class="nn">numpy</span><span class="o">,</span> <span class="nn">struct</span><span class="o">,</span> <span class="nn">time</span><span class="o">,</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">traceback</span>
+<span class="kn">import</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"mar345image"</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">compression</span> <span class="kn">import</span> <span class="n">compPCK</span><span class="p">,</span> <span class="n">decPCK</span>
+
+
+<div class="viewcode-block" id="mar345image"><a class="viewcode-back" href="../../api/modules.html#fabio.mar345image.mar345image">[docs]</a><span class="k">class</span> <span class="nc">mar345image</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="n">_need_a_real_file</span> <span class="o">=</span> <span class="bp">True</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">numhigh</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">numpixels</span> <span class="o">=</span> <span class="bp">None</span>
+
+<div class="viewcode-block" id="mar345image.read"><a class="viewcode-back" href="../../api/modules.html#fabio.mar345image.mar345image.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">""" Read a mar345 image"""</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">fname</span>
+        <span class="n">f</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
+        <span class="k">if</span> <span class="s">'compressed'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'Format'</span><span class="p">]:</span>
+<span class="c">#            self.data = decPCK(f, self.dim1, self.dim2, self.numhigh, version=1)</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">decPCK</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s">. importing the mar345_io backend: generate an empty 1x1 picture'</span> <span class="o">%</span> <span class="n">error</span><span class="p">)</span>
+                <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="mi">1</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="mi">1</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int</span> <span class="c">#</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">0</span><span class="p">],</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int</span><span class="p">),</span> <span  [...]
+                <span class="k">return</span> <span class="bp">self</span>
+
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"cannot handle these formats yet "</span> <span class="o">+</span> \
+                <span class="s">"due to lack of documentation"</span><span class="p">)</span>
+            <span class="k">return</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint</span>
+        <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div>
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">""" Read a mar345 image header """</span>
+        <span class="c"># clip was not used anywhere - commented out</span>
+        <span class="c"># clip = '\x00'</span>
+        <span class="c">#using a couple of local variables inside this function</span>
+        <span class="n">f</span> <span class="o">=</span> <span class="n">infile</span>
+        <span class="n">h</span> <span class="o">=</span> <span class="p">{}</span>
+
+        <span class="c">#header is 4096 bytes long</span>
+        <span class="n">l</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">64</span><span class="p">)</span>
+        <span class="c">#the contents of the mar345 header is taken to be as</span>
+        <span class="c"># described in</span>
+        <span class="c"># http://www.mar-usa.com/support/downloads/mar345_formats.pdf</span>
+        <span class="c">#the first 64 bytes are 4-byte integers (but in the CBFlib</span>
+        <span class="c"># example image it seems to 128 bytes?)</span>
+        <span class="c">#first 4-byte integer is a marker to check endianness</span>
+        <span class="k">if</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s">"<i"</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1234</span><span class="p">:</span>
+            <span class="n">fs</span> <span class="o">=</span> <span class="s">'<i'</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">fs</span> <span class="o">=</span> <span class="s">'>i'</span>
+
+        <span class="c">#image dimensions</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">4< [...]
+        <span class="c">#number of high intensity pixels</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">numhigh</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">2</span> <span class="o">*</span> <span class="mi">4</span> <span class="p">:</span> <span class="p">(</span><span class="mi">2</span> <span class="o">+</s [...]
+        <span class="n">h</span><span class="p">[</span><span class="s">'NumHigh'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">numhigh</span>
+        <span class="c">#Image format</span>
+        <span class="n">i</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">3</span> <span class="o">*</span> <span class="mi">4</span> <span class="p">:</span> <span class="p">(</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <sp [...]
+        <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">h</span><span class="p">[</span><span class="s">'Format'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'compressed'</span>
+        <span class="k">elif</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
+            <span class="n">h</span><span class="p">[</span><span class="s">'Format'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'spiral'</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">h</span><span class="p">[</span><span class="s">'Format'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'compressed'</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"image format could not be detetermined"</span> <span class="o">+</span> \
+                <span class="s">"- assuming compressed mar345"</span><span class="p">)</span>
+        <span class="c">#collection mode</span>
+        <span class="n">h</span><span class="p">[</span><span class="s">'Mode'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">:</span><span class="s">'Dose'</span><span class="p">,</span> <span class="mi">1</span><span class="p">:</span> <span class="s">'Time'</span><span class="p">}[</span><span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</s [...]
+        <span class="c">#total number of pixels</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">numpixels</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">5</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:(</span><span class="mi">5</span> <span class="o">+</span> <span class="mi">1 [...]
+        <span class="n">h</span><span class="p">[</span><span class="s">'NumPixels'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numpixels</span><span class="p">)</span>
+        <span class="c">#pixel dimensions (length,height) in mm</span>
+        <span class="n">h</span><span class="p">[</span><span class="s">'PixelLength'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">6</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:(</span><span class="mi">6</span> <span class [...]
+        <span class="n">h</span><span class="p">[</span><span class="s">'PixelHeight'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">7</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:(</span><span class="mi">7</span> <span class [...]
+        <span class="c">#x-ray wavelength in AA</span>
+        <span class="n">h</span><span class="p">[</span><span class="s">'Wavelength'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">8</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:(</span><span class="mi">8</span> <span class= [...]
+        <span class="c">#used distance</span>
+        <span class="n">h</span><span class="p">[</span><span class="s">'Distance'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">9</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:(</span><span class="mi">9</span> <span class="o [...]
+        <span class="c">#starting and ending phi</span>
+        <span class="n">h</span><span class="p">[</span><span class="s">'StartPhi'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">10</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:</span><span class="mi">11</span> <span class=" [...]
+        <span class="n">h</span><span class="p">[</span><span class="s">'EndPhi'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">11</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:</span><span class="mi">12</span> <span class="o" [...]
+        <span class="c">#starting and ending omega</span>
+        <span class="n">h</span><span class="p">[</span><span class="s">'StartOmega'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">12</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:</span><span class="mi">13</span> <span class [...]
+        <span class="n">h</span><span class="p">[</span><span class="s">'EndOmega'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">13</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:</span><span class="mi">14</span> <span class=" [...]
+        <span class="c">#Chi and Twotheta angles</span>
+        <span class="n">h</span><span class="p">[</span><span class="s">'Chi'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">14</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:</span><span class="mi">15</span> <span class="o">*< [...]
+        <span class="n">h</span><span class="p">[</span><span class="s">'TwoTheta'</span><span class="p">]</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fs</span><span class="p">,</span> <span class="n">l</span><span class="p">[</span><span class="mi">15</span> <span class="o">*</span> <span class="mi">4</span><span class="p">:</span><span class="mi">16</span> <span class=" [...]
+
+        <span class="c">#the rest of the header is ascii</span>
+        <span class="c"># TODO: validate these values against the binaries already read</span>
+        <span class="n">l</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">128</span><span class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="s">'mar research'</span> <span class="ow">in</span> <span class="n">l</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"the string </span><span class="se">\"</span><span class="s">mar research</span><span class="se">\"</span><span class="s"> should be in "</span> <span class="o">+</span> \
+                <span class="s">"bytes 65-76 of the header but was not"</span><span class="p">)</span>
+            <span class="n">start</span> <span class="o">=</span> <span class="mi">128</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">start</span> <span class="o">=</span> <span class="n">l</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s">'mar research'</span><span class="p">)</span>
+            <span class="n">f</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">64</span> <span class="o">+</span> <span class="n">start</span><span class="p">)</span>
+        <span class="n">l</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4096</span> <span class="o">-</span> <span class="n">start</span> <span class="o">-</span> <span class="mi">64</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+        <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">l</span><span class="o">.</span><span class="n">splitlines</span><span class="p">():</span>
+            <span class="k">if</span> <span class="n">m</span> <span class="o">==</span> <span class="s">'END OF HEADER'</span><span class="p">:</span>
+                <span class="k">break</span>
+            <span class="n">n</span> <span class="o">=</span> <span class="n">m</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">' '</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">''</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="k">if</span> <span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s">'PROGRAM'</span><span class="p">,</span> <span class="s">'DATE'</span><span class="p">,</span> <span class="s">'SCANNER'</span><span class="p">,</span> <span class="s">'HIGH'</span><span class="p">,</span> <span class="s">'MULTIPLIER'</span><span cl [...]
+                        <span class="s">'GAIN'</span><span class="p">,</span> <span class="s">'WAVELENGTH'</span><span class="p">,</span> <span class="s">'DISTANCE'</span><span class="p">,</span> <span class="s">'RESOLUTION'</span><span class="p">,</span>
+                        <span class="s">'CHI'</span><span class="p">,</span> <span class="s">'TWOTHETA'</span><span class="p">,</span> <span class="s">'MODE'</span><span class="p">,</span> <span class="s">'TIME'</span><span class="p">,</span> <span class="s">'GENERATOR'</span><span class="p">,</span>
+                        <span class="s">'MONOCHROMATOR'</span><span class="p">,</span> <span class="s">'REMARK'</span><span class="p">):</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"reading: </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">n</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+                <span class="n">h</span><span class="p">[</span><span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">n</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+                <span class="k">continue</span>
+            <span class="k">if</span> <span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s">'FORMAT'</span><span class="p">):</span>
+                <span class="p">(</span><span class="n">h</span><span class="p">[</span><span class="s">'DIM'</span><span class="p">],</span> <span class="n">h</span><span class="p">[</span><span class="s">'FORMAT_TYPE'</span><span class="p">],</span> <span class="n">h</span><span class="p">[</span><span class="s">'NO_PIXELS'</span><span class="p">])</span> <span class="o">=</span> <span class="n">n</span><span class="p">[</span><span class="mi">1</span><span clas [...]
+                <span class="k">continue</span>
+            <span class="k">if</span> <span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s">'PIXEL'</span><span class="p">,</span> <span class="s">'OFFSET'</span><span class="p">,</span> <span class="s">'PHI'</span><span class="p">,</span> <span class="s">'OMEGA'</span><span class="p">,</span> <span class="s">'COUNTS'</span><span class="p" [...]
+                        <span class="s">'CENTER'</span><span class="p">,</span> <span class="s">'INTENSITY'</span><span class="p">,</span> <span class="s">'HISTOGRAM'</span><span class="p">,</span> <span class="s">'COLLIMATOR'</span><span class="p">):</span>
+                <span class="n">n</span> <span class="o">=</span> <span class="n">m</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
+                <span class="n">h</span><span class="o">.</span><span class="n">update</span><span class="p">([(</span><span class="n">n</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s">'_'</span> <span class="o">+</span> <span class="n">n</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">n</span><span class="p">[</span><span class="n">j</span> <span class="o">+</ [...]
+                <span class="k">continue</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="n">h</span>
+        <span class="k">return</span> <span class="n">h</span>
+
+<div class="viewcode-block" id="mar345image.write"><a class="viewcode-back" href="../../api/modules.html#fabio.mar345image.mar345image.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""Try to write mar345 file. This is still in beta version.</span>
+<span class="sd">        It uses CCP4 (LGPL) PCK1 algo from JPA"""</span>
+        <span class="n">headers</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_writeheader</span><span class="p">()</span>
+        <span class="n">hotpixels</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_high_intensity_pixel_records</span><span class="p">()</span>
+        <span class="n">compressed_stream</span> <span class="o">=</span> <span class="n">compPCK</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">outfile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">"wb"</span><span class="p">)</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">headers</span><span class="p">)</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">hotpixels</span><span class="p">)</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">compressed_stream</span><span class="p">)</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Error in writing file </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">error</span><span class="p">))</span>
+</div>
+    <span class="k">def</span> <span class="nf">_writeheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linesep</span><span class="o">=</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">4096</span><span class="p">):</span><span class="c">#the standard padding does not inclued</span>
+        <span class="sd">"""</span>
+<span class="sd">        @param linesep: end of line separator</span>
+<span class="sd">        @return string/bytes containing the mar345 header</span>
+<span class="sd">        """</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">version</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">modules</span><span class="p">[</span><span class="s">"fabio"</span><span class="p">]</span><span class="o">.</span><span class="n">version</span>
+        <span class="k">except</span> <span class="p">(</span><span class="ne">KeyError</span><span class="p">,</span> <span class="ne">AttributeError</span><span class="p">):</span>
+            <span class="n">version</span> <span class="o">=</span> <span class="s">"0.1.1"</span>
+        <span class="n">lnsep</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">linesep</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">"HIGH"</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nb_overflow_pixels</span><span class="p">())</span>
+        <span class="n">binheader</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="s">"int32"</span><span class="p">)</span>
+        <span class="n">binheader</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1234</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class [...]
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"MODE"</span><span class="p">,</span> <span class="s">"TIME"</span><span class="p">)</span> <span class="o">==</span> <span class="s">&quo [...]
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span>
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"PIXEL_LENGTH"</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"PIXEL_HEIGHT"</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">8</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"WAVELENGTH"</span><span class="p">,</span> <span class="mi">1</span [...]
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"DISTANCE"</span><span class="p">,</span> <span class="mi">1</span>< [...]
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">10</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"PHI_START"</span><span class="p">,</span> <span class="mi">1</span [...]
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"PHI_END"</span><span class="p">,</span> <span class="mi">1</span>< [...]
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">12</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"OMEGA_START"</span><span class="p">,</span> <span class="mi">1</sp [...]
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">13</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"OMEGA_END"</span><span class="p">,</span> <span class="mi">1</span [...]
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">14</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"CHI"</span><span class="p">,</span> <span class="mi">1</span><span [...]
+        <span class="n">binheader</span><span class="p">[</span><span class="mi">15</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"TWOTHETA"</span><span class="p">,</span> <span class="mi">1</span> [...]
+        <span class="n">lstout</span> <span class="o">=</span> <span class="p">[</span><span class="n">binheader</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span> <span class="o">+</span> <span class="s">'mar research'</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">64</span> <span class="o">-</span> <span class="n">lnsep</span><span class="p">)]</span>
+        <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"PROGRAM"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><spa [...]
+        <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"DATE"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span c [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"SCANNER"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"FORMAT_TYPE"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"FORMAT"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">  </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span>< [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"HIGH"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"PIXEL_LENGTH"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"PIXEL_HEIGHT"</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">):</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"PIXEL"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"LENGTH </span><span class="si">%s</span><span class="s">  HEIGHT </span><span class="si">%s</span><span class="s">"</span> <span cl [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"OFFSET_ROFF"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"OFFSET_TOFF"</span>
+        <span class="k">if</span> <span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"OFFSET"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"ROFF </span><span class="si">%s</span><span class="s">  TOFF </span><span class="si">%s</span><span class="s">"</span> <span class [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"MULTIPLIER"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"GAIN"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"WAVELENGTH"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"DISTANCE"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"RESOLUTION"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"PHI_START"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"PHI_END"</span>
+        <span class="n">key3</span> <span class="o">=</span> <span class="s">"PHI_OSC"</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span cl [...]
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"PHI"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"START </span><span class="si">%s</span><span class="s">  END </span><span class="si">%s</span><span class="s">  OSC </span><span class="si [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"OMEGA_START"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"OMEGA_END"</span>
+        <span class="n">key3</span> <span class="o">=</span> <span class="s">"OMEGA_OSC"</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span cl [...]
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"OMEGA"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"START </span><span class="si">%s</span><span class="s">  END </span><span class="si">%s</span><span class="s">  OSC </span><span class=" [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"CHI"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"TWOTHETA"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"CENTER_X"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"CENTER_Y"</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">):</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"CENTER"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"X </span><span class="si">%s</span><span class="s">  Y </span><span class="si">%s</span><span class="s">"</span> <span class="o">% [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"MODE"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"TIME"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"COUNTS_START"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"COUNTS_END"</span>
+        <span class="n">key3</span> <span class="o">=</span> <span class="s">"COUNTS_NMEAS"</span>
+        <span class="k">if</span> <span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key3</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">heade [...]
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"COUNTS"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"START </span><span class="si">%s</span><span class="s">  END </span><span class="si">%s</span><span class="s">  NMEAS </span><span clas [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"COUNTS_MIN"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"COUNTS_MAX"</span>
+        <span class="k">if</span> <span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"COUNTS"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"MIN </span><span class="si">%s</span><span class="s">  MAX </span><span class="si">%s</span><span class="s">"</span> <span class=" [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"COUNTS_AVE"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"COUNTS_SIG"</span>
+        <span class="k">if</span> <span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"COUNTS"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"AVE </span><span class="si">%s</span><span class="s">  SIG </span><span class="si">%s</span><span class="s">"</span> <span class=" [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"INTENSITY_MIN"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"INTENSITY_MAX"</span>
+        <span class="n">key3</span> <span class="o">=</span> <span class="s">"INTENSITY_AVE"</span>
+        <span class="n">key4</span> <span class="o">=</span> <span class="s">"INTENSITY_SIG"</span>
+        <span class="k">if</span> <span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key3</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">heade [...]
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"INTENSITY"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"MIN </span><span class="si">%s</span><span class="s">  MAX </span><span class="si">%s</span><span class="s">  AVE </span><span class [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"HISTOGRAM_START"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"HISTOGRAM_END"</span>
+        <span class="n">key3</span> <span class="o">=</span> <span class="s">"HISTOGRAM_MAX"</span>
+        <span class="k">if</span> <span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key3</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">heade [...]
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"HISTOGRAM"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"START </span><span class="si">%s</span><span class="s">  END </span><span class="si">%s</span><span class="s">  MAX </span><span cla [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"GENERATOR"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"MONOCHROMATOR"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="n">key1</span> <span class="o">=</span> <span class="s">"COLLIMATOR_WIDTH"</span>
+        <span class="n">key2</span> <span class="o">=</span> <span class="s">"COLLIMATOR_HEIGHT"</span>
+        <span class="k">if</span> <span class="n">key1</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="ow">and</span> <span class="n">key2</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"COLLIMATOR"</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s">"WIDTH </span><span class="si">%s</span><span class="s">  HEIGHT </span><span class="si">%s</span><span class="s">"</span> <spa [...]
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"REMARK"</span>
+        <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">key</span><span class="p [...]
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="mi">64</span> <span class="o">-</span> <span class="n">lnsep</span><span class="p">))</span>
+        <span class="n">key</span> <span class="o">=</span> <span class="s">"END OF HEADER"</span>
+        <span class="n">lstout</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">linesep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lstout</span><span class="p">)</span><span class="o">.</span><span class="n">ljust</span><span class="p">(</span><span class="n">size</span><span class="p">)</span>
+
+
+    <span class="k">def</span> <span class="nf">_high_intensity_pixel_records</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="n">flt_data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+        <span class="n">pix_location</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">flt_data</span> <span class="o">></span> <span class="mi">65535</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">nb_pix</span> <span class="o">=</span> <span class="n">pix_location</span><span class="o">.</span><span class="n">size</span>
+        <span class="k">if</span> <span class="n">nb_pix</span> <span class="o">%</span> <span class="mi">8</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">tmp</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">nb_pix</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="s">"int32"</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">tmp</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(((</span><span class="n">nb_pix</span> <span class="o">//</span> <span class="mi">8</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="n">dtype</span><span class [...]
+        <span class="n">tmp</span><span class="p">[:</span><span class="n">nb_pix</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">pix_location</span> <span class="o">+</span> <span class="mi">1</span>
+        <span class="n">tmp</span><span class="p">[:</span><span class="n">nb_pix</span><span class="p">,</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">flt_data</span><span class="p">[</span><span class="n">pix_location</span><span class="p">]</span>
+        <span class="k">return</span> <span class="n">tmp</span><span class="o">.</span><span class="n">tostring</span><span class="p">()</span>
+
+<div class="viewcode-block" id="mar345image.nb_overflow_pixels"><a class="viewcode-back" href="../../api/modules.html#fabio.mar345image.mar345image.nb_overflow_pixels">[docs]</a>    <span class="k">def</span> <span class="nf">nb_overflow_pixels</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">></span> <span class="mi">65535</span><span class="p">)</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="mar345image.checkData"><a class="viewcode-back" href="../../api/modules.html#fabio.mar345image.mar345image.checkData">[docs]</a>    <span class="k">def</span> <span class="nf">checkData</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">None</span>
+        <span class="k">else</span><span class="p">:</span>
+<span class="c">#            enforce square image </span>
+            <span class="n">shape</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+            <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">shape</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">,</span> <span class="s">"image has 2 dimensions"</span>
+            <span class="n">mshape</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">shape</span><span class="p">)</span>
+            <span class="n">z</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">mshape</span><span class="p">,</span> <span class="n">mshape</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span>
+            <span class="n">z</span><span class="p">[:</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="p">:</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">data</span>
+            <span class="k">return</span> <span class="n">z</span>
+</pre></div></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/marccdimage.html b/doc/html/_modules/fabio/marccdimage.html
new file mode 100644
index 0000000..6b07e4b
--- /dev/null
+++ b/doc/html/_modules/fabio/marccdimage.html
@@ -0,0 +1,407 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.marccdimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.marccdimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="sd">"""</span>
+
+<span class="sd">Authors:</span>
+<span class="sd">........</span>
+<span class="sd">* Henning O. Sorensen & Erik Knudsen:</span>
+<span class="sd">  Center for Fundamental Research: Metal Structures in Four Dimensions;</span>
+<span class="sd">  Risoe National Laboratory;</span>
+<span class="sd">  Frederiksborgvej 399;</span>
+<span class="sd">  DK-4000 Roskilde;</span>
+<span class="sd">  email:erik.knudsen at risoe.dk</span>
+<span class="sd">* Jon Wright:</span>
+<span class="sd">  European Synchrotron Radiation Facility;</span>
+<span class="sd">  Grenoble (France)</span>
+<span class="sd">         </span>
+<span class="sd">marccdimage can read MarCCD and MarMosaic images including header info.</span>
+
+<span class="sd">JPW : Use a parser in case of typos (sorry?)</span>
+
+<span class="sd">"""</span>
+
+
+<span class="c"># Base this on the tifimage (as marccd seems to be tiff with a </span>
+<span class="c"># special header </span>
+
+<span class="kn">from</span> <span class="nn">tifimage</span> <span class="kn">import</span> <span class="n">tifimage</span>
+<span class="kn">import</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"marccdimage"</span><span class="p">)</span>
+
+<span class="c"># Now for the c definition (found on mar webpage)</span>
+<span class="c"># The following string is therefore copyrighted by Mar I guess</span>
+
+<span class="n">CDEFINITION</span> <span class="o">=</span> <span class="s">"""</span>
+<span class="s">typedef struct frame_header_type {</span>
+<span class="s">         /* File/header format parameters (256 bytes) */</span>
+<span class="s">         UINT32        header_type;  /* flag for header type  </span>
+<span class="s">                                           (can be  used as magic number) */</span>
+<span class="s">         char header_name[16];           /* header name (MMX) */</span>
+<span class="s">         UINT32        header_major_version;   /* header_major_version  (n.) */</span>
+<span class="s">         UINT32        header_minor_version;   /* header_minor_version  (.n) */</span>
+<span class="s">         UINT32        header_byte_order;/* BIG_ENDIAN (Motorola,MIPS);  </span>
+<span class="s">                                            LITTLE_ENDIAN (DEC, Intel) */</span>
+<span class="s">         UINT32        data_byte_order;  /* BIG_ENDIAN (Motorola,MIPS);  </span>
+<span class="s">                                            LITTLE_ENDIAN (DEC, Intel) */</span>
+<span class="s">         UINT32        header_size;      /* in bytes                     */</span>
+<span class="s">         UINT32        frame_type;       /* flag for frame type */</span>
+<span class="s">         UINT32        magic_number;     /* to be used as a flag - </span>
+<span class="s">                                            usually  to indicate new file */</span>
+<span class="s">         UINT32        compression_type; /* type of image compression    */</span>
+<span class="s">         UINT32        compression1;     /* compression parameter 1 */</span>
+<span class="s">         UINT32        compression2;     /* compression parameter 2 */</span>
+<span class="s">         UINT32        compression3;     /* compression parameter 3 */</span>
+<span class="s">         UINT32        compression4;     /* compression parameter 4 */</span>
+<span class="s">         UINT32        compression5;     /* compression parameter 4 */</span>
+<span class="s">         UINT32        compression6;     /* compression parameter 4 */</span>
+<span class="s">         UINT32        nheaders;         /* total number of headers      */</span>
+<span class="s">         UINT32        nfast;            /* number of pixels in one line */</span>
+<span class="s">         UINT32        nslow;            /* number of lines in image     */</span>
+<span class="s">         UINT32        depth;            /* number of bytes per pixel    */</span>
+<span class="s">         UINT32        record_length;    /* number of pixels between </span>
+<span class="s">                                            succesive rows */</span>
+<span class="s">         UINT32        signif_bits;      /* true depth of data, in bits  */</span>
+<span class="s">         UINT32        data_type;        /* (signed,unsigned,float...) */</span>
+<span class="s">         UINT32        saturated_value;  /* value marks pixel as saturated */</span>
+<span class="s">         UINT32        sequence;         /* TRUE or FALSE */</span>
+<span class="s">         UINT32        nimages;          /* total number of images - size of </span>
+<span class="s">                                            each is nfast*(nslow/nimages) */</span>
+<span class="s">         UINT32        origin;           /* corner of origin             */</span>
+<span class="s">         UINT32        orientation;      /* direction of fast axis       */</span>
+<span class="s">         UINT32        view_direction;   /* direction to view frame      */</span>
+<span class="s">         UINT32        overflow_location;/* FOLLOWING_HEADER,  FOLLOWING_DATA */</span>
+<span class="s">         UINT32        over_8_bits;      /* # of pixels with counts  255 */</span>
+<span class="s">         UINT32        over_16_bits;     /* # of pixels with count  65535 */</span>
+<span class="s">         UINT32        multiplexed;      /* multiplex flag */</span>
+<span class="s">         UINT32        nfastimages;      /* # of images in fast direction */</span>
+<span class="s">         UINT32        nslowimages;      /* # of images in slow direction */</span>
+<span class="s">         UINT32        background_applied;/* flags correction has been applied </span>
+<span class="s">                                              hold magic number ? */</span>
+<span class="s">         UINT32        bias_applied;     /* flags correction has been applied</span>
+<span class="s">                                             hold magic number ? */</span>
+<span class="s">         UINT32        flatfield_applied;/* flags correction has been applied -</span>
+<span class="s">                                              hold magic number ? */</span>
+<span class="s">         UINT32        distortion_applied;/*flags correction has been applied - </span>
+<span class="s">                                              hold magic number ? */</span>
+<span class="s">         UINT32        original_header_type;    /* Header/frame type from  file </span>
+<span class="s">                                                    that frame is read from */</span>
+<span class="s">         UINT32        file_saved;         /* Flag that file has been  saved, </span>
+<span class="s">                                              should be zeroed if modified */</span>
+<span class="s">         char reserve1[(64-40)*sizeof(INT32)-16];</span>
+
+<span class="s">         /* Data statistics (128) */</span>
+<span class="s">         UINT32        total_counts[2];  /* 64 bit integer range = 1.85E19*/</span>
+<span class="s">         UINT32        special_counts1[2];</span>
+<span class="s">         UINT32        special_counts2[2];</span>
+<span class="s">         UINT32        min;</span>
+<span class="s">         UINT32        max;</span>
+<span class="s">         UINT32        mean;</span>
+<span class="s">         UINT32        rms;</span>
+<span class="s">         UINT32        p10;</span>
+<span class="s">         UINT32        p90;</span>
+<span class="s">         UINT32        stats_uptodate;</span>
+<span class="s">         UINT32        pixel_noise[MAXIMAGES]; /*1000*base noise value (ADUs) */</span>
+<span class="s">         char reserve2[(32-13-MAXIMAGES)*sizeof(INT32)];</span>
+
+<span class="s">         /* More statistics (256) */</span>
+<span class="s">         UINT16 percentile[128];</span>
+
+
+<span class="s">         /* Goniostat parameters (128 bytes) */</span>
+<span class="s">         INT32 xtal_to_detector;  /* 1000*distance in millimeters */</span>
+<span class="s">         INT32 beam_x;            /* 1000*x beam position (pixels) */</span>
+<span class="s">         INT32 beam_y;            /* 1000*y beam position (pixels) */</span>
+<span class="s">         INT32 integration_time;  /* integration time in  milliseconds */</span>
+<span class="s">         INT32 exposure_time;     /* exposure time in milliseconds */</span>
+<span class="s">         INT32 readout_time;      /* readout time in milliseconds */</span>
+<span class="s">         INT32 nreads;            /* number of readouts to get this  image */</span>
+<span class="s">         INT32 start_twotheta;    /* 1000*two_theta angle */</span>
+<span class="s">         INT32 start_omega;       /* 1000*omega angle */</span>
+<span class="s">         INT32 start_chi;         /* 1000*chi angle */</span>
+<span class="s">         INT32 start_kappa;       /* 1000*kappa angle */</span>
+<span class="s">         INT32 start_phi;         /* 1000*phi angle */</span>
+<span class="s">         INT32 start_delta;       /* 1000*delta angle */</span>
+<span class="s">         INT32 start_gamma;       /* 1000*gamma angle */</span>
+<span class="s">         INT32 start_xtal_to_detector; /* 1000*distance in mm (dist in um)*/</span>
+<span class="s">         INT32 end_twotheta;           /* 1000*two_theta angle */</span>
+<span class="s">         INT32 end_omega;              /* 1000*omega angle */</span>
+<span class="s">         INT32 end_chi;                /* 1000*chi angle */</span>
+<span class="s">         INT32 end_kappa;              /* 1000*kappa angle */</span>
+<span class="s">         INT32 end_phi;                /* 1000*phi angle */</span>
+<span class="s">         INT32 end_delta;              /* 1000*delta angle */</span>
+<span class="s">         INT32 end_gamma;              /* 1000*gamma angle */</span>
+<span class="s">         INT32 end_xtal_to_detector;   /* 1000*distance in mm (dist in um)*/</span>
+<span class="s">         INT32 rotation_axis;          /* active rotation axis */</span>
+<span class="s">         INT32 rotation_range;         /* 1000*rotation angle */</span>
+<span class="s">         INT32 detector_rotx;          /* 1000*rotation of detector  around X */</span>
+<span class="s">         INT32 detector_roty;          /* 1000*rotation of detector  around Y */</span>
+<span class="s">         INT32 detector_rotz;          /* 1000*rotation of detector  around Z */</span>
+<span class="s">         char reserve3[(32-28)*sizeof(INT32)];</span>
+
+<span class="s">         /* Detector parameters (128 bytes) */</span>
+<span class="s">         INT32 detector_type;            /* detector type */</span>
+<span class="s">         INT32 pixelsize_x;              /* pixel size (nanometers) */</span>
+<span class="s">         INT32 pixelsize_y;              /* pixel size (nanometers) */</span>
+<span class="s">         INT32 mean_bias;                        /* 1000*mean bias value */</span>
+<span class="s">         INT32 photons_per_100adu;       /* photons / 100 ADUs */</span>
+<span class="s">         INT32 measured_bias[MAXIMAGES];/* 1000*mean bias value for each image*/</span>
+<span class="s">         INT32 measured_temperature[MAXIMAGES];  /* Temperature of each  </span>
+<span class="s">                                                    detector in milliKelvins */</span>
+<span class="s">         INT32 measured_pressure[MAXIMAGES]; /* Pressure of each  chamber </span>
+<span class="s">                                               in microTorr */</span>
+<span class="s">         /* Retired reserve4 when MAXIMAGES set to 9 from 16 and </span>
+<span class="s">            two fields removed, and temp and pressure added</span>
+<span class="s">          char reserve4[(32-(5+3*MAXIMAGES))*sizeof(INT32)]</span>
+<span class="s">         */</span>
+
+<span class="s">         /* X-ray source and optics parameters (128 bytes) */</span>
+<span class="s">         /* X-ray source parameters (8*4 bytes) */</span>
+<span class="s">         INT32 source_type;              /* (code) - target, synch. etc */</span>
+<span class="s">         INT32 source_dx;                /* Optics param. - (size  microns) */</span>
+<span class="s">         INT32 source_dy;                /* Optics param. - (size  microns) */</span>
+<span class="s">         INT32 source_wavelength;        /* wavelength  (femtoMeters) */</span>
+<span class="s">         INT32 source_power;             /* (Watts) */</span>
+<span class="s">         INT32 source_voltage;           /* (Volts) */</span>
+<span class="s">         INT32 source_current;           /* (microAmps) */</span>
+<span class="s">         INT32 source_bias;              /* (Volts) */</span>
+<span class="s">         INT32 source_polarization_x;    /* () */</span>
+<span class="s">         INT32 source_polarization_y;    /* () */</span>
+<span class="s">         char reserve_source[4*sizeof(INT32)];</span>
+
+<span class="s">         /* X-ray optics_parameters (8*4 bytes) */</span>
+<span class="s">         INT32 optics_type;              /* Optics type (code)*/</span>
+<span class="s">         INT32 optics_dx;                /* Optics param. - (size  microns) */</span>
+<span class="s">         INT32 optics_dy;                /* Optics param. - (size  microns) */</span>
+<span class="s">         INT32 optics_wavelength;        /* Optics param. - (size  microns) */</span>
+<span class="s">         INT32 optics_dispersion;        /* Optics param. - (*10E6) */</span>
+<span class="s">         INT32 optics_crossfire_x;       /* Optics param. - (microRadians) */</span>
+<span class="s">         INT32 optics_crossfire_y;       /* Optics param. - (microRadians) */</span>
+<span class="s">         INT32 optics_angle;             /* Optics param. - (monoch.  </span>
+<span class="s">                                                    2theta - microradians) */</span>
+<span class="s">         INT32 optics_polarization_x;    /* () */</span>
+<span class="s">         INT32 optics_polarization_y;    /* () */</span>
+<span class="s">         char reserve_optics[4*sizeof(INT32)];</span>
+
+<span class="s">         char reserve5[((32-28)*sizeof(INT32))];</span>
+
+<span class="s">         /* File parameters (1024 bytes) */</span>
+<span class="s">         char filetitle[128];            /*  Title                  */</span>
+<span class="s">         char filepath[128];             /* path name for data  file  */</span>
+<span class="s">         char filename[64];              /* name of data  file  */</span>
+<span class="s">         char acquire_timestamp[32];     /* date and time of  acquisition */</span>
+<span class="s">         char header_timestamp[32];      /* date and time of header  update  */</span>
+<span class="s">         char save_timestamp[32];        /* date and time file  saved */</span>
+<span class="s">         char file_comments[512];        /* comments, use as desired   */</span>
+<span class="s">         char reserve6[1024-(128+128+64+(3*32)+512)];</span>
+
+<span class="s">         /* Dataset parameters (512 bytes) */</span>
+<span class="s">         char dataset_comments[512];     /* comments, used as desired   */</span>
+<span class="s">         /* pad out to  3072 bytes */</span>
+<span class="s">         char pad[3072-(256+128+256+(3*128)+1024+512)];     </span>
+
+<span class="s">         } frame_header;</span>
+<span class="s">"""</span>
+
+<span class="kn">import</span> <span class="nn">struct</span>
+
+<span class="c"># Convert mar c header file types to python struct module types</span>
+<span class="n">C_TO_STRUCT</span> <span class="o">=</span> <span class="p">{</span>
+    <span class="s">"INT32"</span>  <span class="p">:</span> <span class="s">"i"</span><span class="p">,</span>
+    <span class="s">"UINT32"</span> <span class="p">:</span> <span class="s">"I"</span><span class="p">,</span>
+    <span class="s">"char"</span>   <span class="p">:</span> <span class="s">"c"</span><span class="p">,</span>
+    <span class="s">"UINT16"</span> <span class="p">:</span> <span class="s">"H"</span>
+    <span class="p">}</span>
+
+<span class="c"># Sizes (bytes) of mar c header objects</span>
+<span class="n">C_SIZES</span> <span class="o">=</span> <span class="p">{</span>
+    <span class="s">"INT32"</span>  <span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
+    <span class="s">"UINT32"</span> <span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
+    <span class="s">"char"</span>   <span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
+    <span class="s">"UINT16"</span> <span class="p">:</span> <span class="mi">2</span>
+    <span class="p">}</span>
+
+<span class="c"># This was worked out by trial and error from a trial image I think</span>
+<span class="n">MAXIMAGES</span> <span class="o">=</span> <span class="mi">9</span>
+
+
+<div class="viewcode-block" id="make_format"><a class="viewcode-back" href="../../api/modules.html#fabio.marccdimage.make_format">[docs]</a><span class="k">def</span> <span class="nf">make_format</span><span class="p">(</span><span class="n">c_def_string</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Reads the header definition in c and makes the format </span>
+<span class="sd">    string to pass to struct.unpack</span>
+<span class="sd">    """</span>
+    <span class="n">lines</span> <span class="o">=</span> <span class="n">c_def_string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span>
+    <span class="n">fmt</span> <span class="o">=</span> <span class="s">""</span>
+    <span class="n">names</span> <span class="o">=</span> <span class="p">[]</span>
+    <span class="n">expected</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">";"</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="k">continue</span>
+        <span class="n">decl</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">";"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="p">[</span><span class="n">typ</span><span class="p">,</span> <span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">decl</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
+        <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"skipping: </span><span class="si">%s</span><span class="s">"</span> <span class="p">,</span> <span class="n">line</span><span class="p">)</span>
+            <span class="k">continue</span>
+
+        <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"["</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="c"># repeated ... times</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">num</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"["</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"]"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="n">num</span> <span class="o">=</span> <span class="n">num</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">"MAXIMAGES"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">MAXIMAGES</span><span class="p">))</span>
+                <span class="n">num</span> <span class="o">=</span> <span class="n">num</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">"sizeof(INT32)"</span><span class="p">,</span> <span class="s">"4"</span><span class="p">)</span>
+                <span class="n">times</span> <span class="o">=</span> <span class="nb">eval</span><span class="p">(</span><span class="n">num</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> Please decode </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">error</span><span class="p">,</span> <span class="n">decl</span><span class="p">)</span>
+                <span class="k">raise</span> <span class="n">error</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">times</span> <span class="o">=</span> <span class="mi">1</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">fmt</span> <span class="o">+=</span> <span class="n">C_TO_STRUCT</span><span class="p">[</span><span class="n">typ</span><span class="p">]</span> <span class="o">*</span> <span class="n">times</span>
+            <span class="n">names</span> <span class="o">+=</span> <span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">*</span> <span class="n">times</span>
+            <span class="n">expected</span> <span class="o">+=</span> <span class="n">C_SIZES</span><span class="p">[</span><span class="n">typ</span><span class="p">]</span> <span class="o">*</span> <span class="n">times</span>
+        <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
+            <span class="k">continue</span>
+    <span class="k">return</span> <span class="n">names</span><span class="p">,</span> <span class="n">fmt</span>
+
+<span class="c"># Make these be compiled on loading module</span></div>
+<span class="n">HEADER_NAMES</span><span class="p">,</span> <span class="n">HEADER_FORMAT</span> <span class="o">=</span> <span class="n">make_format</span><span class="p">(</span><span class="n">CDEFINITION</span><span class="p">)</span>
+
+<div class="viewcode-block" id="interpret_header"><a class="viewcode-back" href="../../api/modules.html#fabio.marccdimage.interpret_header">[docs]</a><span class="k">def</span> <span class="nf">interpret_header</span><span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">fmt</span><span class="p">,</span> <span class="n">names</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    given a format and header interpret it</span>
+<span class="sd">    """</span>
+    <span class="n">values</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">header</span><span class="p">)</span>
+    <span class="n">hdr</span> <span class="o">=</span> <span class="p">{}</span>
+    <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
+    <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">hdr</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
+            <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="o">==</span> <span class="nb">type</span><span class="p">(</span><span class="s">"string"</span><span class="p">):</span>
+                <span class="n">hdr</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">hdr</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">+</span> <span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">hdr</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+                <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+                    <span class="n">hdr</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">hdr</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">hdr</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
+        <span class="n">i</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span>
+
+    <span class="k">return</span> <span class="n">hdr</span>
+
+</div>
+<div class="viewcode-block" id="marccdimage"><a class="viewcode-back" href="../../api/modules.html#fabio.marccdimage.marccdimage">[docs]</a><span class="k">class</span> <span class="nc">marccdimage</span><span class="p">(</span><span class="n">tifimage</span><span class="p">):</span>
+    <span class="sd">""" Read in data in mar ccd format, also </span>
+<span class="sd">        MarMosaic images, including header info """</span>
+
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Parser based approach</span>
+<span class="sd">        Gets all entries</span>
+<span class="sd">        """</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">1024</span><span class="p">)</span>
+        <span class="n">hstr</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">3072</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="n">interpret_header</span><span class="p">(</span><span class="n">hstr</span><span class="p">,</span> <span class="n">HEADER_FORMAT</span><span class="p">,</span> <span class="n">HEADER_NAMES</span><span class="p">)</span>
+
+
+
+    <span class="k">def</span> <span class="nf">_read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        inherited from tifimage</span>
+<span class="sd">        ... a marccd image *is a* tif image</span>
+<span class="sd">        just with a header</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">tifimage</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">)</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/openimage.html b/doc/html/_modules/fabio/openimage.html
new file mode 100644
index 0000000..ec1184a
--- /dev/null
+++ b/doc/html/_modules/fabio/openimage.html
@@ -0,0 +1,251 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.openimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.openimage</h1><div class="highlight"><pre>
+<span class="sd">"""</span>
+
+<span class="sd">Authors: Henning O. Sorensen & Erik Knudsen</span>
+<span class="sd">         Center for Fundamental Research: Metal Structures in Four Dimensions</span>
+<span class="sd">         Risoe National Laboratory</span>
+<span class="sd">         Frederiksborgvej 399</span>
+<span class="sd">         DK-4000 Roskilde</span>
+<span class="sd">         email:henning.sorensen at risoe.dk</span>
+
+<span class="sd">mods for fabio by JPW</span>
+
+<span class="sd">"""</span>
+<span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"openimage"</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">fabioutils</span>  <span class="kn">import</span> <span class="n">FilenameObject</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">import</span> <span class="nn">edfimage</span>
+<span class="kn">import</span> <span class="nn">adscimage</span>
+<span class="kn">import</span> <span class="nn">tifimage</span>
+<span class="kn">import</span> <span class="nn">marccdimage</span>
+<span class="kn">import</span> <span class="nn">mar345image</span>
+<span class="kn">import</span> <span class="nn">fit2dmaskimage</span>
+<span class="kn">import</span> <span class="nn">brukerimage</span>
+<span class="kn">import</span> <span class="nn">bruker100image</span>
+<span class="kn">import</span> <span class="nn">pnmimage</span>
+<span class="kn">import</span> <span class="nn">GEimage</span>
+<span class="kn">import</span> <span class="nn">OXDimage</span>
+<span class="kn">import</span> <span class="nn">dm3image</span>
+<span class="kn">import</span> <span class="nn">HiPiCimage</span>
+<span class="kn">import</span> <span class="nn">pilatusimage</span>
+<span class="kn">import</span> <span class="nn">fit2dspreadsheetimage</span>
+<span class="kn">import</span> <span class="nn">kcdimage</span>
+<span class="kn">import</span> <span class="nn">cbfimage</span>
+<span class="kn">import</span> <span class="nn">xsdimage</span>
+<span class="kn">import</span> <span class="nn">binaryimage</span>
+
+<span class="n">MAGIC_NUMBERS</span> <span class="o">=</span> <span class="p">[</span>
+    <span class="c"># "\42\5a" : 'bzipped'</span>
+    <span class="c"># "\1f\8b" : 'gzipped'</span>
+    <span class="p">(</span><span class="s">"FORMAT :        86"</span> <span class="p">,</span> <span class="s">'bruker'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">"</span><span class="se">\x4d\x4d\x00\x2a</span><span class="s">"</span>   <span class="p">,</span> <span class="s">'tif'</span><span class="p">)</span> <span class="p">,</span>
+    <span class="c"># The marCCD and Pilatus formats are both standard tif with a header</span>
+    <span class="c"># hopefully these byte patterns are unique for the formats</span>
+    <span class="c"># If not the image will be read, but the is missing </span>
+    <span class="p">(</span><span class="s">"</span><span class="se">\x49\x49\x2a\x00\x08\x00</span><span class="s">"</span>   <span class="p">,</span> <span class="s">'marccd'</span><span class="p">)</span> <span class="p">,</span>
+    <span class="p">(</span><span class="s">"</span><span class="se">\x49\x49\x2a\x00\x82\x00</span><span class="s">"</span>   <span class="p">,</span> <span class="s">'pilatus'</span><span class="p">)</span> <span class="p">,</span>
+    <span class="p">(</span><span class="s">"</span><span class="se">\x49\x49\x2a\x00</span><span class="s">"</span>   <span class="p">,</span> <span class="s">'tif'</span><span class="p">)</span> <span class="p">,</span>
+    <span class="c"># ADSC must come before edf</span>
+    <span class="p">(</span><span class="s">"{</span><span class="se">\n</span><span class="s">HEA"</span>             <span class="p">,</span> <span class="s">'adsc'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">"{"</span>                  <span class="p">,</span> <span class="s">'edf'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">"</span><span class="se">\r</span><span class="s">{"</span>                <span class="p">,</span> <span class="s">'edf'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">{"</span>                <span class="p">,</span> <span class="s">'edf'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">"ADEPT"</span>              <span class="p">,</span> <span class="s">'GE'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">"OD"</span>                 <span class="p">,</span> <span class="s">'OXD'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">"IM"</span>                 <span class="p">,</span> <span class="s">'HiPiC'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'</span><span class="se">\x2d\x04</span><span class="s">'</span>           <span class="p">,</span> <span class="s">'mar345'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'</span><span class="se">\xd2\x04</span><span class="s">'</span>           <span class="p">,</span> <span class="s">'mar345'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">'</span><span class="se">\x04\x2d</span><span class="s">'</span>           <span class="p">,</span> <span class="s">'mar345'</span><span class="p">),</span> <span class="c">#some machines may need byteswapping</span>
+    <span class="p">(</span><span class="s">'</span><span class="se">\x04\xd2</span><span class="s">'</span>           <span class="p">,</span> <span class="s">'mar345'</span><span class="p">),</span>
+    <span class="c"># hint : MASK in 32 bit</span>
+    <span class="p">(</span><span class="s">'M</span><span class="se">\x00\x00\x00</span><span class="s">A</span><span class="se">\x00\x00\x00</span><span class="s">S</span><span class="se">\x00\x00\x00</span><span class="s">K</span><span class="se">\x00\x00\x00</span><span class="s">'</span> <span class="p">,</span> <span class="s">'fit2dmask'</span><span class="p">)</span> <span class="p">,</span>
+    <span class="p">(</span><span class="s">'</span><span class="se">\x00\x00\x00\x03</span><span class="s">'</span>   <span class="p">,</span> <span class="s">'dm3'</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">"No"</span>                 <span class="p">,</span> <span class="s">"kcd"</span><span class="p">),</span>
+    <span class="p">(</span><span class="s">"<"</span>                  <span class="p">,</span> <span class="s">"xsd"</span><span class="p">)</span>
+    <span class="p">]</span>
+
+<div class="viewcode-block" id="do_magic"><a class="viewcode-back" href="../../api/modules.html#fabio.openimage.do_magic">[docs]</a><span class="k">def</span> <span class="nf">do_magic</span><span class="p">(</span><span class="n">byts</span><span class="p">):</span>
+    <span class="sd">""" Try to interpret the bytes starting the file as a magic number """</span>
+    <span class="k">for</span> <span class="n">magic</span><span class="p">,</span> <span class="n">format_type</span> <span class="ow">in</span> <span class="n">MAGIC_NUMBERS</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">byts</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">magic</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">format_type</span>
+        <span class="k">if</span> <span class="mi">0</span><span class="p">:</span> <span class="c"># debugging - bruker needed 18 bytes below</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"m: </span><span class="si">%s</span><span class="s"> f: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">magic</span><span class="p">,</span> <span class="n">format_type</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"bytes: </span><span class="si">%s</span><span class="s"> len(bytes) </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">magic</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">magic</span><span class="p">))</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"found: </span><span class="si">%s</span><span class="s">"</span><span class="p">,</span> <span class="n">byts</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">magic</span><span class="p">))</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">magic</span><span class="p">)):</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> "</span><span class="p">,</span> <span class="nb">ord</span><span class="p">(</span><span class="n">magic</span><span class="p">[</span><span cl [...]
+    <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Could not interpret magic string"</span><span class="p">)</span>
+
+</div>
+<div class="viewcode-block" id="openimage"><a class="viewcode-back" href="../../api/modules.html#fabio.openimage.openimage">[docs]</a><span class="k">def</span> <span class="nf">openimage</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+    <span class="sd">""" Try to open an image """</span>
+    <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">FilenameObject</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Attempting to open </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">filename</span><span class="o">.</span><span class="n">tostring</span><span class="p">()))</span>
+            <span class="n">obj</span> <span class="o">=</span> <span class="n">_openimage</span><span class="p">(</span><span class="n">filename</span><span class="o">.</span><span class="n">tostring</span><span class="p">())</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Attempting to read frame </span><span class="si">%s</span><span class="s"> from </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">frame</span><span class="p">,</span>
+                <span class="n">filename</span><span class="o">.</span><span class="n">tostring</span><span class="p">()))</span>
+            <span class="n">obj</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">filename</span><span class="o">.</span><span class="n">tostring</span><span class="p">(),</span> <span class="n">frame</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">ex</span><span class="p">:</span>
+            <span class="c"># multiframe file</span>
+            <span class="c">#logger.debug( "DEBUG: multiframe file, start # %d"%(</span>
+            <span class="c">#    filename.num)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Exception </span><span class="si">%s</span><span class="s">, trying name </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">ex</span><span class="p">,</span> <span class="n">filename</span><span class="o">.</span><span class="n">stem</span><span class="p">))</span>
+            <span class="n">obj</span> <span class="o">=</span> <span class="n">_openimage</span><span class="p">(</span><span class="n">filename</span><span class="o">.</span><span class="n">stem</span><span class="p">)</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Reading frame </span><span class="si">%s</span><span class="s"> from </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">filename</span><span class="o">.</span><span class="n">num</span><span class="p">,</span> <span class="n">filename</span><span class="o">.</span><span class [...]
+            <span class="n">obj</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">filename</span><span class="o">.</span><span class="n">stem</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="n">filename</span><span class="o">.</span><span class="n">num</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Attempting to open </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">filename</span><span class="p">))</span>
+        <span class="n">obj</span> <span class="o">=</span> <span class="n">_openimage</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">"Attempting to read frame </span><span class="si">%s</span><span class="s"> from </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="n">filename</span><span class="p">))</span>
+        <span class="n">obj</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">frame</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">obj</span>
+
+</div>
+<div class="viewcode-block" id="openheader"><a class="viewcode-back" href="../../api/modules.html#fabio.openimage.openheader">[docs]</a><span class="k">def</span> <span class="nf">openheader</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
+    <span class="sd">""" return only the header"""</span>
+    <span class="n">obj</span> <span class="o">=</span> <span class="n">_openimage</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+    <span class="n">obj</span><span class="o">.</span><span class="n">readheader</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">obj</span>
+
+</div>
+<span class="k">def</span> <span class="nf">_openimage</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
+    <span class="sd">""" </span>
+<span class="sd">    determine which format for a filename</span>
+<span class="sd">    and return appropriate class which can be used for opening the image</span>
+<span class="sd">    """</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">imo</span> <span class="o">=</span> <span class="n">fabioimage</span><span class="p">()</span>
+        <span class="n">byts</span> <span class="o">=</span> <span class="n">imo</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">18</span><span class="p">)</span>
+        <span class="n">filetype</span> <span class="o">=</span> <span class="n">do_magic</span><span class="p">(</span><span class="n">byts</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">filetype</span> <span class="o">==</span> <span class="s">"marccd"</span> <span class="ow">and</span> <span class="n">filename</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"mccd"</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="c"># Cannot see a way around this. Need to find something</span>
+            <span class="c"># to distinguish mccd from regular tif...</span>
+            <span class="n">filetype</span> <span class="o">=</span> <span class="s">"tif"</span>
+    <span class="k">except</span> <span class="ne">IOError</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: File probably does not exist"</span><span class="p">,</span> <span class="n">error</span><span class="p">)</span>
+        <span class="k">raise</span> <span class="n">error</span>
+    <span class="k">except</span><span class="p">:</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">file_obj</span> <span class="o">=</span> <span class="n">FilenameObject</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">filename</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">file_obj</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Unable to deconstruct filename"</span><span class="p">)</span>
+            <span class="k">if</span> <span class="p">(</span><span class="n">file_obj</span><span class="o">.</span><span class="n">format</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">and</span>\
+                <span class="nb">len</span><span class="p">(</span><span class="n">file_obj</span><span class="o">.</span><span class="n">format</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">1</span> <span class="ow">and</span> \
+                <span class="nb">type</span><span class="p">(</span><span class="n">file_obj</span><span class="o">.</span><span class="n">format</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">type</span><span class="p">([</span><span class="s">"list"</span><span class="p">]):</span>
+                <span class="c"># one of OXD/ ADSC - should have got in previous</span>
+                <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"openimage failed on magic bytes & name guess"</span><span class="p">)</span>
+            <span class="n">filetype</span> <span class="o">=</span> <span class="n">file_obj</span><span class="o">.</span><span class="n">format</span>
+            <span class="c">#UNUSED filenumber = file_obj.num</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
+            <span class="kn">import</span> <span class="nn">traceback</span>
+            <span class="n">traceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">()</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Fabio could not identify "</span> <span class="o">+</span> <span class="n">filename</span><span class="p">)</span>
+    <span class="n">klass_name</span> <span class="o">=</span> <span class="s">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">filetype</span><span class="p">)</span> <span class="o">+</span> <span class="s">'image'</span>
+    <span class="n">module</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">modules</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"fabio."</span> <span class="o">+</span> <span class="n">klass_name</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">module</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">klass_name</span><span class="p">):</span>
+            <span class="n">klass</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">klass_name</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Module </span><span class="si">%s</span><span class="s"> has no image class"</span> <span class="o">%</span> <span class="n">module</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Filetype not known </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">klass_name</span><span class="p">))</span>
+    <span class="n">obj</span> <span class="o">=</span> <span class="n">klass</span><span class="p">()</span>
+    <span class="c"># skip the read for read header</span>
+    <span class="k">return</span> <span class="n">obj</span>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/pilatusimage.html b/doc/html/_modules/fabio/pilatusimage.html
new file mode 100644
index 0000000..3c7a7dc
--- /dev/null
+++ b/doc/html/_modules/fabio/pilatusimage.html
@@ -0,0 +1,175 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.pilatusimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.pilatusimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#coding: utf8</span>
+<span class="sd">"""</span>
+
+<span class="sd">Authors:</span>
+<span class="sd">........</span>
+<span class="sd">* Henning O. Sorensen & Erik Knudsen:</span>
+<span class="sd">  Center for Fundamental Research: Metal Structures in Four Dimensions;</span>
+<span class="sd">  Risoe National Laboratory;</span>
+<span class="sd">  Frederiksborgvej 399;</span>
+<span class="sd">  DK-4000 Roskilde;</span>
+<span class="sd">  email:erik.knudsen at risoe.dk</span>
+<span class="sd">* Jon Wright:</span>
+<span class="sd">  European Synchrotron Radiation Facility;</span>
+<span class="sd">  Grenoble (France)</span>
+
+<span class="sd">"""</span>
+
+
+<span class="c"># Base this on the tifimage (as Pilatus is tiff with a</span>
+<span class="c"># tiff header</span>
+
+<span class="kn">from</span> <span class="nn">fabio.tifimage</span> <span class="kn">import</span> <span class="n">tifimage</span>
+
+
+<div class="viewcode-block" id="pilatusimage"><a class="viewcode-back" href="../../api/modules.html#fabio.pilatusimage.pilatusimage">[docs]</a><span class="k">class</span> <span class="nc">pilatusimage</span><span class="p">(</span><span class="n">tifimage</span><span class="p">):</span>
+    <span class="sd">""" Read in Pilatus format, also </span>
+<span class="sd">        pilatus images, including header info """</span>
+
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Parser based approach</span>
+<span class="sd">        Gets all entries</span>
+<span class="sd">        """</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+
+<span class="c">#        infile = open(infile)</span>
+        <span class="n">hstr</span> <span class="o">=</span> <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4096</span><span class="p">)</span>
+        <span class="c"># well not very pretty - but seems to find start of</span>
+        <span class="c"># header information</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">hstr</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">'# '</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">):</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span>
+
+        <span class="n">hstr</span> <span class="o">=</span> <span class="n">hstr</span><span class="p">[</span><span class="n">hstr</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s">'# '</span><span class="p">):]</span>
+        <span class="n">hstr</span> <span class="o">=</span> <span class="n">hstr</span><span class="p">[:</span><span class="n">hstr</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s">'</span><span class="se">\x00</span><span class="s">'</span><span class="p">)]</span>
+        <span class="n">hstr</span> <span class="o">=</span> <span class="n">hstr</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'#'</span><span class="p">)</span>
+        <span class="n">go_on</span> <span class="o">=</span> <span class="bp">True</span>
+        <span class="k">while</span> <span class="n">go_on</span><span class="p">:</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">hstr</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s">''</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
+                <span class="n">go_on</span> <span class="o">=</span> <span class="bp">False</span>
+
+        <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">hstr</span><span class="p">:</span>
+            <span class="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="n">line</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s">'</span><span class="se">\r\n</span><span class="s">'</span><span class="p">)]</span>
+            <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">':'</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+                <span class="n">dump</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">':'</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">dump</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">dump</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+            <span class="k">elif</span> <span class="n">line</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">'='</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+                <span class="n">dump</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'='</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">dump</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">dump</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+            <span class="k">elif</span> <span class="n">line</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">' '</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+                <span class="n">i</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">' '</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">line</span><span class="p">[:</span><span class="n">i</span><span class="p">]]</span> <span class="o">=</span> <span class="n">line</span><span class="p">[</span><span class="n">i</span><span class="p">:]</span>
+            <span class="k">elif</span> <span class="n">line</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">','</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+                <span class="n">dump</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">','</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">dump</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">dump</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+
+        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span>
+
+
+
+    <span class="k">def</span> <span class="nf">_read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        inherited from tifimage</span>
+<span class="sd">        ... a Pilatus image *is a* tif image</span>
+<span class="sd">        just with a header</span>
+<span class="sd">        """</span>
+        <span class="k">return</span> <span class="n">tifimage</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">)</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/pnmimage.html b/doc/html/_modules/fabio/pnmimage.html
new file mode 100644
index 0000000..ab4a9a8
--- /dev/null
+++ b/doc/html/_modules/fabio/pnmimage.html
@@ -0,0 +1,259 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.pnmimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.pnmimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#coding: utf8</span>
+<span class="sd">"""</span>
+
+<span class="sd">Authors: Henning O. Sorensen & Erik Knudsen</span>
+<span class="sd">         Center for Fundamental Research: Metal Structures in Four Dimensions</span>
+<span class="sd">         Risoe National Laboratory</span>
+<span class="sd">         Frederiksborgvej 399</span>
+<span class="sd">         DK-4000 Roskilde</span>
+<span class="sd">         email:henning.sorensen at risoe.dk</span>
+
+<span class="sd">"""</span>
+
+<span class="kn">import</span> <span class="nn">numpy</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"pnmimage"</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+
+<span class="n">SUBFORMATS</span> <span class="o">=</span> <span class="p">[</span><span class="s">'P1'</span><span class="p">,</span> <span class="s">'P2'</span><span class="p">,</span> <span class="s">'P3'</span><span class="p">,</span> <span class="s">'P4'</span><span class="p">,</span> <span class="s">'P5'</span><span class="p">,</span> <span class="s">'P6'</span><span class="p">,</span> <span class="s">'P7'</span><span class="p [...]
+
+<span class="n">HEADERITEMS</span> <span class="o">=</span> <span class="p">[</span><span class="s">'SUBFORMAT'</span><span class="p">,</span> <span class="s">'DIMENSIONS'</span><span class="p">,</span> <span class="s">'MAXVAL'</span><span class="p">]</span>
+<span class="n">P7HEADERITEMS</span> <span class="o">=</span> <span class="p">[</span><span class="s">'WIDTH'</span><span class="p">,</span> <span class="s">'HEIGHT'</span><span class="p">,</span> <span class="s">'DEPTH'</span><span class="p">,</span> <span class="s">'MAXVAL'</span><span class="p">,</span> <span class="s">'TUPLTYPE'</span><span class="p">,</span> <span class="s">'ENDHDR'</span><span class="p">]</span>
+
+<div class="viewcode-block" id="pnmimage"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage">[docs]</a><span class="k">class</span> <span class="nc">pnmimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</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="o">*</span><span class="n">arg</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">arg</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+        <span class="n">fun</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">,</span> <span class="s">'__init__'</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="bp">None</span><span class="p">)</span>
+        <span class="n">fun</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{</span><span class="s">'Subformat'</span><span class="p">:</span><span class="s">'P5'</span><span class="p">}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">m</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maxval</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stddev</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">minval</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="bp">None</span>
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">f</span><span class="p">):</span>
+        <span class="c">#pnm images have a 3-line header but ignore lines starting with '#'</span>
+        <span class="c">#1st line contains the pnm image sub format</span>
+        <span class="c">#2nd line contains the image pixel dimension</span>
+        <span class="c">#3rd line contains the maximum pixel value (at least for grayscale - check this)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="p">[</span><span class="s">'SUBFORMAT'</span><span class="p">,</span> <span class="s">'DIMENSIONS'</span><span class="p">,</span> <span class="s">'MAXVAL'</span><span class="p">]</span>
+
+        <span class="n">l</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">l</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">SUBFORMATS</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> <span class="p">(</span><span class="s">'unknown subformat of pnm: </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="n">l</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'SUBFORMAT'</span><span class="p">]</span> <span class="o">=</span> <span class="n">l</span>
+
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'SUBFORMAT'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'P7'</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="n">P7HEADERITEMS</span>
+            <span class="c">#this one has a special header</span>
+            <span class="k">while</span> <span class="s">'ENDHDR'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">l</span><span class="p">:</span>
+                <span class="n">l</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+                <span class="k">while</span><span class="p">(</span><span class="n">l</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">'#'</span><span class="p">):</span> <span class="n">l</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+                <span class="n">s</span> <span class="o">=</span> <span class="n">l</span><span class="o">.</span><span class="n">lsplit</span><span class="p">(</span><span class="s">' '</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+                <span class="k">if</span> <span class="n">s</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">P7HEADERITEMS</span><span class="p">:</span>
+                    <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> <span class="p">(</span><span class="s">'Illegal pam (netpnm p7) headeritem </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="n">s</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">s</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">s</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span> <span class="o">=</span> <span class="n">HEADERITEMS</span>
+            <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">header_keys</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
+                <span class="n">l</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+                <span class="k">while</span><span class="p">(</span><span class="n">l</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">'#'</span><span class="p">):</span> <span class="n">l</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">l</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+
+        <span class="c">#set the dimensions</span>
+        <span class="n">dims</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'DIMENSIONS'</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">())</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">dims</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="nb">int</span><span class="p">(</span><span class="n">dims</span><span class="p">[</span><span class="mi">1< [...]
+        <span class="c">#figure out how many bytes are used to store the data</span>
+        <span class="c">#case construct here!</span>
+        <span class="n">m</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'MAXVAL'</span><span class="p">])</span>
+        <span class="k">if</span> <span class="n">m</span> <span class="o"><</span> <span class="mi">256</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span>
+        <span class="k">elif</span> <span class="n">m</span> <span class="o"><</span> <span class="mi">65536</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span>
+        <span class="k">elif</span> <span class="n">m</span> <span class="o"><</span> <span class="il">2147483648L</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">'32-bit pixels are not really supported by the netpgm standard'</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> <span class="s">'could not figure out what kind of pixels you have'</span>
+
+<div class="viewcode-block" id="pnmimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        try to read PNM images</span>
+<span class="sd">        @param fname: name of the file</span>
+<span class="sd">        @param frame: not relevant here! PNM is always single framed</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+
+        <span class="c">#read the image data</span>
+        <span class="n">decoder_name</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">dec"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="s">'SUBFORMAT'</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">decoder_name</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">pnmimage</span><span class="p">):</span>
+            <span class="n">decoder</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">pnmimage</span><span class="p">,</span> <span class="n">decoder_name</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">decoder</span><span class="p">(</span><span class="n">infile</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="s">"No decoder named </span><span class="si">%s</span><span class="s"> for file </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">decoder_name</span><span class="p">,</span> <span class="n">fname</span><span class="p">))</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="pnmimage.P1dec"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.P1dec">[docs]</a>    <span class="k">def</span> <span class="nf">P1dec</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">):</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">))</span>
+        <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">buf</span><span class="o">.</span><span class="n">readlines</span><span class="p">():</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">l</span><span class="o">.</span><span class="n">split</span><span class="p">())</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">bytecode</span><span class [...]
+            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> <span class="s">'Size spec in pnm-header does not match size of image data field'</span>
+        <span class="k">return</span> <span class="n">data</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="pnmimage.P4dec"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.P4dec">[docs]</a>    <span class="k">def</span> <span class="nf">P4dec</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">):</span>
+        <span class="n">err</span> <span class="o">=</span> <span class="s">'single bit (pbm) images are not supported - yet'</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="pnmimage.P2dec"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.P2dec">[docs]</a>    <span class="k">def</span> <span class="nf">P2dec</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">):</span>
+        <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">))</span>
+        <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">buf</span><span class="o">.</span><span class="n">readlines</span><span class="p">():</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">l</span><span class="o">.</span><span class="n">split</span><span class="p">())</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">bytecode</span><span class [...]
+            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+                <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> <span class="s">'Size spec in pnm-header does not match size of image data field'</span>
+        <span class="k">return</span> <span class="n">data</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="pnmimage.P5dec"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.P5dec">[docs]</a>    <span class="k">def</span> <span class="nf">P5dec</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">):</span>
+        <span class="n">l</span> <span class="o">=</span> <span class="n">buf</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">),</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><sp [...]
+        <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">,</span> <span class="s">'Size spec in pnm-header does not match size of image data field'</span>
+        <span class="k">return</span> <span class="n">data</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="pnmimage.P3dec"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.P3dec">[docs]</a>    <span class="k">def</span> <span class="nf">P3dec</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">):</span>
+        <span class="n">err</span> <span class="o">=</span> <span class="s">'(plain-ppm) RGB images are not supported - yet'</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="pnmimage.P6dec"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.P6dec">[docs]</a>    <span class="k">def</span> <span class="nf">P6dec</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">):</span>
+        <span class="n">err</span> <span class="o">=</span> <span class="s">'(ppm) RGB images are not supported - yet'</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="pnmimage.P7dec"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.P7dec">[docs]</a>    <span class="k">def</span> <span class="nf">P7dec</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">bytecode</span><span class="p">):</span>
+        <span class="n">err</span> <span class="o">=</span> <span class="s">'(pam) images are not supported - yet'</span>
+        <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
+</div>
+<div class="viewcode-block" id="pnmimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s">'write pnm images is not implemented yet.'</span><span class="p">)</span>
+</div>
+    <span class="nd">@staticmethod</span>
+<div class="viewcode-block" id="pnmimage.checkData"><a class="viewcode-back" href="../../api/modules.html#fabio.pnmimage.pnmimage.checkData">[docs]</a>    <span class="k">def</span> <span class="nf">checkData</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">return</span> <span class="bp">None</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">data</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span></div></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/readbytestream.html b/doc/html/_modules/fabio/readbytestream.html
new file mode 100644
index 0000000..a91f26a
--- /dev/null
+++ b/doc/html/_modules/fabio/readbytestream.html
@@ -0,0 +1,180 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.readbytestream — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.readbytestream</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#coding: utf8</span>
+
+<span class="sd">"""</span>
+<span class="sd">Reads a bytestream</span>
+
+<span class="sd">Authors: Jon Wright    Henning O. Sorensen & Erik Knudsen</span>
+<span class="sd">         ESRF          Risoe National Laboratory</span>
+<span class="sd">"""</span>
+
+<span class="kn">import</span> <span class="nn">numpy</span><span class="o">,</span> <span class="nn">logging</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"readbytestream"</span><span class="p">)</span>
+<span class="n">DATATYPES</span> <span class="o">=</span> <span class="p">{</span>
+    <span class="c"># type  sign bytes</span>
+    <span class="p">(</span><span class="s">"int"</span><span class="p">,</span> <span class="s">'n'</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">,</span>
+    <span class="p">(</span><span class="s">"int"</span><span class="p">,</span> <span class="s">'n'</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span>
+    <span class="p">(</span><span class="s">"int"</span><span class="p">,</span> <span class="s">'n'</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint32</span><span class="p">,</span>
+    <span class="p">(</span><span class="s">"int"</span><span class="p">,</span> <span class="s">'y'</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int8</span><span class="p">,</span>
+    <span class="p">(</span><span class="s">"int"</span><span class="p">,</span> <span class="s">'y'</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int16</span><span class="p">,</span>
+    <span class="p">(</span><span class="s">"int"</span><span class="p">,</span> <span class="s">'y'</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span>
+    <span class="p">(</span><span class="s">'float'</span><span class="p">,</span> <span class="s">'y'</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span> <span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="c"># does this occur in bruker?</span>
+    <span class="p">(</span><span class="s">'double'</span><span class="p">,</span> <span class="s">'y'</span><span class="p">,</span> <span class="mi">4</span><span class="p">):</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float64</span>
+    <span class="p">}</span>
+
+
+<div class="viewcode-block" id="readbytestream"><a class="viewcode-back" href="../../api/modules.html#fabio.readbytestream.readbytestream">[docs]</a><span class="k">def</span> <span class="nf">readbytestream</span><span class="p">(</span><span class="n">fil</span><span class="p">,</span>
+                   <span class="n">offset</span><span class="p">,</span>
+                   <span class="n">x</span><span class="p">,</span>
+                   <span class="n">y</span><span class="p">,</span>
+                   <span class="n">nbytespp</span><span class="p">,</span>
+                   <span class="n">datatype</span><span class="o">=</span><span class="s">'int'</span><span class="p">,</span>
+                   <span class="n">signed</span><span class="o">=</span><span class="s">'n'</span><span class="p">,</span>
+                   <span class="n">swap</span><span class="o">=</span><span class="s">'n'</span><span class="p">,</span>
+                   <span class="n">typeout</span><span class="o">=</span><span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Reads in a bytestream from a file (which may be a string indicating</span>
+<span class="sd">    a filename, or an already opened file (should be "rb"))</span>
+<span class="sd">    offset is the position (in bytes) where the pixel data start</span>
+<span class="sd">    nbytespp = number of bytes per pixel</span>
+<span class="sd">    type can be int or float (4 bytes pp) or double (8 bytes pp)</span>
+<span class="sd">    signed: normally signed data 'y', but 'n' to try to get back the </span>
+<span class="sd">    right numbers when unsigned data are converted to signed </span>
+<span class="sd">    (python once had no unsigned numeric types.)</span>
+<span class="sd">    swap, normally do not bother, but 'y' to swap bytes</span>
+<span class="sd">    typeout is the numpy type to output, normally uint16, </span>
+<span class="sd">    but more if overflows occurred</span>
+<span class="sd">    x and y are the pixel dimensions</span>
+<span class="sd">    </span>
+<span class="sd">    TODO : Read in regions of interest</span>
+<span class="sd">    </span>
+<span class="sd">    PLEASE LEAVE THE STRANGE INTERFACE ALONE - </span>
+<span class="sd">    IT IS USEFUL FOR THE BRUKER FORMAT</span>
+<span class="sd">    """</span>
+    <span class="n">tin</span> <span class="o">=</span> <span class="s">"dunno"</span>
+    <span class="n">length</span> <span class="o">=</span> <span class="n">nbytespp</span> <span class="o">*</span> <span class="n">x</span> <span class="o">*</span> <span class="n">y</span> <span class="c"># bytes per pixel times number of pixels</span>
+    <span class="k">if</span> <span class="n">datatype</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'float'</span><span class="p">,</span> <span class="s">'double'</span><span class="p">]:</span>
+        <span class="n">signed</span> <span class="o">=</span> <span class="s">'y'</span>
+
+    <span class="n">key</span> <span class="o">=</span> <span class="p">(</span><span class="n">datatype</span><span class="p">,</span> <span class="n">signed</span><span class="p">,</span> <span class="n">nbytespp</span><span class="p">)</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">tin</span> <span class="o">=</span> <span class="n">DATATYPES</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+    <span class="k">except</span><span class="p">:</span>
+        <span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"datatype,signed,nbytespp "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">key</span><span class="p">))</span>
+        <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Unknown combination of types to readbytestream"</span><span class="p">)</span>
+
+    <span class="c"># Did we get a string (filename) or a readable stream object?</span>
+    <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">fil</span><span class="p">,</span> <span class="s">"read"</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">fil</span><span class="p">,</span> <span class="s">"seek"</span><span class="p">):</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="n">fil</span>
+        <span class="n">opened</span> <span class="o">=</span> <span class="bp">False</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fil</span><span class="p">,</span> <span class="s">'rb'</span><span class="p">)</span>
+        <span class="n">opened</span> <span class="o">=</span> <span class="bp">True</span>
+
+    <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">offset</span><span class="p">)</span>
+
+    <span class="n">arr</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span>
+            <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span>
+                <span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">length</span><span class="p">),</span> <span class="n">tin</span><span class="p">)</span> <span class="p">,</span> <span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)),</span> <span class="n">typeout</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">swap</span> <span class="o">==</span> <span class="s">'y'</span><span class="p">:</span>
+        <span class="n">arr</span> <span class="o">=</span> <span class="n">arr</span><span class="o">.</span><span class="n">byteswap</span><span class="p">()</span>
+
+    <span class="k">if</span> <span class="n">opened</span><span class="p">:</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+    <span class="k">return</span> <span class="n">arr</span></div>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/tifimage.html b/doc/html/_modules/fabio/tifimage.html
new file mode 100644
index 0000000..5352b96
--- /dev/null
+++ b/doc/html/_modules/fabio/tifimage.html
@@ -0,0 +1,383 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.tifimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.tifimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c">#-*- coding: utf8 -*-</span>
+<span class="sd">"""</span>
+<span class="sd">FabIO class for dealing with TIFF images. </span>
+<span class="sd">In facts wraps TiffIO from V. Armando Solé (available in PyMca) or falls back to PIL</span>
+
+<span class="sd">Authors:</span>
+<span class="sd">........</span>
+<span class="sd">* Henning O. Sorensen & Erik Knudsen:</span>
+<span class="sd">  Center for Fundamental Research: Metal Structures in Four Dimensions;</span>
+<span class="sd">  Risoe National Laboratory;</span>
+<span class="sd">  Frederiksborgvej 399;</span>
+<span class="sd">  DK-4000 Roskilde;</span>
+<span class="sd">  email:erik.knudsen at risoe.dk</span>
+<span class="sd">* Jérôme Kieffer:</span>
+<span class="sd">  European Synchrotron Radiation Facility;</span>
+<span class="sd">  Grenoble (France)</span>
+<span class="sd">   </span>
+<span class="sd">License: GPLv3+        </span>
+<span class="sd">"""</span>
+
+<span class="n">__authors__</span> <span class="o">=</span> <span class="p">[</span><span class="s">"Jérôme Kieffer"</span><span class="p">,</span> <span class="s">"Henning O. Sorensen"</span><span class="p">,</span> <span class="s">"Erik Knudsen"</span><span class="p">]</span>
+<span class="n">__date__</span> <span class="o">=</span> <span class="s">"11/07/2011"</span>
+<span class="n">__license__</span> <span class="o">=</span> <span class="s">"GPLv3+"</span>
+<span class="n">__copyright__</span> <span class="o">=</span> <span class="s">"ESRF, Grenoble & Risoe National Laboratory"</span>
+<span class="n">__status__</span> <span class="o">=</span> <span class="s">"stable"</span>
+<span class="kn">import</span> <span class="nn">time</span><span class="o">,</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">struct</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"tifimage"</span><span class="p">)</span>
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">from</span> <span class="nn">PIL</span> <span class="kn">import</span> <span class="n">Image</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"PIL is not installed ... trying to do without"</span><span class="p">)</span>
+    <span class="n">Image</span> <span class="o">=</span> <span class="bp">None</span>
+<span class="kn">import</span> <span class="nn">numpy</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">from</span> <span class="nn">TiffIO</span>     <span class="kn">import</span> <span class="n">TiffIO</span>
+
+<span class="n">PIL_TO_NUMPY</span> <span class="o">=</span> <span class="p">{</span> <span class="s">"I;16"</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">,</span>
+                   <span class="s">"F"</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span>
+                   <span class="s">"1"</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">bool</span><span class="p">,</span>
+                   <span class="s">"I"</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span><span class="p">,</span>
+                   <span class="s">"L"</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint8</span><span class="p">,</span>
+                    <span class="p">}</span>
+
+<span class="n">LITTLE_ENDIAN</span> <span class="o">=</span> <span class="mi">1234</span>
+<span class="n">BIG_ENDIAN</span> <span class="o">=</span> <span class="mi">3412</span>
+
+<span class="n">TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">:</span><span class="s">'invalid'</span><span class="p">,</span> <span class="mi">1</span><span class="p">:</span><span class="s">'byte'</span><span class="p">,</span> <span class="mi">2</span><span class="p">:</span><span class="s">'ascii'</span><span class="p">,</span> <span class="mi">3</span><span class="p">:</span><span class="s">'short&# [...]
+
+<span class="n">TYPESIZES</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">:</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">:</span><span class="mi">2</span><span class="p">,</span> <span class="m [...]
+
+<span class="n">baseline_tiff_tags</span> <span class="o">=</span> <span class="p">{</span>
+  <span class="mi">256</span><span class="p">:</span><span class="s">'ImageWidth'</span><span class="p">,</span>
+  <span class="mi">257</span><span class="p">:</span><span class="s">'ImageLength'</span><span class="p">,</span>
+  <span class="mi">306</span><span class="p">:</span><span class="s">'DateTime'</span><span class="p">,</span>
+  <span class="mi">315</span><span class="p">:</span><span class="s">'Artist'</span><span class="p">,</span>
+  <span class="mi">258</span><span class="p">:</span><span class="s">'BitsPerSample'</span><span class="p">,</span>
+  <span class="mi">265</span><span class="p">:</span><span class="s">'CellLength'</span><span class="p">,</span>
+  <span class="mi">264</span><span class="p">:</span><span class="s">'CellWidth'</span><span class="p">,</span>
+  <span class="mi">259</span><span class="p">:</span><span class="s">'Compression'</span><span class="p">,</span>
+
+  <span class="mi">262</span><span class="p">:</span><span class="s">'PhotometricInterpretation'</span><span class="p">,</span>
+  <span class="mi">296</span><span class="p">:</span><span class="s">'ResolutionUnit'</span><span class="p">,</span>
+  <span class="mi">282</span><span class="p">:</span><span class="s">'XResolution'</span><span class="p">,</span>
+  <span class="mi">283</span><span class="p">:</span><span class="s">'YResolution'</span><span class="p">,</span>
+
+  <span class="mi">278</span><span class="p">:</span><span class="s">'RowsPerStrip'</span><span class="p">,</span>
+  <span class="mi">273</span><span class="p">:</span><span class="s">'StripOffset'</span><span class="p">,</span>
+  <span class="mi">279</span><span class="p">:</span><span class="s">'StripByteCounts'</span><span class="p">,</span>
+
+  <span class="mi">270</span><span class="p">:</span><span class="s">'ImageDescription'</span><span class="p">,</span>
+  <span class="mi">271</span><span class="p">:</span><span class="s">'Make'</span><span class="p">,</span>
+  <span class="mi">272</span><span class="p">:</span><span class="s">'Model'</span><span class="p">,</span>
+  <span class="mi">320</span><span class="p">:</span><span class="s">'ColorMap'</span><span class="p">,</span>
+  <span class="mi">305</span><span class="p">:</span><span class="s">'Software'</span><span class="p">,</span>
+  <span class="mi">339</span><span class="p">:</span><span class="s">'SampleFormat'</span><span class="p">,</span>
+  <span class="mi">33432</span><span class="p">:</span><span class="s">'Copyright'</span>
+  <span class="p">}</span>
+
+<div class="viewcode-block" id="tifimage"><a class="viewcode-back" href="../../api/modules.html#fabio.tifimage.tifimage">[docs]</a><span class="k">class</span> <span class="nc">tifimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">"""</span>
+<span class="sd">    Images in TIF format</span>
+<span class="sd">    Wraps TiffIO</span>
+<span class="sd">    """</span>
+    <span class="n">_need_a_seek_to_read</span> <span class="o">=</span> <span class="bp">True</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">):</span>
+        <span class="sd">""" Tifimage constructor adds an nbits member attribute """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">nbits</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwds</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">lib</span> <span class="o">=</span> <span class="bp">None</span>
+
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Try to read Tiff images header...</span>
+<span class="sd">        """</span>
+<span class="c">#        try:</span>
+<span class="c">#            self.header = { "filename" : infile.name }</span>
+<span class="c">#        except AttributeError:</span>
+<span class="c">#            self.header = {}</span>
+<span class="c">#</span>
+<span class="c">#        t = Tiff_header(infile.read())</span>
+<span class="c">#        self.header = t.header</span>
+<span class="c">#        try:</span>
+<span class="c">#            self.dim1 = int(self.header['ImageWidth'])</span>
+<span class="c">#            self.dim2 = int(self.header['ImageLength'])</span>
+<span class="c">#        except (KeyError):</span>
+<span class="c">#            logger.warning("image dimensions could not be determined from header tags, trying to go on anyway")</span>
+<span class="c">#         read the first 32 bytes to determine size</span>
+        <span class="n">header</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">infile</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">64</span><span class="p">),</span> <span class="n">numpy</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">header</span><span class="p">[</span><span class="mi">9</span><span class="p">])</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">header</span><span class="p">[</span><span class="mi">15</span><span class="p">])</span>
+<span class="c">#         nbits is not a fabioimage attribute...</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">nbits</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">header</span><span class="p">[</span><span class="mi">21</span><span class="p">])</span> <span class="c"># number of bits</span>
+
+<div class="viewcode-block" id="tifimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.tifimage.tifimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Wrapper for TiffIO.</span>
+<span class="sd">        """</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">lib</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">tiffIO</span> <span class="o">=</span> <span class="n">TiffIO</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">tiffIO</span><span class="o">.</span><span class="n">getNumberOfImages</span><span class="p">()</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
+                <span class="c">#No support for now of multi-frame tiff images</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">tiffIO</span><span class="o">.</span><span class="n">getImage</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="n">tiffIO</span><span class="o">.</span><span class="n">getInfo</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Unable to read </span><span class="si">%s</span><span class="s"> with TiffIO due to </span><span class="si">%s</span><span class="s">, trying PIL"</span> <span class="o">%</span> <span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">error</span><span class="p">))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+            <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="n">ncol</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Third dimension is the color"</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"dataset has </span><span class="si">%s</span><span class="s"> dimensions (</span><span class="si">%s</span><span class="s">), check for errors !!!!"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">ndim</span><span class="p">,</span> <span c [...]
+            <span class="bp">self</span><span class="o">.</span><span class="n">lib</span> <span class="o">=</span> <span class="s">"TiffIO"</span>
+
+        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lib</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">):</span>
+            <span class="k">if</span> <span class="n">Image</span><span class="p">:</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+                <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
+                    <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Error in opening </span><span class="si">%s</span><span class="s">  with PIL"</span> <span class="o">%</span> <span class="n">fname</span><span class="p">)</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">lib</span> <span class="o">=</span> <span class="bp">None</span>
+                    <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">lib</span> <span class="o">=</span> <span class="s">"PIL"</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span><span class="o">.</span><span class="n">size</span>
+                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span><span class="o">.</span><span class="n">mode</span> <span class="ow">in</span> <span class="n">PIL_TO_NUMPY</span><span class="p">:</span>
+                        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span><span class="o">.</span><span class="n">tostring</span><span class="p">(),</span> <span class="n">PIL_TO_NUMPY</span><span class="p">[</span><span class="bp">self</span><s [...]
+                    <span class="k">else</span><span class="p">:</span> <span class="c">#probably RGB or RGBA images: rely on PIL to convert it to greyscale float.</span>
+                        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span><span class="o">.</span><span class="n">convert</span><span class="p">(</span><span class="s">"F"</span><span class="p">)</span><span class="o">.</span><span cla [...]
+                    <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dim2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"Error in opening </span><span class="si">%s</span><span class="s">: no tiff reader managed to read the file."</span><span class="p">,</span> <span class="n">fname</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">lib</span> <span class="o">=</span> <span class="bp">None</span>
+                <span class="n">infile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtyp [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">name</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div>
+<div class="viewcode-block" id="tifimage.write"><a class="viewcode-back" href="../../api/modules.html#fabio.tifimage.tifimage.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Overrides the fabioimage.write method and provides a simple TIFF image writer.</span>
+<span class="sd">        @param fname: name of the file to save the image to</span>
+<span class="sd">        @tag_type fname: string or unicode (file?)...</span>
+<span class="sd">        """</span>
+        <span class="n">tiffIO</span> <span class="o">=</span> <span class="n">TiffIO</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">"w"</span><span class="p">)</span>
+        <span class="n">tiffIO</span><span class="o">.</span><span class="n">writeImage</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">info</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">,</span> <span class="n">software</span><span class="o">=</span><span class="s">"fabio.tifimage"</span><span cla [...]
+
+
+
+<span class="c">#define a couple of helper classes here:         </span></div></div>
+<div class="viewcode-block" id="Tiff_header"><a class="viewcode-back" href="../../api/modules.html#fabio.tifimage.Tiff_header">[docs]</a><span class="k">class</span> <span class="nc">Tiff_header</span><span class="p">(</span><span class="nb">object</span><span class="p">):</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">string</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">string</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">==</span> <span class="s">"II</span><span class="se">\x2a\x00</span><span class="s">"</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">byteorder</span> <span class="o">=</span> <span class="n">LITTLE_ENDIAN</span>
+        <span class="k">elif</span> <span class="n">string</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">==</span> <span class="s">'MM</span><span class="se">\x00\x2a</span><span class="s">'</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">byteorder</span> <span class="o">=</span> <span class="n">BIG_ENDIAN</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Warning: This does not appear to be a tiff file"</span><span class="p">)</span>
+        <span class="c">#the next two bytes contains the offset of the oth IFD</span>
+        <span class="n">offset_first_ifd</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"h"</span><span class="p">,</span> <span class="n">string</span><span class="p">[</span><span class="mi">4</span><span class="p">:])[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">ifd</span> <span class="o">=</span> <span class="p">[</span><span class="n">Image_File_Directory</span><span class="p">()]</span>
+        <span class="n">offset_next</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ifd</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">offset_first_ifd</span><span class="p">)</span>
+        <span class="k">while</span> <span class="p">(</span><span class="n">offset_next</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">ifd</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Image_File_Directory</span><span class="p">())</span>
+            <span class="n">offset_next</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ifd</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">offset_next</span><span class="p">)</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="c">#read the values of the header items into a dictionary</span>
+        <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ifd</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">entries</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">entry</span><span class="o">.</span><span class="n">tag</span> <span class="ow">in</span> <span class="n">baseline_tiff_tags</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">baseline_tiff_tags</span><span class="p">[</span><span class="n">entry</span><span class="o">.</span><span class="n">tag</span><span class="p">]]</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="n">val</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">header</span><span class="p">[</span><span class="n">entry</span><span class="o">.</span><span class="n">tag</span><span class="p">]</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="n">val</span>
+</div>
+<div class="viewcode-block" id="Image_File_Directory"><a class="viewcode-back" href="../../api/modules.html#fabio.tifimage.Image_File_Directory">[docs]</a><span class="k">class</span> <span class="nc">Image_File_Directory</span><span class="p">(</span><span class="nb">object</span><span class="p">):</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">instring</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">entries</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">offset</span> <span class="o">=</span> <span class="n">offset</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">count</span> <span class="o">=</span> <span class="bp">None</span>
+
+<div class="viewcode-block" id="Image_File_Directory.unpack"><a class="viewcode-back" href="../../api/modules.html#fabio.tifimage.Image_File_Directory.unpack">[docs]</a>    <span class="k">def</span> <span class="nf">unpack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">instring</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">):</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">offset</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">):</span> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">offset</span>
+
+        <span class="n">strInput</span> <span class="o">=</span> <span class="n">instring</span><span class="p">[</span><span class="n">offset</span><span class="p">:]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"H"</span><span class="p">,</span> <span class="n">strInput</span><span class="p">[:</span><span class="mi">2</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="c">#0th IFD contains count-1 entries (count includes the adress of the next IFD)</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">count</span> <span class="o">-</span> <span class="mi">1</span><span class="p">):</span>
+            <span class="n">e</span> <span class="o">=</span> <span class="n">Image_File_Directory_entry</span><span class="p">()</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">strInput</span><span class="p">[</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">12</span> <span class="o">*</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):])</span>
+            <span class="k">if</span> <span class="p">(</span><span class="n">e</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">entries</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
+            <span class="c">#extract data associated with tags</span>
+            <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">entries</span><span class="p">:</span>
+                <span class="k">if</span> <span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">val</span> <span class="o">==</span> <span class="bp">None</span><span class="p">):</span>
+                    <span class="n">e</span><span class="o">.</span><span class="n">extract_data</span><span class="p">(</span><span class="n">instring</span><span class="p">)</span>
+        <span class="c">#do we have some more ifds in this file </span>
+        <span class="n">offset_next</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"L"</span><span class="p">,</span> <span class="n">instring</span><span class="p">[</span><span class="n">offset</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">count</span> <span clas [...]
+        <span class="k">return</span> <span class="n">offset_next</span>
+</div></div>
+<div class="viewcode-block" id="Image_File_Directory_entry"><a class="viewcode-back" href="../../api/modules.html#fabio.tifimage.Image_File_Directory_entry">[docs]</a><span class="k">class</span> <span class="nc">Image_File_Directory_entry</span><span class="p">(</span><span class="nb">object</span><span class="p">):</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">tag</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">tag_type</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">count</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">offset</span><span class="o"> [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">tag</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_type</span> <span class="o">=</span> <span class="n">tag_type</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">count</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span> <span class="o">=</span> <span class="n">offset</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="bp">None</span>
+
+<div class="viewcode-block" id="Image_File_Directory_entry.unpack"><a class="viewcode-back" href="../../api/modules.html#fabio.tifimage.Image_File_Directory_entry.unpack">[docs]</a>    <span class="k">def</span> <span class="nf">unpack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">strInput</span><span class="p">):</span>
+        <span class="n">idfentry</span> <span class="o">=</span> <span class="n">strInput</span><span class="p">[:</span><span class="mi">12</span><span class="p">]</span>
+<span class="c">################################################################################</span>
+<span class="c"># #        TOFIX: How is it possible that HHL (2+2+4 bytes has a size of )</span>
+<span class="c">################################################################################</span>
+        <span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">tag_type</span><span class="p">,</span> <span class="n">count</span><span class="p">)</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"HHL"</span><span class="p">,</span> <span class="n">idfentry</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">tag</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">count</span> <span class="o">=</span> <span class="n">count</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">tag_type</span> <span class="o">=</span> <span class="n">tag_type</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">count</span> <span class="o"><=</span> <span class="mi">0</span><span class="p">):</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Tag # </span><span class="si">%s</span><span class="s"> has an invalid count: </span><span class="si">%s</span><span class="s">. Tag is ignored"</span> <span class="o">%</span> <span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">count</span><span class="p">))</span>
+            <span class="k">return</span>
+        <span class="k">if</span><span class="p">(</span><span class="n">count</span> <span class="o">*</span> <span class="n">TYPESIZES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o"><=</span> <span class="mi">4</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span> <span class="o">=</span> <span class="mi">8</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">extract_data</span><span class="p">(</span><span class="n">idfentry</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"L"</span><span class="p">,</span> <span class="n">idfentry</span><span class="p">[</span><span class="mi">8</span><span class="p">:])[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div>
+<div class="viewcode-block" id="Image_File_Directory_entry.extract_data"><a class="viewcode-back" href="../../api/modules.html#fabio.tifimage.Image_File_Directory_entry.extract_data">[docs]</a>    <span class="k">def</span> <span class="nf">extract_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">full_string</span><span class="p">):</span>
+        <span class="n">tag_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tag_type</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'byte'</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"B"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span class="p">:])[</span><span class="mi">0</span><span cla [...]
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'short'</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"H"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span class="p">:])[</span><span class="mi">0</span><span cla [...]
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'long'</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"L"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span class="p">:])[</span><span class="mi">0</span><span cla [...]
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'sbyte'</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"b"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span class="p">:])[</span><span class="mi">0</span><span cla [...]
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'sshort'</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"h"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span class="p">:])[</span><span class="mi">0</span><span cla [...]
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'slong'</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"l"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span class="p">:])[</span><span class="mi">0</span><span cla [...]
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'ascii'</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span class="p">:</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span> <span class="o">+</span> <span class="nb">max</span><span class="p">(</span><span class="bp">self</span><span class="o">.</ [...]
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'rational'</span><span class="p">):</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="p">(</span><span class="n">num</span><span class="p">,</span> <span class="n">den</span><span class="p">)</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"LL"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span cla [...]
+                <span class="k">print</span> <span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">num</span><span class="p">)</span> <span class="o">/</span> <span class="n">den</span>
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'srational'</span><span class="p">):</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="p">(</span><span class="n">num</span><span class="p">,</span> <span class="n">den</span><span class="p">)</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"ll"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span cla [...]
+                <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">num</span><span class="p">)</span> <span class="o">/</span> <span class="n">den</span><span class="p">,</span>
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'float'</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"f"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span class="p">:])[</span><span class="mi">0</span><span cla [...]
+        <span class="k">elif</span> <span class="p">(</span><span class="n">TYPES</span><span class="p">[</span><span class="n">tag_type</span><span class="p">]</span> <span class="o">==</span> <span class="s">'double'</span><span class="p">):</span>
+            <span class="k">if</span>  <span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack_from</span><span class="p">(</span><span class="s">"d"</span><span class="p">,</span> <span class="n">full_string</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">val_offset</span><span class="p">:])[</span><span class="mi">0</span><span [...]
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"unrecognized type of strInputentry self: </span><span class="si">%s</span><span class="s"> tag: </span><span class="si">%s</span><span class="s"> type: </span><span class="si">%s</span><span class="s"> TYPE: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><sp [...]
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/fabio/xsdimage.html b/doc/html/_modules/fabio/xsdimage.html
new file mode 100644
index 0000000..c077515
--- /dev/null
+++ b/doc/html/_modules/fabio/xsdimage.html
@@ -0,0 +1,224 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>fabio.xsdimage — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../../index.html" />
+    <link rel="up" title="Module code" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" accesskey="U">Module code</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>Source code for fabio.xsdimage</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python</span>
+<span class="c"># coding: utf8</span>
+<span class="sd">"""</span>
+<span class="sd">Authors: Jérôme Kieffer, ESRF </span>
+<span class="sd">         email:jerome.kieffer at esrf.fr</span>
+
+<span class="sd">XSDimge are XML files containing numpy arrays </span>
+<span class="sd">"""</span>
+<span class="n">__author__</span> <span class="o">=</span> <span class="s">"Jérôme Kieffer"</span>
+<span class="n">__contact__</span> <span class="o">=</span> <span class="s">"jerome.kieffer at esrf.eu"</span>
+<span class="n">__license__</span> <span class="o">=</span> <span class="s">"GPLv3+"</span>
+<span class="n">__copyright__</span> <span class="o">=</span> <span class="s">"European Synchrotron Radiation Facility, Grenoble, France"</span>
+
+<span class="kn">import</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">numpy</span>
+<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">"xsdimage"</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">fabioimage</span> <span class="kn">import</span> <span class="n">fabioimage</span>
+<span class="kn">import</span> <span class="nn">base64</span><span class="o">,</span> <span class="nn">hashlib</span>
+<span class="k">try</span><span class="p">:</span>
+    <span class="kn">from</span> <span class="nn">lxml</span> <span class="kn">import</span> <span class="n">etree</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+    <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"lxml library is probably not part of your python installation: disabling xsdimage format"</span><span class="p">)</span>
+    <span class="n">etree</span> <span class="o">=</span> <span class="bp">None</span>
+
+<div class="viewcode-block" id="xsdimage"><a class="viewcode-back" href="../../api/modules.html#fabio.xsdimage.xsdimage">[docs]</a><span class="k">class</span> <span class="nc">xsdimage</span><span class="p">(</span><span class="n">fabioimage</span><span class="p">):</span>
+    <span class="sd">""" </span>
+<span class="sd">    Read the XSDataImage XML File data format </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">data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">fname</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Constructor of the class XSDataImage.</span>
+
+<span class="sd">        @param _strFilename: the name of the file to open</span>
+<span class="sd">        @type  _strFilename: string</span>
+<span class="sd">        """</span>
+        <span class="n">fabioimage</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="n">header</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dims</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">coding</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">rawData</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">md5</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="n">fname</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">fname</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
+
+<div class="viewcode-block" id="xsdimage.read"><a class="viewcode-back" href="../../api/modules.html#fabio.xsdimage.xsdimage.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">frame</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        """</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">header</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">fname</span>
+        <span class="n">infile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">"rb"</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_readheader</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dim1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dim2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dims</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="s">"XSD file </span><span class="si">%s</span><span class="s"> is corrupt, no dimensions in it"</span> <span class="o">%</span> <span class="n">fname</span><span class="p">)</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">dtype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span><span class="o">.</span><span class="n">type</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">tostring</span><span cla [...]
+        <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">int32</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">bpp</span> <span class="o">=</span> <span class="mi">32</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Defaulting type to int32"</span><span class="p">)</span>
+
+        <span class="n">exp_size</span> <span class="o">=</span> <span class="mi">1</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dims</span><span class="p">:</span>
+            <span class="n">exp_size</span> <span class="o">*=</span> <span class="n">i</span>
+        <span class="k">assert</span> <span class="n">exp_size</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span>
+
+        <span class="n">decData</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">coding</span> <span class="o">==</span> <span class="s">"base64"</span><span class="p">:</span>
+            <span class="n">decData</span> <span class="o">=</span> <span class="n">base64</span><span class="o">.</span><span class="n">b64decode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rawData</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">coding</span> <span class="o">==</span> <span class="s">"base32"</span><span class="p">:</span>
+            <span class="n">decData</span> <span class="o">=</span> <span class="n">base64</span><span class="o">.</span><span class="n">b32decode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rawData</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">coding</span> <span class="o">==</span> <span class="s">"base16"</span><span class="p">:</span>
+            <span class="n">decData</span> <span class="o">=</span> <span class="n">base64</span><span class="o">.</span><span class="n">b16decode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rawData</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"Unable to recognize the encoding of the data !!! got </span><span class="si">%s</span><span class="s">, expected base64, base32 or base16, I assume it is base64 "</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">coding</span><span class="p">)</span>
+            <span class="n">decData</span> <span class="o">=</span> <span class="n">base64</span><span class="o">.</span><span class="n">b64decode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rawData</span><span class="p">)</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">md5</span><span class="p">:</span>
+            <span class="k">assert</span>  <span class="n">hashlib</span><span class="o">.</span><span class="n">md5</span><span class="p">(</span><span class="n">decData</span><span class="p">)</span><span class="o">.</span><span class="n">hexdigest</span><span class="p">()</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">md5</span>
+
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">decData</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">bytecode</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><s [...]
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">numpy</span><span class="o">.</span><span class="n">little_endian</span><span class="p">:</span> <span class="c">#by default little endian</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">byteswap</span><span class="p">(</span><span class="n">inplace</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resetvals</span><span class="p">()</span>
+<span class="c">#        # ensure the PIL image is reset</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">pilimage</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">return</span> <span class="bp">self</span>
+</div>
+    <span class="k">def</span> <span class="nf">_readheader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">):</span>
+        <span class="sd">"""</span>
+<span class="sd">        Read all headers in a file and populate self.header</span>
+<span class="sd">        data is not yet populated</span>
+<span class="sd">        @type infile: file object open in read mode</span>
+<span class="sd">        """</span>
+        <span class="n">xml</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">dims</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xml</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//shape"</span><span class="p">):</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">dims</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">i</span><span class="o">.</span><span class="n">text</span><span class="p">))</span>
+            <span class="k">except</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> Shape: Unable to convert </span><span class="si">%s</span><span class="s"> to integer in </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">error</span><span class="p">,</span> <span class="n">i</span><span class="o">.</ [...]
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xml</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//size"</span><span class="p">):</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">i</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+            <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span><span class="c">#IGNORE:W0703</span>
+                <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> Size: Unable to convert </span><span class="si">%s</span><span class="s"> to integer in </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">error</span><span class="p">,</span> <span class="n">i</span><span class="o">.</s [...]
+        <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xml</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//dtype"</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">=</span> <span class="n">i</span><span class="o">.</span><span class="n">text</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">coding</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xml</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//coding"</span><span class="p">):</span>
+            <span class="n">j</span> <span class="o">=</span> <span class="n">i</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"value"</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">j</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">coding</span> <span class="o">=</span> <span class="n">j</span><span class="o">.</span><span class="n">text</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">rawData</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xml</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//data"</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">rawData</span> <span class="o">=</span> <span class="n">i</span><span class="o">.</span><span class="n">text</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">md5</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">xml</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">"//md5sum"</span><span class="p">):</span>
+            <span class="n">j</span> <span class="o">=</span> <span class="n">i</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">"value"</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">j</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">md5</span> <span class="o">=</span> <span class="n">j</span><span class="o">.</span><span class="n">text</span>
+</div>
+<span class="k">if</span> <span class="n">etree</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+    <span class="n">xsdimage</span> <span class="o">=</span> <span class="bp">None</span>
+</pre></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../../index.html">FabIO 0.1.3 documentation</a> »</li>
+          <li><a href="../index.html" >Module code</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_modules/index.html b/doc/html/_modules/index.html
new file mode 100644
index 0000000..7ffec70
--- /dev/null
+++ b/doc/html/_modules/index.html
@@ -0,0 +1,119 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Overview: module code — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="../index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1>All modules for which code is available</h1>
+<ul><li><a href="fabio/GEimage.html">fabio.GEimage</a></li>
+<li><a href="fabio/HiPiCimage.html">fabio.HiPiCimage</a></li>
+<li><a href="fabio/OXDimage.html">fabio.OXDimage</a></li>
+<li><a href="fabio/TiffIO.html">fabio.TiffIO</a></li>
+<li><a href="fabio/adscimage.html">fabio.adscimage</a></li>
+<li><a href="fabio/binaryimage.html">fabio.binaryimage</a></li>
+<li><a href="fabio/bruker100image.html">fabio.bruker100image</a></li>
+<li><a href="fabio/brukerimage.html">fabio.brukerimage</a></li>
+<li><a href="fabio/cbfimage.html">fabio.cbfimage</a></li>
+<li><a href="fabio/compression.html">fabio.compression</a></li>
+<li><a href="fabio/converters.html">fabio.converters</a></li>
+<li><a href="fabio/datIO.html">fabio.datIO</a></li>
+<li><a href="fabio/dm3image.html">fabio.dm3image</a></li>
+<li><a href="fabio/edfimage.html">fabio.edfimage</a></li>
+<li><a href="fabio/fabioimage.html">fabio.fabioimage</a></li>
+<li><a href="fabio/fabioutils.html">fabio.fabioutils</a></li>
+<li><a href="fabio/file_series.html">fabio.file_series</a></li>
+<li><a href="fabio/fit2dmaskimage.html">fabio.fit2dmaskimage</a></li>
+<li><a href="fabio/fit2dspreadsheetimage.html">fabio.fit2dspreadsheetimage</a></li>
+<li><a href="fabio/kcdimage.html">fabio.kcdimage</a></li>
+<li><a href="fabio/mar345image.html">fabio.mar345image</a></li>
+<li><a href="fabio/marccdimage.html">fabio.marccdimage</a></li>
+<li><a href="fabio/openimage.html">fabio.openimage</a></li>
+<li><a href="fabio/pilatusimage.html">fabio.pilatusimage</a></li>
+<li><a href="fabio/pnmimage.html">fabio.pnmimage</a></li>
+<li><a href="fabio/readbytestream.html">fabio.readbytestream</a></li>
+<li><a href="fabio/tifimage.html">fabio.tifimage</a></li>
+<li><a href="fabio/xsdimage.html">fabio.xsdimage</a></li>
+</ul>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="../index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_sources/Changelog.txt b/doc/html/_sources/Changelog.txt
new file mode 100644
index 0000000..cecb1b6
--- /dev/null
+++ b/doc/html/_sources/Changelog.txt
@@ -0,0 +1,53 @@
+Changelog
+=========
+
+From FabIO-0.1.2 to FabIO-0.1.3:
+................................
+- Fixed a memory-leak in mar345 module
+- Improved support for bruker format (writer & reader)
+- Fixed a bug in EDF headers (very long headers)
+- Provide template for new file-formats
+- Fix a bug related to PIL in new MacOSX
+- Allow binary-images to be read from end
+
+From FabIO-0.1.1 to FabIO-0.1.2:
+................................
+- Fixed a bug in fabioimage.write (impacted all writers)
+- added Sphinx documentation "python setup.py build_doc"
+- PyLint compliance of some classes (rename, ...)
+- tests from installer with "python setup.py build test"
+
+From FabIO-0.1.0 to FabIO-0.1.1:
+................................
+- Merged Mar345 image reader and writer with cython bindings (towards python3 compliance)
+- Improve CBF image writing under windows
+- Bz2, Gzip and Flat files are managed through a common way ... classes are more (python v2.5) or less (python v2.7) overloaded
+- Fast EDF reading if one assumes offsets are the same between files, same for ROIs
+
+From FabIO-0.0.8 to FabIO-0.1.0:
+................................
+- OXD reader improved and writer implemented
+- Mar345 reader improved and writer implemented
+- CBF writer implemented
+- Clean-up of the code & bug fixes
+- Move towards python3
+- Make PIL optional dependency
+
+Python3 is not yet tested but some blocking points have been identified and some fixed.
+
+From FabIO-0.0.7 to FabIO-0.0.8:
+................................
+- Support for Tiff using TiffIO module from V.A.Solé
+- Clean-up of the code & bug fixes
+
+From FabIO-0.0.6 to FabIO-0.0.7:
+................................
+- Support for multi-frames EDF files
+- Support for XML images/2D arrays used in EDNA
+- new method: fabio.open(filename) that is an alias for fabio.openimage.openimage(filename)
+
+From FabIO-0.0.4 to FabIO-0.0.6:
+................................
+- Support for CBF files from Pilatus detectors
+- Support for KCD files from Nonius Kappa CCD images
+- write EDF with their native data type (instead of uint16 by default)
diff --git a/doc/html/_sources/INSTALL.txt b/doc/html/_sources/INSTALL.txt
new file mode 100644
index 0000000..2fc3754
--- /dev/null
+++ b/doc/html/_sources/INSTALL.txt
@@ -0,0 +1,126 @@
+Installation
+============
+
+FabIO can, as any Python module, be installed from its sources,
+available on sourceforge but we advice to use binary
+packages provided for the most common platforms on sourceforge:
+Windows, MacOSX and Linux. Moreover FabIO is part of the common
+Linux distributions Ubuntu (since 11.10) and Debian7 where the
+package is named python-fabio and can be installed via:
+::
+
+    # apt-get install python-fabio
+
+If you are using MS Windows or MacOSX; binary version have been packaged.
+Windows installers are executable, just download the one corresponding to you python version and run it.
+MacOSX builds are zipped: unzip them at the right place.
+
+
+Dependencies
+------------
+
+* Python 2.5 or later (python 3.x is not yet ready)
+* numpy - http://www.numpy.org
+
+For full functionality of Fabio the following modules need to be installed:
+
+
+* PIL (python imaging library) - http://www.pythonware.com
+* lxml (library for reading XSDimages)
+
+
+Installation from sources
+-------------------------
+
+FabIO can be downloaded from the fable download page on sourceforge.net.
+Presently the source code has been distributed as a zip package and a compressed tarball.
+Download either one and unpack it.
+
+::
+
+    http://sourceforge.net/projects/fable/files/fabio/
+
+e.g.
+::
+
+    tar xvzf fabio-0.1.3.tar.gz
+
+or
+
+::
+
+    unzip fabio-0.1.3.zip
+
+all files are unpacked into the directory fabio-0.1.3. To install these do
+
+::
+
+     cd fabio-0.1.3
+
+and install fabio with
+
+::
+
+    python setup.py build
+    sudo python setup.py install
+
+most likely you will need to gain root privileges (with sudo in front of the command) to install the built package.
+
+Development versions
+--------------------
+The newest development version can be obtained by checking it out from the subversion (SVN) repository:
+
+::
+
+    svn checkout https://svn.sourceforge.net/svnroot/fable/fabio/trunk fabio
+    cd fabio
+    python setup.py build
+    sudo python setup.py install
+
+For Ubuntu/Debian users, you will need:
+
+* python-imaging
+* python-imaging-tk
+* python-numpy
+* python-dev
+
+::
+
+    sudo apt-get install python-imaging python-imaging-tk python-numpy
+
+We provide also a debian-package builder based on stdeb:
+
+::
+
+	sudo apt-get install python-stdeb
+	./build-deb.sh
+
+which builds a debian package and installs it in a single command. Handy for testing.
+
+
+Test suite
+----------
+
+FabIO has a comprehensive test-suite to ensure non regression (about 100 tests).
+When you run the test for the first time, many test images will be download and converted into various compressed format like gzip and bzip2 (this takes a lot of time).
+Be sure you have an internet connection (and your environment variable http_proxy is correctly set-up, if you are behind a proxy).
+
+::
+
+    python setup.py build
+    cd test
+    python test_all.py
+    ........................................WARNING:compression:Encounter the python-gzip bug with trailing garbage, trying subprocess gzip
+    ..............................WARNING:edfimage:Non complete datablock: got 6928, expected 8388608
+    WARNING:edfimage:Non complete datablock: got 6928, expected 8388608
+    WARNING:edfimage:Non complete datablock: got 6928, expected 8388608
+    .....................WARNING:edfimage:Unknown compression scheme TY1
+    .....WARNING:edfimage:Unknown compression scheme FALSE
+    ...WARNING: Non standard TIFF. Rows per strip TAG missing
+    WARNING: Non standard TIFF. Strip byte counts TAG missing
+    ....
+    ----------------------------------------------------------------------
+    Ran 103 tests in 21.696s
+    OK
+
+Many tests are there to deal with malformed files, don't worry if the programs comaplins in warnings about "bad files", it is done on purpose.
diff --git a/doc/html/_sources/api/fabio.txt b/doc/html/_sources/api/fabio.txt
new file mode 100644
index 0000000..8f41e7d
--- /dev/null
+++ b/doc/html/_sources/api/fabio.txt
@@ -0,0 +1,11 @@
+FabIO Package
+=============
+
+:mod:`fabio` Package
+--------------------
+
+.. automodule:: fabio.__init__
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
diff --git a/doc/html/_sources/api/modules.txt b/doc/html/_sources/api/modules.txt
new file mode 100644
index 0000000..4bcc653
--- /dev/null
+++ b/doc/html/_sources/api/modules.txt
@@ -0,0 +1,242 @@
+FabIO Package
+=============
+
+.. toctree::
+   :maxdepth: 4
+	
+
+:mod:`fabio` Package
+--------------------
+
+.. automodule:: fabio.__init__
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.fabioimage` Module
+------------------------------
+
+.. automodule:: fabio.fabioimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.fabioutils` Module
+------------------------------
+
+.. automodule:: fabio.fabioutils
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.file_series` Module
+-------------------------------
+
+.. automodule:: fabio.file_series
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.openimage` Module
+-----------------------------
+
+.. automodule:: fabio.openimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.adscimage` Module
+-----------------------------
+
+.. automodule:: fabio.adscimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.binaryimage` Module
+-------------------------------
+
+.. automodule:: fabio.binaryimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.bruker100image` Module
+----------------------------------
+
+.. automodule:: fabio.bruker100image
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.brukerimage` Module
+-------------------------------
+
+.. automodule:: fabio.brukerimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.cbfimage` Module
+----------------------------
+
+.. automodule:: fabio.cbfimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.dm3image` Module
+----------------------------
+
+.. automodule:: fabio.dm3image
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+:mod:`fabio.edfimage` Module
+----------------------------
+
+.. automodule:: fabio.edfimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+    
+:mod:`fabio.fit2dmaskimage` Module
+----------------------------------
+
+.. automodule:: fabio.fit2dmaskimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.fit2dspreadsheetimage` Module
+-----------------------------------------
+
+.. automodule:: fabio.fit2dspreadsheetimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.GEimage` Module
+---------------------------
+
+.. automodule:: fabio.GEimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.HiPiCimage` Module
+------------------------------
+
+.. automodule:: fabio.HiPiCimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.kcdimage` Module
+----------------------------
+
+.. automodule:: fabio.kcdimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.mar345image` Module
+-------------------------------
+
+.. automodule:: fabio.mar345image
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.marccdimage` Module
+-------------------------------
+
+.. automodule:: fabio.marccdimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.OXDimage` Module
+----------------------------
+
+.. automodule:: fabio.OXDimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.pilatusimage` Module
+--------------------------------
+
+.. automodule:: fabio.pilatusimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+:mod:`fabio.pnmimage` Module
+----------------------------
+
+.. automodule:: fabio.pnmimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+:mod:`fabio.tifimage` Module
+----------------------------
+
+.. automodule:: fabio.tifimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.xsdimage` Module
+----------------------------
+
+.. automodule:: fabio.xsdimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.compression` Module
+-------------------------------
+
+.. automodule:: fabio.compression
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.converters` Module
+------------------------------
+
+.. automodule:: fabio.converters
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.datIO` Module
+-------------------------
+
+.. automodule:: fabio.datIO
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.TiffIO` Module
+--------------------------
+
+.. automodule:: fabio.TiffIO
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.readbytestream` Module
+----------------------------------
+
+.. automodule:: fabio.readbytestream
+    :members:
+    :undoc-members:
+    :show-inheritance:
+   
\ No newline at end of file
diff --git a/doc/html/_sources/getting_started.txt b/doc/html/_sources/getting_started.txt
new file mode 100644
index 0000000..6b2ae87
--- /dev/null
+++ b/doc/html/_sources/getting_started.txt
@@ -0,0 +1,294 @@
+Getting Started
+===============
+
+FabIO is a Python module for reading and handling data from two-dimensional X-ray detectors.
+
+
+FabIO is a Python module written for easy and transparent reading
+of raw two-dimensional data from various X-ray detectors. The
+module provides a function for reading any image and returning a
+fabioimage object which contains both metadata (header information)
+and the raw data. All fabioimage object offer additional methods to
+extract information about the image and to open other detector
+images from the same data series.
+
+
+Introduction
+------------
+
+One obstacle when writing software to analyse data collected from a
+two-dimensional detector is to read the raw data into the program,
+not least because the data can be stored in many different formats
+depending on the instrument used. To overcome this problem we
+decided to develop a general module, FabIO (FABle I/O), to handle
+reading and writing of two-dimensional data. The code-base was
+initiated by merging parts of our fabian imageviewer and
+ImageD11 peak-search programs and has been developed
+since 2007 as part of the TotalCryst program suite for
+analysis of 3DXRD microscopy data. During integration into
+a range of scientific programs like the FABLE graphical interface,
+EDNA and the fast azimuthal integration library,
+pyFAI; FabIO has gained several features like handling
+multi-frame image formats as well as writing many of the file
+formats.
+
+
+FabIO Python module
+-------------------
+
+Python is a scripting language that is very popular among
+scientists and which also allows well structured applications and
+libraries to be developed.
+
+Philosophy
+..........
+
+The intention behind this development was to create a Python module
+which would enable easy reading of 2D data images, from any
+detector without having to worry about the file format. Therefore
+FabIO just needs a file name to open a file and it determines the
+file format automatically and deals with gzip and bzip2
+compression transparently. Opening a file returns an object
+which stores the image in memory as a 2D NumPy array
+and the metadata, called header, in a Python dictionary.
+Beside the data and header attributes, some methods are
+provided for reading the previous or next image in a series of
+images as well as jumping to a specific file number. For the user,
+these auxiliary methods are intended to be independent of the image
+format (as far as is reasonably possible).
+
+FabIO is written in an object-oriented style (with classes) but
+aims at being used in a scripting environment: special care has
+been taken to ensure the library remains easy to use. Therefore no
+knowledge of object-oriented programming is required to get full
+benefits of the library. As the development is done in a
+collaborative and decentralized way; a comprehensive test suite has
+been added to reduce the number of regressions when new features
+are added or old problems are repaired. The software is very
+modular and allows new classes to be added for handling other data
+formats easily. FabIO and its source-code are freely available to
+everyone on-line, licensed under the GNU General Public
+License version 3 (GPLv3). FabIO is also available directly from
+popular Linux distributions like Debian and Ubuntu.
+
+Implementation
+..............
+
+The main language used in the development of FabIO is Python;
+however, some image formats are compressed and require
+compression algorithms for reading and writing data. When such
+algorithms could not be implemented efficiently using Python or
+NumPy native modules were developed, in i.e. standard C code
+callable from Python (sometimes generated using Cython).
+This code has to be compiled for each computer architecture and
+offers excellent performance. FabIO is only dependent on the NumPy
+module and has extra features if two other optional Python modules
+are available. For reading XML files (that are used in EDNA) the
+Lxml module is required and the Python Image Library, PIL
+is needed for producing a PIL image for displaying the image
+in graphical user interfaces and several image-processing
+operations that are not re-implemented in FabIO. A variety of
+useful image processing is also available in the scipy.ndimage
+module and in scikits-image.
+
+Images can also be displayed in a convenient interactive manner
+using matplotlib and an IPython shell , which
+is mainly used for developing data analysis algorithms. Reading and
+writing procedure of the various TIFF formats is based on the
+TiffIO code from PyMCA.
+
+In the Python shell, the `fabio` module must be imported prior to
+reading an image in one of the supported file formats (see Table
+`Supported formats`, hereafter).
+The `fabio.open` function creates an instance of the
+Python class `fabioimage`, from the name of a file. This instance,
+named `img` hereafter, stores the image data in `img.data` as a 2D
+NumPy array. Often the image file contains more information than
+just the intensities of the pixels, e.g. information about how the
+image is stored and the instrument parameters at the time of the
+image acquisition, these metadata are usually stored in the file
+header. Header information, are available in `img.header` as a
+Python dictionary where keys are strings and values are usually
+strings or numeric values.
+
+Information in the header about the binary part of the image
+(compression, endianness, shape) are interpreted however, other
+metadata are exposed as they are recorded in the file. FabIO allows
+the user to modify and, where possible, to save this information
+(the table `Supported formats` summarizes writable formats).
+Automatic translation
+between file-formats, even if desirable, is sometimes impossible
+because not all format have the capability to be extended with
+additional metadata. Nevertheless FabIO is capable of converting
+one image data-format into another by taking care of the numerical
+specifics: for example float arrays are converted to integer arrays
+if the output format only accepts integers.
+
+FabIO methods
+.............
+
+One strength of the implementation in an object oriented language
+is the possibility to combine functions (or methods) together with
+data appropriate for specific formats. In addition to the header
+information and image data, every `fabioimage` instance (returned
+by `fabio.open`) has methods inherited from `fabioimage` which
+provide information about the image minimum, maximum and mean
+values. In addition there are methods which return the file number,
+name etc. Some of the most important methods are specific for
+certain formats because the methods are related to how frames in a
+sequence are handled; these methods are `img.next()`,
+`img.previous()`, and `img.getframe(n)`. The behaviour of such
+methods varies depending on the image format: for single-frame
+format (like mar345), `img.next()` will return the image in next
+file; for multi-frame format (like GE), `img.next()` will return
+the next frame within the same file. For formats which are possibly
+multi-framed like EDF, the behaviour depends on the actual number
+of frames per file (accessible via the `img.nframes` attribute).
+
+Usage
+-----
+
+Examples
+........
+
+In this section we have collected some basic examples of how FabIO
+can be employed.
+
+Opening an image:
+
+::
+
+    import fabio
+    im100 = fabio.open('Quartz_0100.tif') # Open image file
+    print(im0.data[1024,1024])            # Check a pixel value
+    im101 = im100.next()                  # Open next image
+    im270 = im1.getframe(270)             # Jump to file number 270: Quartz_0270.tif
+
+Normalising the intensity to a value in the header:
+
+::
+
+    img = fabio.open('exampleimage0001.edf')
+    print(img.header)
+    {'ByteOrder': 'LowByteFirst',
+     'DATE (scan begin)': 'Mon Jun 28 21:22:16 2010',
+     'ESRFCurrent': '198.099',
+    ...
+    }
+    # Normalise to beam current and save data
+    srcur = float(img.header['ESRFCurrent'])
+    img.data *= 200.0/srcur
+    img.write('normed_0001.edf')
+
+Interactive viewing with matplotlib:
+
+::
+
+    from matplotlib import pyplot       # Load matplotlib
+    pyplot.imshow(img.data)             # Display as an image
+    pyplot.show()                       # Show GUI window
+
+Future and perspectives
+-----------------------
+
+The Hierarchical Data Format version 5 (`hdf5`) is a data format which
+is increasingly popular for storage of X-ray and neutron data. To
+name a few facilities the synchrotron Soleil and the neutron
+sources ISIS, SNS and SINQ already use HDF extensively through the
+NeXus format. For now, mainly processed or curated data are
+stored in this format but new detectors are rumoured to provide
+native output in HDF5. FabIO will rely on H5Py, which
+already provides a good HDF5 binding for Python, as an external
+dependency, to be able to read and write such HDF5 files.
+
+In the near future FabIO will be upgraded to work with Python3 (a
+new version of Python); this change of version will affect some
+internals FabIO as string and file handling have been altered. This
+change is already ongoing as many parts of native code in C have
+already been translated into Cython to smoothe the
+transition, since Cython generates code compatible with Python3.
+This also makes it easier to retain backwards compatibility with
+the earlier Python versions.
+
+Conclusion
+----------
+
+FabIO gives an easy way to read and write 2D images when using the
+Python computer language. It was originally developed for X-ray
+diffraction data but now gives an easy way for scientists to access
+and manipulate their data from a wide range of 2D X-ray detectors.
+We welcome contributions to further improve the code and hope to
+add more file formats in the future as well as port the existing
+code base to the emerging Python3.
+
+Acknoledgements
+...............
+
+We acknowledge Andy Götz and Kenneth Evans for extensive
+testing when including the FabIO reader in the Fable image viewer
+(Götz et al., 2007).We also thank V. Armando Solé for assistance with
+his TiffIO reader and Carsten Gundlach for deployment of FabIO at
+the beamlines i711 and i811, MAX IV, and providing bug reports. We
+finally acknowledge our colleagues who have reported bugs and
+helped to improve FabIO. Financial support was granted by the EU
+6th Framework NEST/ADVENTURE project TotalCryst (Poulsen et
+al., 2006).
+
+
+Citation
+........
+
+
+Knudsen, E. B., Sørensen, H. O., Wright, J. P., Goret, G. & Kieffer, J. (2013). J. Appl. Cryst. 46, 537-539.
+
+http://dx.doi.org/10.1107/S0021889813000150
+
+
+List of file formats that FabIO can read and write
+..................................................
+
+In alphabetical order. The listed filename extensions are typical examples.
+FabIO tries to deduce the actual format from the file itself and only
+uses extensions as a fallback if that fails.
+
+.. csv-table:: Supported formats
+   :header: "Python Module", "Detector / Format", "Extension", "Read", "Multi-image", "Write"
+   :widths: 30, 30, 20, 10, 15, 10
+
+   "ADSC", "ADSC Quantum", ".img ", "Yes", "No", "Yes"
+   "Bruker", "Bruker formats", ".sfrm ", "Yes", "No", "Yes"
+   "DM3", "Gatan Digital Micrograph ", ".dm3 ", "Yes", "No", "No"
+   "EDF", "ESRF data format ", ".edf ", "Yes", "Yes ", "Yes"
+   "EDNA-XML", "Used by EDNA", ".xml ", "Yes", "No", "No"
+   "CBF", "CIF binary files", ".cbf ", "Yes", "No", "Yes"
+   "kcd", "Nonius KappaCCD", ".kccd ", "Yes", "No", "No"
+   "fit2d mask", "Used by Fit2D", ".msk ", "Yes", "No", "Yes"
+   "fit2d spreadsheet", "Used by Fit2D", ".spr ", "Yes", "No", "Yes"
+   "GE", "General Electric", "No", "Yes", "Yes ", "No"
+   "HiPiC", "Hamamatsu CCD", ".tif ", "Yes", "No", "No"
+   "marccd", "MarCCD/Mar165", ".mccd ", "Yes", "No", "Yes"
+   "mar345", "Mar345 image plate", ".mar3450 ", "Yes", "No", "Yes"
+   "OXD", "Oxford Diffraction", ".img ", "Yes", "No", "Yes"
+   "pilatus", "Dectris Pilatus Tiff", ".tif ", "Yes", "No", "Yes"
+   "PNM", "Portable aNy Map", ".pnm ", "Yes", "No", "No"
+   "TIFF", "Tagged Image File Format", ".tif ", "Yes", "No", "Yes"
+
+Adding new file formats
+.......................
+
+We hope it will be relatively easy to add new file formats to fabio in the future. The basic idea is the following:
+ 1. inherit from fabioimage overriding the methods _readheader, read and optionally write. Name your new module XXXimage where XXX means something (eg tifimage).
+ 2. readheader fills in a dictionary of "name":"value" pairs in self.header. No one expects to find anything much in there.
+ 3. read fills in self.data with a numpy array holding the image. Some redundant info which also appears are self.dim1 and self.dim2: the image dimensions, self.bpp is the bytes per pixel and self.bytecode is the numpy.dtype.type of the data.
+ 4. The member variables "_need_a_seek_to_read" and "_need_a_real_file" are there in case you have trouble with the transparent handling of bz2 and gz files.
+ 5. Register the file type (extension naming) in fabioutils.py:FILETYPES
+ 6. Add your new module as an import into fabio.openimage
+ 7. Fill out the magic numbers for your format in fabio.openimage if you know them (the characteristic first few bytes in the file)
+ 8. Upload a testimage to the file release system and create a unittest testcase which opens an example of your new format, confirming the image has actually been read in successfully (eg check the mean, max, min and esd are all correct, perhaps orientation too)
+ 9. Run pylint on your code and then please go clean it up. Have a go at mine while you are at it.
+ 10. Bask in the warm glow of appreciation when someone unexpectedly learns they don't need to convert their data into another format
+
+
+
+
+
diff --git a/doc/html/_sources/index.txt b/doc/html/_sources/index.txt
new file mode 100644
index 0000000..55274fc
--- /dev/null
+++ b/doc/html/_sources/index.txt
@@ -0,0 +1,26 @@
+.. FabIO documentation master file, created by
+   sphinx-quickstart on Fri Mar 15 09:03:50 2013.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Welcome to FabIO's documentation!
+=================================
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   getting_started
+   INSTALL
+   Changelog
+   api/modules
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
diff --git a/doc/html/_static/ajax-loader.gif b/doc/html/_static/ajax-loader.gif
new file mode 100644
index 0000000..61faf8c
Binary files /dev/null and b/doc/html/_static/ajax-loader.gif differ
diff --git a/doc/html/_static/basic.css b/doc/html/_static/basic.css
new file mode 100644
index 0000000..a04d654
--- /dev/null
+++ b/doc/html/_static/basic.css
@@ -0,0 +1,417 @@
+/**
+ * Sphinx stylesheet -- basic theme
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+    clear: both;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+    width: 100%;
+    font-size: 90%;
+}
+
+div.related h3 {
+    display: none;
+}
+
+div.related ul {
+    margin: 0;
+    padding: 0 0 0 10px;
+    list-style: none;
+}
+
+div.related li {
+    display: inline;
+}
+
+div.related li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+    padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+    float: left;
+    width: 230px;
+    margin-left: -100%;
+    font-size: 90%;
+}
+
+div.sphinxsidebar ul {
+    list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+    margin-left: 20px;
+    list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+    margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+img {
+    border: 0;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+    width: 90%;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 1.3em;
+}
+
+span.linkdescr {
+    font-style: italic;
+    padding-top: 5px;
+    font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+a.headerlink {
+    visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink {
+    visibility: visible;
+}
+
+div.body p.caption {
+    text-align: inherit;
+}
+
+div.body td {
+    text-align: left;
+}
+
+.field-list ul {
+    padding-left: 1em;
+}
+
+.first {
+    margin-top: 0 !important;
+}
+
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+    margin: 0 0 0.5em 1em;
+    border: 1px solid #ddb;
+    padding: 7px 7px 0 7px;
+    background-color: #ffe;
+    width: 40%;
+    float: right;
+}
+
+p.sidebar-title {
+    font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+    border: 1px solid #ccc;
+    padding: 7px 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 1.1em;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+p.admonition-title {
+    margin: 0px 10px 5px 0px;
+    font-weight: bold;
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+    border: 0;
+    border-collapse: collapse;
+}
+
+table.docutils td, table.docutils th {
+    padding: 1px 8px 1px 0;
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 1px solid #aaa;
+}
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+dl {
+    margin-bottom: 15px;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+dt:target, .highlight {
+    background-color: #fbe54e;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 1.1em;
+}
+
+.field-list ul {
+    margin: 0;
+    padding-left: 1em;
+}
+
+.field-list p {
+    margin: 0;
+}
+
+.refcount {
+    color: #060;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+.footnote:target  {
+    background-color: #ffa
+}
+
+.line-block {
+    display: block;
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+
+.line-block .line-block {
+    margin-top: 0;
+    margin-bottom: 0;
+    margin-left: 1.5em;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+    overflow: auto;
+}
+
+td.linenos pre {
+    padding: 5px 0px;
+    border: 0;
+    background-color: transparent;
+    color: #aaa;
+}
+
+table.highlighttable {
+    margin-left: 0.5em;
+}
+
+table.highlighttable td {
+    padding: 0 0.5em 0 0.5em;
+}
+
+tt.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+tt.descclassname {
+    background-color: transparent;
+}
+
+tt.xref, a tt {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+    background-color: transparent;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+    vertical-align: middle;
+}
+
+div.body div.math p {
+    text-align: center;
+}
+
+span.eqno {
+    float: right;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+ at media print {
+    div.document,
+    div.documentwrapper,
+    div.bodywrapper {
+        margin: 0 !important;
+        width: 100%;
+    }
+
+    div.sphinxsidebar,
+    div.related,
+    div.footer,
+    #top-link {
+        display: none;
+    }
+}
diff --git a/doc/html/_static/comment-bright.png b/doc/html/_static/comment-bright.png
new file mode 100644
index 0000000..551517b
Binary files /dev/null and b/doc/html/_static/comment-bright.png differ
diff --git a/doc/html/_static/comment-close.png b/doc/html/_static/comment-close.png
new file mode 100644
index 0000000..09b54be
Binary files /dev/null and b/doc/html/_static/comment-close.png differ
diff --git a/doc/html/_static/comment.png b/doc/html/_static/comment.png
new file mode 100644
index 0000000..92feb52
Binary files /dev/null and b/doc/html/_static/comment.png differ
diff --git a/doc/html/_static/default.css b/doc/html/_static/default.css
new file mode 100644
index 0000000..21f3f50
--- /dev/null
+++ b/doc/html/_static/default.css
@@ -0,0 +1,256 @@
+/*
+ * default.css_t
+ * ~~~~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- default theme.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+ at import url("basic.css");
+
+/* -- page layout ----------------------------------------------------------- */
+
+body {
+    font-family: sans-serif;
+    font-size: 100%;
+    background-color: #11303d;
+    color: #000;
+    margin: 0;
+    padding: 0;
+}
+
+div.document {
+    background-color: #1c4e63;
+}
+
+div.documentwrapper {
+    float: left;
+    width: 100%;
+}
+
+div.bodywrapper {
+    margin: 0 0 0 230px;
+}
+
+div.body {
+    background-color: #ffffff;
+    color: #000000;
+    padding: 0 20px 30px 20px;
+}
+
+div.footer {
+    color: #ffffff;
+    width: 100%;
+    padding: 9px 0 9px 0;
+    text-align: center;
+    font-size: 75%;
+}
+
+div.footer a {
+    color: #ffffff;
+    text-decoration: underline;
+}
+
+div.related {
+    background-color: #133f52;
+    line-height: 30px;
+    color: #ffffff;
+}
+
+div.related a {
+    color: #ffffff;
+}
+
+div.sphinxsidebar {
+}
+
+div.sphinxsidebar h3 {
+    font-family: 'Trebuchet MS', sans-serif;
+    color: #ffffff;
+    font-size: 1.4em;
+    font-weight: normal;
+    margin: 0;
+    padding: 0;
+}
+
+div.sphinxsidebar h3 a {
+    color: #ffffff;
+}
+
+div.sphinxsidebar h4 {
+    font-family: 'Trebuchet MS', sans-serif;
+    color: #ffffff;
+    font-size: 1.3em;
+    font-weight: normal;
+    margin: 5px 0 0 0;
+    padding: 0;
+}
+
+div.sphinxsidebar p {
+    color: #ffffff;
+}
+
+div.sphinxsidebar p.topless {
+    margin: 5px 10px 10px 10px;
+}
+
+div.sphinxsidebar ul {
+    margin: 10px;
+    padding: 0;
+    color: #ffffff;
+}
+
+div.sphinxsidebar a {
+    color: #98dbcc;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+
+
+/* -- hyperlink styles ------------------------------------------------------ */
+
+a {
+    color: #355f7c;
+    text-decoration: none;
+}
+
+a:visited {
+    color: #355f7c;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+
+
+/* -- body styles ----------------------------------------------------------- */
+
+div.body h1,
+div.body h2,
+div.body h3,
+div.body h4,
+div.body h5,
+div.body h6 {
+    font-family: 'Trebuchet MS', sans-serif;
+    background-color: #f2f2f2;
+    font-weight: normal;
+    color: #20435c;
+    border-bottom: 1px solid #ccc;
+    margin: 20px -20px 10px -20px;
+    padding: 3px 0 3px 10px;
+}
+
+div.body h1 { margin-top: 0; font-size: 200%; }
+div.body h2 { font-size: 160%; }
+div.body h3 { font-size: 140%; }
+div.body h4 { font-size: 120%; }
+div.body h5 { font-size: 110%; }
+div.body h6 { font-size: 100%; }
+
+a.headerlink {
+    color: #c60f0f;
+    font-size: 0.8em;
+    padding: 0 4px 0 4px;
+    text-decoration: none;
+}
+
+a.headerlink:hover {
+    background-color: #c60f0f;
+    color: white;
+}
+
+div.body p, div.body dd, div.body li {
+    text-align: justify;
+    line-height: 130%;
+}
+
+div.admonition p.admonition-title + p {
+    display: inline;
+}
+
+div.admonition p {
+    margin-bottom: 5px;
+}
+
+div.admonition pre {
+    margin-bottom: 5px;
+}
+
+div.admonition ul, div.admonition ol {
+    margin-bottom: 5px;
+}
+
+div.note {
+    background-color: #eee;
+    border: 1px solid #ccc;
+}
+
+div.seealso {
+    background-color: #ffc;
+    border: 1px solid #ff6;
+}
+
+div.topic {
+    background-color: #eee;
+}
+
+div.warning {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+}
+
+p.admonition-title {
+    display: inline;
+}
+
+p.admonition-title:after {
+    content: ":";
+}
+
+pre {
+    padding: 5px;
+    background-color: #eeffcc;
+    color: #333333;
+    line-height: 120%;
+    border: 1px solid #ac9;
+    border-left: none;
+    border-right: none;
+}
+
+tt {
+    background-color: #ecf0f3;
+    padding: 0 1px 0 1px;
+    font-size: 0.95em;
+}
+
+th {
+    background-color: #ede;
+}
+
+.warning tt {
+    background: #efc2c2;
+}
+
+.note tt {
+    background: #d6d6d6;
+}
+
+.viewcode-back {
+    font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+    background-color: #f4debf;
+    border-top: 1px solid #ac9;
+    border-bottom: 1px solid #ac9;
+}
\ No newline at end of file
diff --git a/doc/html/_static/doctools.js b/doc/html/_static/doctools.js
new file mode 100644
index 0000000..d4619fd
--- /dev/null
+++ b/doc/html/_static/doctools.js
@@ -0,0 +1,247 @@
+/*
+ * doctools.js
+ * ~~~~~~~~~~~
+ *
+ * Sphinx JavaScript utilities for all documentation.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/**
+ * select a different prefix for underscore
+ */
+$u = _.noConflict();
+
+/**
+ * make the code below compatible with browsers without
+ * an installed firebug like debugger
+if (!window.console || !console.firebug) {
+  var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
+    "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
+    "profile", "profileEnd"];
+  window.console = {};
+  for (var i = 0; i < names.length; ++i)
+    window.console[names[i]] = function() {};
+}
+ */
+
+/**
+ * small helper function to urldecode strings
+ */
+jQuery.urldecode = function(x) {
+  return decodeURIComponent(x).replace(/\+/g, ' ');
+}
+
+/**
+ * small helper function to urlencode strings
+ */
+jQuery.urlencode = encodeURIComponent;
+
+/**
+ * This function returns the parsed url parameters of the
+ * current request. Multiple values per key are supported,
+ * it will always return arrays of strings for the value parts.
+ */
+jQuery.getQueryParameters = function(s) {
+  if (typeof s == 'undefined')
+    s = document.location.search;
+  var parts = s.substr(s.indexOf('?') + 1).split('&');
+  var result = {};
+  for (var i = 0; i < parts.length; i++) {
+    var tmp = parts[i].split('=', 2);
+    var key = jQuery.urldecode(tmp[0]);
+    var value = jQuery.urldecode(tmp[1]);
+    if (key in result)
+      result[key].push(value);
+    else
+      result[key] = [value];
+  }
+  return result;
+};
+
+/**
+ * small function to check if an array contains
+ * a given item.
+ */
+jQuery.contains = function(arr, item) {
+  for (var i = 0; i < arr.length; i++) {
+    if (arr[i] == item)
+      return true;
+  }
+  return false;
+};
+
+/**
+ * highlight a given string on a jquery object by wrapping it in
+ * span elements with the given class name.
+ */
+jQuery.fn.highlightText = function(text, className) {
+  function highlight(node) {
+    if (node.nodeType == 3) {
+      var val = node.nodeValue;
+      var pos = val.toLowerCase().indexOf(text);
+      if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
+        var span = document.createElement("span");
+        span.className = className;
+        span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+        node.parentNode.insertBefore(span, node.parentNode.insertBefore(
+          document.createTextNode(val.substr(pos + text.length)),
+          node.nextSibling));
+        node.nodeValue = val.substr(0, pos);
+      }
+    }
+    else if (!jQuery(node).is("button, select, textarea")) {
+      jQuery.each(node.childNodes, function() {
+        highlight(this);
+      });
+    }
+  }
+  return this.each(function() {
+    highlight(this);
+  });
+};
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+var Documentation = {
+
+  init : function() {
+    this.fixFirefoxAnchorBug();
+    this.highlightSearchWords();
+    this.initIndexTable();
+  },
+
+  /**
+   * i18n support
+   */
+  TRANSLATIONS : {},
+  PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
+  LOCALE : 'unknown',
+
+  // gettext and ngettext don't access this so that the functions
+  // can safely bound to a different name (_ = Documentation.gettext)
+  gettext : function(string) {
+    var translated = Documentation.TRANSLATIONS[string];
+    if (typeof translated == 'undefined')
+      return string;
+    return (typeof translated == 'string') ? translated : translated[0];
+  },
+
+  ngettext : function(singular, plural, n) {
+    var translated = Documentation.TRANSLATIONS[singular];
+    if (typeof translated == 'undefined')
+      return (n == 1) ? singular : plural;
+    return translated[Documentation.PLURALEXPR(n)];
+  },
+
+  addTranslations : function(catalog) {
+    for (var key in catalog.messages)
+      this.TRANSLATIONS[key] = catalog.messages[key];
+    this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
+    this.LOCALE = catalog.locale;
+  },
+
+  /**
+   * add context elements like header anchor links
+   */
+  addContextElements : function() {
+    $('div[id] > :header:first').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this headline')).
+      appendTo(this);
+    });
+    $('dt[id]').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this definition')).
+      appendTo(this);
+    });
+  },
+
+  /**
+   * workaround a firefox stupidity
+   */
+  fixFirefoxAnchorBug : function() {
+    if (document.location.hash && $.browser.mozilla)
+      window.setTimeout(function() {
+        document.location.href += '';
+      }, 10);
+  },
+
+  /**
+   * highlight the search words provided in the url in the text
+   */
+  highlightSearchWords : function() {
+    var params = $.getQueryParameters();
+    var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
+    if (terms.length) {
+      var body = $('div.body');
+      window.setTimeout(function() {
+        $.each(terms, function() {
+          body.highlightText(this.toLowerCase(), 'highlighted');
+        });
+      }, 10);
+      $('<p class="highlight-link"><a href="javascript:Documentation.' +
+        'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
+          .appendTo($('#searchbox'));
+    }
+  },
+
+  /**
+   * init the domain index toggle buttons
+   */
+  initIndexTable : function() {
+    var togglers = $('img.toggler').click(function() {
+      var src = $(this).attr('src');
+      var idnum = $(this).attr('id').substr(7);
+      $('tr.cg-' + idnum).toggle();
+      if (src.substr(-9) == 'minus.png')
+        $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
+      else
+        $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
+    }).css('display', '');
+    if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
+        togglers.click();
+    }
+  },
+
+  /**
+   * helper function to hide the search marks again
+   */
+  hideSearchWords : function() {
+    $('#searchbox .highlight-link').fadeOut(300);
+    $('span.highlighted').removeClass('highlighted');
+  },
+
+  /**
+   * make the url absolute
+   */
+  makeURL : function(relativeURL) {
+    return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
+  },
+
+  /**
+   * get the current relative url
+   */
+  getCurrentURL : function() {
+    var path = document.location.pathname;
+    var parts = path.split(/\//);
+    $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
+      if (this == '..')
+        parts.pop();
+    });
+    var url = parts.join('/');
+    return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
+  }
+};
+
+// quick alias for translations
+_ = Documentation.gettext;
+
+$(document).ready(function() {
+  Documentation.init();
+});
diff --git a/doc/html/_static/down-pressed.png b/doc/html/_static/down-pressed.png
new file mode 100644
index 0000000..6f7ad78
Binary files /dev/null and b/doc/html/_static/down-pressed.png differ
diff --git a/doc/html/_static/down.png b/doc/html/_static/down.png
new file mode 100644
index 0000000..3003a88
Binary files /dev/null and b/doc/html/_static/down.png differ
diff --git a/doc/html/_static/file.png b/doc/html/_static/file.png
new file mode 100644
index 0000000..d18082e
Binary files /dev/null and b/doc/html/_static/file.png differ
diff --git a/doc/html/_static/jquery.js b/doc/html/_static/jquery.js
new file mode 100644
index 0000000..96d660c
--- /dev/null
+++ b/doc/html/_static/jquery.js
@@ -0,0 +1,9404 @@
+/*!
+ * jQuery JavaScript Library v1.7.2
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu Nov 15 18:28:24 BRST 2012
+ */
+(function( window, undefined ) {
+
+// Use the correct document accordingly with window argument (sandbox)
+var document = window.document,
+	navigator = window.navigator,
+	location = window.location;
+var jQuery = (function() {
+
+// Define a local copy of jQuery
+var jQuery = function( selector, context ) {
+		// The jQuery object is actually just the init constructor 'enhanced'
+		return new jQuery.fn.init( selector, context, rootjQuery );
+	},
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$,
+
+	// A central reference to the root jQuery(document)
+	rootjQuery,
+
+	// A simple way to check for HTML strings or ID strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+
+	// Check if a string has a non-whitespace character in it
+	rnotwhite = /\S/,
+
+	// Used for trimming whitespace
+	trimLeft = /^\s+/,
+	trimRight = /\s+$/,
+
+	// Match a standalone tag
+	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+
+	// JSON RegExp
+	rvalidchars = /^[\],:{}\s]*$/,
+	rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+	rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+
+	// Useragent RegExp
+	rwebkit = /(webkit)[ \/]([\w.]+)/,
+	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
+	rmsie = /(msie) ([\w.]+)/,
+	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
+
+	// Matches dashed string for camelizing
+	rdashAlpha = /-([a-z]|[0-9])/ig,
+	rmsPrefix = /^-ms-/,
+
+	// Used by jQuery.camelCase as callback to replace()
+	fcamelCase = function( all, letter ) {
+		return ( letter + "" ).toUpperCase();
+	},
+
+	// Keep a UserAgent string for use with jQuery.browser
+	userAgent = navigator.userAgent,
+
+	// For matching the engine and version of the browser
+	browserMatch,
+
+	// The deferred used on DOM ready
+	readyList,
+
+	// The ready event handler
+	DOMContentLoaded,
+
+	// Save a reference to some core methods
+	toString = Object.prototype.toString,
+	hasOwn = Object.prototype.hasOwnProperty,
+	push = Array.prototype.push,
+	slice = Array.prototype.slice,
+	trim = String.prototype.trim,
+	indexOf = Array.prototype.indexOf,
+
+	// [[Class]] -> type pairs
+	class2type = {};
+
+jQuery.fn = jQuery.prototype = {
+	constructor: jQuery,
+	init: function( selector, context, rootjQuery ) {
+		var match, elem, ret, doc;
+
+		// Handle $(""), $(null), or $(undefined)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Handle $(DOMElement)
+		if ( selector.nodeType ) {
+			this.context = this[0] = selector;
+			this.length = 1;
+			return this;
+		}
+
+		// The body element only exists once, optimize finding it
+		if ( selector === "body" && !context && document.body ) {
+			this.context = document;
+			this[0] = document.body;
+			this.selector = selector;
+			this.length = 1;
+			return this;
+		}
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			// Are we dealing with HTML string or an ID?
+			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = quickExpr.exec( selector );
+			}
+
+			// Verify a match, and that no context was specified for #id
+			if ( match && (match[1] || !context) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[1] ) {
+					context = context instanceof jQuery ? context[0] : context;
+					doc = ( context ? context.ownerDocument || context : document );
+
+					// If a single string is passed in and it's a single tag
+					// just do a createElement and skip the rest
+					ret = rsingleTag.exec( selector );
+
+					if ( ret ) {
+						if ( jQuery.isPlainObject( context ) ) {
+							selector = [ document.createElement( ret[1] ) ];
+							jQuery.fn.attr.call( selector, context, true );
+
+						} else {
+							selector = [ doc.createElement( ret[1] ) ];
+						}
+
+					} else {
+						ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
+						selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes;
+					}
+
+					return jQuery.merge( this, selector );
+
+				// HANDLE: $("#id")
+				} else {
+					elem = document.getElementById( match[2] );
+
+					// Check parentNode to catch when Blackberry 4.6 returns
+					// nodes that are no longer in the document #6963
+					if ( elem && elem.parentNode ) {
+						// Handle the case where IE and Opera return items
+						// by name instead of ID
+						if ( elem.id !== match[2] ) {
+							return rootjQuery.find( selector );
+						}
+
+						// Otherwise, we inject the element directly into the jQuery object
+						this.length = 1;
+						this[0] = elem;
+					}
+
+					this.context = document;
+					this.selector = selector;
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || rootjQuery ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( jQuery.isFunction( selector ) ) {
+			return rootjQuery.ready( selector );
+		}
+
+		if ( selector.selector !== undefined ) {
+			this.selector = selector.selector;
+			this.context = selector.context;
+		}
+
+		return jQuery.makeArray( selector, this );
+	},
+
+	// Start with an empty selector
+	selector: "",
+
+	// The current version of jQuery being used
+	jquery: "1.7.2",
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	// The number of elements contained in the matched element set
+	size: function() {
+		return this.length;
+	},
+
+	toArray: function() {
+		return slice.call( this, 0 );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+		return num == null ?
+
+			// Return a 'clean' array
+			this.toArray() :
+
+			// Return just the object
+			( num < 0 ? this[ this.length + num ] : this[ num ] );
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems, name, selector ) {
+		// Build a new jQuery matched element set
+		var ret = this.constructor();
+
+		if ( jQuery.isArray( elems ) ) {
+			push.apply( ret, elems );
+
+		} else {
+			jQuery.merge( ret, elems );
+		}
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		ret.context = this.context;
+
+		if ( name === "find" ) {
+			ret.selector = this.selector + ( this.selector ? " " : "" ) + selector;
+		} else if ( name ) {
+			ret.selector = this.selector + "." + name + "(" + selector + ")";
+		}
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	// (You can seed the arguments with an array of args, but this is
+	// only used internally.)
+	each: function( callback, args ) {
+		return jQuery.each( this, callback, args );
+	},
+
+	ready: function( fn ) {
+		// Attach the listeners
+		jQuery.bindReady();
+
+		// Add the callback
+		readyList.add( fn );
+
+		return this;
+	},
+
+	eq: function( i ) {
+		i = +i;
+		return i === -1 ?
+			this.slice( i ) :
+			this.slice( i, i + 1 );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ),
+			"slice", slice.call(arguments).join(",") );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map(this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		}));
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor(null);
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: [].sort,
+	splice: [].splice
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[0] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+		target = arguments[1] || {};
+		// skip the boolean and the target
+		i = 2;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+		target = {};
+	}
+
+	// extend jQuery itself if only one argument is passed
+	if ( length === i ) {
+		target = this;
+		--i;
+	}
+
+	for ( ; i < length; i++ ) {
+		// Only deal with non-null/undefined values
+		if ( (options = arguments[ i ]) != null ) {
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && jQuery.isArray(src) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject(src) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend({
+	noConflict: function( deep ) {
+		if ( window.$ === jQuery ) {
+			window.$ = _$;
+		}
+
+		if ( deep && window.jQuery === jQuery ) {
+			window.jQuery = _jQuery;
+		}
+
+		return jQuery;
+	},
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Hold (or release) the ready event
+	holdReady: function( hold ) {
+		if ( hold ) {
+			jQuery.readyWait++;
+		} else {
+			jQuery.ready( true );
+		}
+	},
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+		// Either a released hold or an DOMready/load event and not yet ready
+		if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
+			// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+			if ( !document.body ) {
+				return setTimeout( jQuery.ready, 1 );
+			}
+
+			// Remember that the DOM is ready
+			jQuery.isReady = true;
+
+			// If a normal DOM Ready event fired, decrement, and wait if need be
+			if ( wait !== true && --jQuery.readyWait > 0 ) {
+				return;
+			}
+
+			// If there are functions bound, to execute
+			readyList.fireWith( document, [ jQuery ] );
+
+			// Trigger any bound ready events
+			if ( jQuery.fn.trigger ) {
+				jQuery( document ).trigger( "ready" ).off( "ready" );
+			}
+		}
+	},
+
+	bindReady: function() {
+		if ( readyList ) {
+			return;
+		}
+
+		readyList = jQuery.Callbacks( "once memory" );
+
+		// Catch cases where $(document).ready() is called after the
+		// browser event has already occurred.
+		if ( document.readyState === "complete" ) {
+			// Handle it asynchronously to allow scripts the opportunity to delay ready
+			return setTimeout( jQuery.ready, 1 );
+		}
+
+		// Mozilla, Opera and webkit nightlies currently support this event
+		if ( document.addEventListener ) {
+			// Use the handy event callback
+			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+
+			// A fallback to window.onload, that will always work
+			window.addEventListener( "load", jQuery.ready, false );
+
+		// If IE event model is used
+		} else if ( document.attachEvent ) {
+			// ensure firing before onload,
+			// maybe late but safe also for iframes
+			document.attachEvent( "onreadystatechange", DOMContentLoaded );
+
+			// A fallback to window.onload, that will always work
+			window.attachEvent( "onload", jQuery.ready );
+
+			// If IE and not a frame
+			// continually check to see if the document is ready
+			var toplevel = false;
+
+			try {
+				toplevel = window.frameElement == null;
+			} catch(e) {}
+
+			if ( document.documentElement.doScroll && toplevel ) {
+				doScrollCheck();
+			}
+		}
+	},
+
+	// See test/unit/core.js for details concerning isFunction.
+	// Since version 1.3, DOM methods and functions like alert
+	// aren't supported. They return false on IE (#2968).
+	isFunction: function( obj ) {
+		return jQuery.type(obj) === "function";
+	},
+
+	isArray: Array.isArray || function( obj ) {
+		return jQuery.type(obj) === "array";
+	},
+
+	isWindow: function( obj ) {
+		return obj != null && obj == obj.window;
+	},
+
+	isNumeric: function( obj ) {
+		return !isNaN( parseFloat(obj) ) && isFinite( obj );
+	},
+
+	type: function( obj ) {
+		return obj == null ?
+			String( obj ) :
+			class2type[ toString.call(obj) ] || "object";
+	},
+
+	isPlainObject: function( obj ) {
+		// Must be an Object.
+		// Because of IE, we also have to check the presence of the constructor property.
+		// Make sure that DOM nodes and window objects don't pass through, as well
+		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+			return false;
+		}
+
+		try {
+			// Not own constructor property must be Object
+			if ( obj.constructor &&
+				!hasOwn.call(obj, "constructor") &&
+				!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+				return false;
+			}
+		} catch ( e ) {
+			// IE8,9 Will throw exceptions on certain host objects #9897
+			return false;
+		}
+
+		// Own properties are enumerated firstly, so to speed up,
+		// if last one is own, then all properties are own.
+
+		var key;
+		for ( key in obj ) {}
+
+		return key === undefined || hasOwn.call( obj, key );
+	},
+
+	isEmptyObject: function( obj ) {
+		for ( var name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	parseJSON: function( data ) {
+		if ( typeof data !== "string" || !data ) {
+			return null;
+		}
+
+		// Make sure leading/trailing whitespace is removed (IE can't handle it)
+		data = jQuery.trim( data );
+
+		// Attempt to parse using the native JSON parser first
+		if ( window.JSON && window.JSON.parse ) {
+			return window.JSON.parse( data );
+		}
+
+		// Make sure the incoming data is actual JSON
+		// Logic borrowed from http://json.org/json2.js
+		if ( rvalidchars.test( data.replace( rvalidescape, "@" )
+			.replace( rvalidtokens, "]" )
+			.replace( rvalidbraces, "")) ) {
+
+			return ( new Function( "return " + data ) )();
+
+		}
+		jQuery.error( "Invalid JSON: " + data );
+	},
+
+	// Cross-browser xml parsing
+	parseXML: function( data ) {
+		if ( typeof data !== "string" || !data ) {
+			return null;
+		}
+		var xml, tmp;
+		try {
+			if ( window.DOMParser ) { // Standard
+				tmp = new DOMParser();
+				xml = tmp.parseFromString( data , "text/xml" );
+			} else { // IE
+				xml = new ActiveXObject( "Microsoft.XMLDOM" );
+				xml.async = "false";
+				xml.loadXML( data );
+			}
+		} catch( e ) {
+			xml = undefined;
+		}
+		if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+			jQuery.error( "Invalid XML: " + data );
+		}
+		return xml;
+	},
+
+	noop: function() {},
+
+	// Evaluates a script in a global context
+	// Workarounds based on findings by Jim Driscoll
+	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+	globalEval: function( data ) {
+		if ( data && rnotwhite.test( data ) ) {
+			// We use execScript on Internet Explorer
+			// We use an anonymous function so that context is window
+			// rather than jQuery in Firefox
+			( window.execScript || function( data ) {
+				window[ "eval" ].call( window, data );
+			} )( data );
+		}
+	},
+
+	// Convert dashed to camelCase; used by the css and data modules
+	// Microsoft forgot to hump their vendor prefix (#9572)
+	camelCase: function( string ) {
+		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	},
+
+	nodeName: function( elem, name ) {
+		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+	},
+
+	// args is for internal usage only
+	each: function( object, callback, args ) {
+		var name, i = 0,
+			length = object.length,
+			isObj = length === undefined || jQuery.isFunction( object );
+
+		if ( args ) {
+			if ( isObj ) {
+				for ( name in object ) {
+					if ( callback.apply( object[ name ], args ) === false ) {
+						break;
+					}
+				}
+			} else {
+				for ( ; i < length; ) {
+					if ( callback.apply( object[ i++ ], args ) === false ) {
+						break;
+					}
+				}
+			}
+
+		// A special, fast, case for the most common use of each
+		} else {
+			if ( isObj ) {
+				for ( name in object ) {
+					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
+						break;
+					}
+				}
+			} else {
+				for ( ; i < length; ) {
+					if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
+						break;
+					}
+				}
+			}
+		}
+
+		return object;
+	},
+
+	// Use native String.trim function wherever possible
+	trim: trim ?
+		function( text ) {
+			return text == null ?
+				"" :
+				trim.call( text );
+		} :
+
+		// Otherwise use our own trimming functionality
+		function( text ) {
+			return text == null ?
+				"" :
+				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
+		},
+
+	// results is for internal usage only
+	makeArray: function( array, results ) {
+		var ret = results || [];
+
+		if ( array != null ) {
+			// The window, strings (and functions) also have 'length'
+			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
+			var type = jQuery.type( array );
+
+			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
+				push.call( ret, array );
+			} else {
+				jQuery.merge( ret, array );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, array, i ) {
+		var len;
+
+		if ( array ) {
+			if ( indexOf ) {
+				return indexOf.call( array, elem, i );
+			}
+
+			len = array.length;
+			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+			for ( ; i < len; i++ ) {
+				// Skip accessing in sparse arrays
+				if ( i in array && array[ i ] === elem ) {
+					return i;
+				}
+			}
+		}
+
+		return -1;
+	},
+
+	merge: function( first, second ) {
+		var i = first.length,
+			j = 0;
+
+		if ( typeof second.length === "number" ) {
+			for ( var l = second.length; j < l; j++ ) {
+				first[ i++ ] = second[ j ];
+			}
+
+		} else {
+			while ( second[j] !== undefined ) {
+				first[ i++ ] = second[ j++ ];
+			}
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, inv ) {
+		var ret = [], retVal;
+		inv = !!inv;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( var i = 0, length = elems.length; i < length; i++ ) {
+			retVal = !!callback( elems[ i ], i );
+			if ( inv !== retVal ) {
+				ret.push( elems[ i ] );
+			}
+		}
+
+		return ret;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var value, key, ret = [],
+			i = 0,
+			length = elems.length,
+			// jquery objects are treated as arrays
+			isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
+
+		// Go through the array, translating each of the items to their
+		if ( isArray ) {
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret[ ret.length ] = value;
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( key in elems ) {
+				value = callback( elems[ key ], key, arg );
+
+				if ( value != null ) {
+					ret[ ret.length ] = value;
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return ret.concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// Bind a function to a context, optionally partially applying any
+	// arguments.
+	proxy: function( fn, context ) {
+		if ( typeof context === "string" ) {
+			var tmp = fn[ context ];
+			context = fn;
+			fn = tmp;
+		}
+
+		// Quick check to determine if target is callable, in the spec
+		// this throws a TypeError, but we will just return undefined.
+		if ( !jQuery.isFunction( fn ) ) {
+			return undefined;
+		}
+
+		// Simulated bind
+		var args = slice.call( arguments, 2 ),
+			proxy = function() {
+				return fn.apply( context, args.concat( slice.call( arguments ) ) );
+			};
+
+		// Set the guid of unique handler to the same of original handler, so it can be removed
+		proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+
+		return proxy;
+	},
+
+	// Mutifunctional method to get and set values to a collection
+	// The value/s can optionally be executed if it's a function
+	access: function( elems, fn, key, value, chainable, emptyGet, pass ) {
+		var exec,
+			bulk = key == null,
+			i = 0,
+			length = elems.length;
+
+		// Sets many values
+		if ( key && typeof key === "object" ) {
+			for ( i in key ) {
+				jQuery.access( elems, fn, i, key[i], 1, emptyGet, value );
+			}
+			chainable = 1;
+
+		// Sets one value
+		} else if ( value !== undefined ) {
+			// Optionally, function values get executed if exec is true
+			exec = pass === undefined && jQuery.isFunction( value );
+
+			if ( bulk ) {
+				// Bulk operations only iterate when executing function values
+				if ( exec ) {
+					exec = fn;
+					fn = function( elem, key, value ) {
+						return exec.call( jQuery( elem ), value );
+					};
+
+				// Otherwise they run against the entire set
+				} else {
+					fn.call( elems, value );
+					fn = null;
+				}
+			}
+
+			if ( fn ) {
+				for (; i < length; i++ ) {
+					fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
+				}
+			}
+
+			chainable = 1;
+		}
+
+		return chainable ?
+			elems :
+
+			// Gets
+			bulk ?
+				fn.call( elems ) :
+				length ? fn( elems[0], key ) : emptyGet;
+	},
+
+	now: function() {
+		return ( new Date() ).getTime();
+	},
+
+	// Use of jQuery.browser is frowned upon.
+	// More details: http://docs.jquery.com/Utilities/jQuery.browser
+	uaMatch: function( ua ) {
+		ua = ua.toLowerCase();
+
+		var match = rwebkit.exec( ua ) ||
+			ropera.exec( ua ) ||
+			rmsie.exec( ua ) ||
+			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
+			[];
+
+		return { browser: match[1] || "", version: match[2] || "0" };
+	},
+
+	sub: function() {
+		function jQuerySub( selector, context ) {
+			return new jQuerySub.fn.init( selector, context );
+		}
+		jQuery.extend( true, jQuerySub, this );
+		jQuerySub.superclass = this;
+		jQuerySub.fn = jQuerySub.prototype = this();
+		jQuerySub.fn.constructor = jQuerySub;
+		jQuerySub.sub = this.sub;
+		jQuerySub.fn.init = function init( selector, context ) {
+			if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
+				context = jQuerySub( context );
+			}
+
+			return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
+		};
+		jQuerySub.fn.init.prototype = jQuerySub.fn;
+		var rootjQuerySub = jQuerySub(document);
+		return jQuerySub;
+	},
+
+	browser: {}
+});
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+browserMatch = jQuery.uaMatch( userAgent );
+if ( browserMatch.browser ) {
+	jQuery.browser[ browserMatch.browser ] = true;
+	jQuery.browser.version = browserMatch.version;
+}
+
+// Deprecated, use jQuery.browser.webkit instead
+if ( jQuery.browser.webkit ) {
+	jQuery.browser.safari = true;
+}
+
+// IE doesn't match non-breaking spaces with \s
+if ( rnotwhite.test( "\xA0" ) ) {
+	trimLeft = /^[\s\xA0]+/;
+	trimRight = /[\s\xA0]+$/;
+}
+
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
+
+// Cleanup functions for the document ready method
+if ( document.addEventListener ) {
+	DOMContentLoaded = function() {
+		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+		jQuery.ready();
+	};
+
+} else if ( document.attachEvent ) {
+	DOMContentLoaded = function() {
+		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+		if ( document.readyState === "complete" ) {
+			document.detachEvent( "onreadystatechange", DOMContentLoaded );
+			jQuery.ready();
+		}
+	};
+}
+
+// The DOM ready check for Internet Explorer
+function doScrollCheck() {
+	if ( jQuery.isReady ) {
+		return;
+	}
+
+	try {
+		// If IE is used, use the trick by Diego Perini
+		// http://javascript.nwbox.com/IEContentLoaded/
+		document.documentElement.doScroll("left");
+	} catch(e) {
+		setTimeout( doScrollCheck, 1 );
+		return;
+	}
+
+	// and execute any waiting functions
+	jQuery.ready();
+}
+
+return jQuery;
+
+})();
+
+
+// String to Object flags format cache
+var flagsCache = {};
+
+// Convert String-formatted flags into Object-formatted ones and store in cache
+function createFlags( flags ) {
+	var object = flagsCache[ flags ] = {},
+		i, length;
+	flags = flags.split( /\s+/ );
+	for ( i = 0, length = flags.length; i < length; i++ ) {
+		object[ flags[i] ] = true;
+	}
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	flags:	an optional list of space-separated flags that will change how
+ *			the callback list behaves
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible flags:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( flags ) {
+
+	// Convert flags from String-formatted to Object-formatted
+	// (we check in cache first)
+	flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};
+
+	var // Actual callback list
+		list = [],
+		// Stack of fire calls for repeatable lists
+		stack = [],
+		// Last fire value (for non-forgettable lists)
+		memory,
+		// Flag to know if list was already fired
+		fired,
+		// Flag to know if list is currently firing
+		firing,
+		// First callback to fire (used internally by add and fireWith)
+		firingStart,
+		// End of the loop when firing
+		firingLength,
+		// Index of currently firing callback (modified by remove if needed)
+		firingIndex,
+		// Add one or several callbacks to the list
+		add = function( args ) {
+			var i,
+				length,
+				elem,
+				type,
+				actual;
+			for ( i = 0, length = args.length; i < length; i++ ) {
+				elem = args[ i ];
+				type = jQuery.type( elem );
+				if ( type === "array" ) {
+					// Inspect recursively
+					add( elem );
+				} else if ( type === "function" ) {
+					// Add if not in unique mode and callback is not in
+					if ( !flags.unique || !self.has( elem ) ) {
+						list.push( elem );
+					}
+				}
+			}
+		},
+		// Fire callbacks
+		fire = function( context, args ) {
+			args = args || [];
+			memory = !flags.memory || [ context, args ];
+			fired = true;
+			firing = true;
+			firingIndex = firingStart || 0;
+			firingStart = 0;
+			firingLength = list.length;
+			for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+				if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
+					memory = true; // Mark as halted
+					break;
+				}
+			}
+			firing = false;
+			if ( list ) {
+				if ( !flags.once ) {
+					if ( stack && stack.length ) {
+						memory = stack.shift();
+						self.fireWith( memory[ 0 ], memory[ 1 ] );
+					}
+				} else if ( memory === true ) {
+					self.disable();
+				} else {
+					list = [];
+				}
+			}
+		},
+		// Actual Callbacks object
+		self = {
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+					var length = list.length;
+					add( arguments );
+					// Do we need to add the callbacks to the
+					// current firing batch?
+					if ( firing ) {
+						firingLength = list.length;
+					// With memory, if we're not firing then
+					// we should call right away, unless previous
+					// firing was halted (stopOnFalse)
+					} else if ( memory && memory !== true ) {
+						firingStart = length;
+						fire( memory[ 0 ], memory[ 1 ] );
+					}
+				}
+				return this;
+			},
+			// Remove a callback from the list
+			remove: function() {
+				if ( list ) {
+					var args = arguments,
+						argIndex = 0,
+						argLength = args.length;
+					for ( ; argIndex < argLength ; argIndex++ ) {
+						for ( var i = 0; i < list.length; i++ ) {
+							if ( args[ argIndex ] === list[ i ] ) {
+								// Handle firingIndex and firingLength
+								if ( firing ) {
+									if ( i <= firingLength ) {
+										firingLength--;
+										if ( i <= firingIndex ) {
+											firingIndex--;
+										}
+									}
+								}
+								// Remove the element
+								list.splice( i--, 1 );
+								// If we have some unicity property then
+								// we only need to do this once
+								if ( flags.unique ) {
+									break;
+								}
+							}
+						}
+					}
+				}
+				return this;
+			},
+			// Control if a given callback is in the list
+			has: function( fn ) {
+				if ( list ) {
+					var i = 0,
+						length = list.length;
+					for ( ; i < length; i++ ) {
+						if ( fn === list[ i ] ) {
+							return true;
+						}
+					}
+				}
+				return false;
+			},
+			// Remove all callbacks from the list
+			empty: function() {
+				list = [];
+				return this;
+			},
+			// Have the list do nothing anymore
+			disable: function() {
+				list = stack = memory = undefined;
+				return this;
+			},
+			// Is it disabled?
+			disabled: function() {
+				return !list;
+			},
+			// Lock the list in its current state
+			lock: function() {
+				stack = undefined;
+				if ( !memory || memory === true ) {
+					self.disable();
+				}
+				return this;
+			},
+			// Is it locked?
+			locked: function() {
+				return !stack;
+			},
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( stack ) {
+					if ( firing ) {
+						if ( !flags.once ) {
+							stack.push( [ context, args ] );
+						}
+					} else if ( !( flags.once && memory ) ) {
+						fire( context, args );
+					}
+				}
+				return this;
+			},
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+
+
+var // Static reference to slice
+	sliceDeferred = [].slice;
+
+jQuery.extend({
+
+	Deferred: function( func ) {
+		var doneList = jQuery.Callbacks( "once memory" ),
+			failList = jQuery.Callbacks( "once memory" ),
+			progressList = jQuery.Callbacks( "memory" ),
+			state = "pending",
+			lists = {
+				resolve: doneList,
+				reject: failList,
+				notify: progressList
+			},
+			promise = {
+				done: doneList.add,
+				fail: failList.add,
+				progress: progressList.add,
+
+				state: function() {
+					return state;
+				},
+
+				// Deprecated
+				isResolved: doneList.fired,
+				isRejected: failList.fired,
+
+				then: function( doneCallbacks, failCallbacks, progressCallbacks ) {
+					deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );
+					return this;
+				},
+				always: function() {
+					deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
+					return this;
+				},
+				pipe: function( fnDone, fnFail, fnProgress ) {
+					return jQuery.Deferred(function( newDefer ) {
+						jQuery.each( {
+							done: [ fnDone, "resolve" ],
+							fail: [ fnFail, "reject" ],
+							progress: [ fnProgress, "notify" ]
+						}, function( handler, data ) {
+							var fn = data[ 0 ],
+								action = data[ 1 ],
+								returned;
+							if ( jQuery.isFunction( fn ) ) {
+								deferred[ handler ](function() {
+									returned = fn.apply( this, arguments );
+									if ( returned && jQuery.isFunction( returned.promise ) ) {
+										returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );
+									} else {
+										newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
+									}
+								});
+							} else {
+								deferred[ handler ]( newDefer[ action ] );
+							}
+						});
+					}).promise();
+				},
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					if ( obj == null ) {
+						obj = promise;
+					} else {
+						for ( var key in promise ) {
+							obj[ key ] = promise[ key ];
+						}
+					}
+					return obj;
+				}
+			},
+			deferred = promise.promise({}),
+			key;
+
+		for ( key in lists ) {
+			deferred[ key ] = lists[ key ].fire;
+			deferred[ key + "With" ] = lists[ key ].fireWith;
+		}
+
+		// Handle state
+		deferred.done( function() {
+			state = "resolved";
+		}, failList.disable, progressList.lock ).fail( function() {
+			state = "rejected";
+		}, doneList.disable, progressList.lock );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( firstParam ) {
+		var args = sliceDeferred.call( arguments, 0 ),
+			i = 0,
+			length = args.length,
+			pValues = new Array( length ),
+			count = length,
+			pCount = length,
+			deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
+				firstParam :
+				jQuery.Deferred(),
+			promise = deferred.promise();
+		function resolveFunc( i ) {
+			return function( value ) {
+				args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+				if ( !( --count ) ) {
+					deferred.resolveWith( deferred, args );
+				}
+			};
+		}
+		function progressFunc( i ) {
+			return function( value ) {
+				pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+				deferred.notifyWith( promise, pValues );
+			};
+		}
+		if ( length > 1 ) {
+			for ( ; i < length; i++ ) {
+				if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {
+					args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );
+				} else {
+					--count;
+				}
+			}
+			if ( !count ) {
+				deferred.resolveWith( deferred, args );
+			}
+		} else if ( deferred !== firstParam ) {
+			deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
+		}
+		return promise;
+	}
+});
+
+
+
+
+jQuery.support = (function() {
+
+	var support,
+		all,
+		a,
+		select,
+		opt,
+		input,
+		fragment,
+		tds,
+		events,
+		eventName,
+		i,
+		isSupported,
+		div = document.createElement( "div" ),
+		documentElement = document.documentElement;
+
+	// Preliminary tests
+	div.setAttribute("className", "t");
+	div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
+
+	all = div.getElementsByTagName( "*" );
+	a = div.getElementsByTagName( "a" )[ 0 ];
+
+	// Can't get basic test support
+	if ( !all || !all.length || !a ) {
+		return {};
+	}
+
+	// First batch of supports tests
+	select = document.createElement( "select" );
+	opt = select.appendChild( document.createElement("option") );
+	input = div.getElementsByTagName( "input" )[ 0 ];
+
+	support = {
+		// IE strips leading whitespace when .innerHTML is used
+		leadingWhitespace: ( div.firstChild.nodeType === 3 ),
+
+		// Make sure that tbody elements aren't automatically inserted
+		// IE will insert them into empty tables
+		tbody: !div.getElementsByTagName("tbody").length,
+
+		// Make sure that link elements get serialized correctly by innerHTML
+		// This requires a wrapper element in IE
+		htmlSerialize: !!div.getElementsByTagName("link").length,
+
+		// Get the style information from getAttribute
+		// (IE uses .cssText instead)
+		style: /top/.test( a.getAttribute("style") ),
+
+		// Make sure that URLs aren't manipulated
+		// (IE normalizes it by default)
+		hrefNormalized: ( a.getAttribute("href") === "/a" ),
+
+		// Make sure that element opacity exists
+		// (IE uses filter instead)
+		// Use a regex to work around a WebKit issue. See #5145
+		opacity: /^0.55/.test( a.style.opacity ),
+
+		// Verify style float existence
+		// (IE uses styleFloat instead of cssFloat)
+		cssFloat: !!a.style.cssFloat,
+
+		// Make sure that if no value is specified for a checkbox
+		// that it defaults to "on".
+		// (WebKit defaults to "" instead)
+		checkOn: ( input.value === "on" ),
+
+		// Make sure that a selected-by-default option has a working selected property.
+		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+		optSelected: opt.selected,
+
+		// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+		getSetAttribute: div.className !== "t",
+
+		// Tests for enctype support on a form(#6743)
+		enctype: !!document.createElement("form").enctype,
+
+		// Makes sure cloning an html5 element does not cause problems
+		// Where outerHTML is undefined, this still works
+		html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>",
+
+		// Will be defined later
+		submitBubbles: true,
+		changeBubbles: true,
+		focusinBubbles: false,
+		deleteExpando: true,
+		noCloneEvent: true,
+		inlineBlockNeedsLayout: false,
+		shrinkWrapBlocks: false,
+		reliableMarginRight: true,
+		pixelMargin: true
+	};
+
+	// jQuery.boxModel DEPRECATED in 1.3, use jQuery.support.boxModel instead
+	jQuery.boxModel = support.boxModel = (document.compatMode === "CSS1Compat");
+
+	// Make sure checked status is properly cloned
+	input.checked = true;
+	support.noCloneChecked = input.cloneNode( true ).checked;
+
+	// Make sure that the options inside disabled selects aren't marked as disabled
+	// (WebKit marks them as disabled)
+	select.disabled = true;
+	support.optDisabled = !opt.disabled;
+
+	// Test to see if it's possible to delete an expando from an element
+	// Fails in Internet Explorer
+	try {
+		delete div.test;
+	} catch( e ) {
+		support.deleteExpando = false;
+	}
+
+	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
+		div.attachEvent( "onclick", function() {
+			// Cloning a node shouldn't copy over any
+			// bound event handlers (IE does this)
+			support.noCloneEvent = false;
+		});
+		div.cloneNode( true ).fireEvent( "onclick" );
+	}
+
+	// Check if a radio maintains its value
+	// after being appended to the DOM
+	input = document.createElement("input");
+	input.value = "t";
+	input.setAttribute("type", "radio");
+	support.radioValue = input.value === "t";
+
+	input.setAttribute("checked", "checked");
+
+	// #11217 - WebKit loses check when the name is after the checked attribute
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+	fragment = document.createDocumentFragment();
+	fragment.appendChild( div.lastChild );
+
+	// WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Check if a disconnected checkbox will retain its checked
+	// value of true after appended to the DOM (IE6/7)
+	support.appendChecked = input.checked;
+
+	fragment.removeChild( input );
+	fragment.appendChild( div );
+
+	// Technique from Juriy Zaytsev
+	// http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
+	// We only care about the case where non-standard event systems
+	// are used, namely in IE. Short-circuiting here helps us to
+	// avoid an eval call (in setAttribute) which can cause CSP
+	// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
+	if ( div.attachEvent ) {
+		for ( i in {
+			submit: 1,
+			change: 1,
+			focusin: 1
+		}) {
+			eventName = "on" + i;
+			isSupported = ( eventName in div );
+			if ( !isSupported ) {
+				div.setAttribute( eventName, "return;" );
+				isSupported = ( typeof div[ eventName ] === "function" );
+			}
+			support[ i + "Bubbles" ] = isSupported;
+		}
+	}
+
+	fragment.removeChild( div );
+
+	// Null elements to avoid leaks in IE
+	fragment = select = opt = div = input = null;
+
+	// Run tests that need a body at doc ready
+	jQuery(function() {
+		var container, outer, inner, table, td, offsetSupport,
+			marginDiv, conMarginTop, style, html, positionTopLeftWidthHeight,
+			paddingMarginBorderVisibility, paddingMarginBorder,
+			body = document.getElementsByTagName("body")[0];
+
+		if ( !body ) {
+			// Return for frameset docs that don't have a body
+			return;
+		}
+
+		conMarginTop = 1;
+		paddingMarginBorder = "padding:0;margin:0;border:";
+		positionTopLeftWidthHeight = "position:absolute;top:0;left:0;width:1px;height:1px;";
+		paddingMarginBorderVisibility = paddingMarginBorder + "0;visibility:hidden;";
+		style = "style='" + positionTopLeftWidthHeight + paddingMarginBorder + "5px solid #000;";
+		html = "<div " + style + "display:block;'><div style='" + paddingMarginBorder + "0;display:block;overflow:hidden;'></div></div>" +
+			"<table " + style + "' cellpadding='0' cellspacing='0'>" +
+			"<tr><td></td></tr></table>";
+
+		container = document.createElement("div");
+		container.style.cssText = paddingMarginBorderVisibility + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px";
+		body.insertBefore( container, body.firstChild );
+
+		// Construct the test element
+		div = document.createElement("div");
+		container.appendChild( div );
+
+		// Check if table cells still have offsetWidth/Height when they are set
+		// to display:none and there are still other visible table cells in a
+		// table row; if so, offsetWidth/Height are not reliable for use when
+		// determining if an element has been hidden directly using
+		// display:none (it is still safe to use offsets if a parent element is
+		// hidden; don safety goggles and see bug #4512 for more information).
+		// (only IE 8 fails this test)
+		div.innerHTML = "<table><tr><td style='" + paddingMarginBorder + "0;display:none'></td><td>t</td></tr></table>";
+		tds = div.getElementsByTagName( "td" );
+		isSupported = ( tds[ 0 ].offsetHeight === 0 );
+
+		tds[ 0 ].style.display = "";
+		tds[ 1 ].style.display = "none";
+
+		// Check if empty table cells still have offsetWidth/Height
+		// (IE <= 8 fail this test)
+		support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
+
+		// Check if div with explicit width and no margin-right incorrectly
+		// gets computed margin-right based on width of container. For more
+		// info see bug #3333
+		// Fails in WebKit before Feb 2011 nightlies
+		// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+		if ( window.getComputedStyle ) {
+			div.innerHTML = "";
+			marginDiv = document.createElement( "div" );
+			marginDiv.style.width = "0";
+			marginDiv.style.marginRight = "0";
+			div.style.width = "2px";
+			div.appendChild( marginDiv );
+			support.reliableMarginRight =
+				( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
+		}
+
+		if ( typeof div.style.zoom !== "undefined" ) {
+			// Check if natively block-level elements act like inline-block
+			// elements when setting their display to 'inline' and giving
+			// them layout
+			// (IE < 8 does this)
+			div.innerHTML = "";
+			div.style.width = div.style.padding = "1px";
+			div.style.border = 0;
+			div.style.overflow = "hidden";
+			div.style.display = "inline";
+			div.style.zoom = 1;
+			support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
+
+			// Check if elements with layout shrink-wrap their children
+			// (IE 6 does this)
+			div.style.display = "block";
+			div.style.overflow = "visible";
+			div.innerHTML = "<div style='width:5px;'></div>";
+			support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
+		}
+
+		div.style.cssText = positionTopLeftWidthHeight + paddingMarginBorderVisibility;
+		div.innerHTML = html;
+
+		outer = div.firstChild;
+		inner = outer.firstChild;
+		td = outer.nextSibling.firstChild.firstChild;
+
+		offsetSupport = {
+			doesNotAddBorder: ( inner.offsetTop !== 5 ),
+			doesAddBorderForTableAndCells: ( td.offsetTop === 5 )
+		};
+
+		inner.style.position = "fixed";
+		inner.style.top = "20px";
+
+		// safari subtracts parent border width here which is 5px
+		offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 );
+		inner.style.position = inner.style.top = "";
+
+		outer.style.overflow = "hidden";
+		outer.style.position = "relative";
+
+		offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 );
+		offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop );
+
+		if ( window.getComputedStyle ) {
+			div.style.marginTop = "1%";
+			support.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%";
+		}
+
+		if ( typeof container.style.zoom !== "undefined" ) {
+			container.style.zoom = 1;
+		}
+
+		body.removeChild( container );
+		marginDiv = div = container = null;
+
+		jQuery.extend( support, offsetSupport );
+	});
+
+	return support;
+})();
+
+
+
+
+var rbrace = /^(?:\{.*\}|\[.*\])$/,
+	rmultiDash = /([A-Z])/g;
+
+jQuery.extend({
+	cache: {},
+
+	// Please use with caution
+	uuid: 0,
+
+	// Unique for each copy of jQuery on the page
+	// Non-digits removed to match rinlinejQuery
+	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
+
+	// The following elements throw uncatchable exceptions if you
+	// attempt to add expando properties to them.
+	noData: {
+		"embed": true,
+		// Ban all objects except for Flash (which handle expandos)
+		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+		"applet": true
+	},
+
+	hasData: function( elem ) {
+		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+		return !!elem && !isEmptyDataObject( elem );
+	},
+
+	data: function( elem, name, data, pvt /* Internal Use Only */ ) {
+		if ( !jQuery.acceptData( elem ) ) {
+			return;
+		}
+
+		var privateCache, thisCache, ret,
+			internalKey = jQuery.expando,
+			getByName = typeof name === "string",
+
+			// We have to handle DOM nodes and JS objects differently because IE6-7
+			// can't GC object references properly across the DOM-JS boundary
+			isNode = elem.nodeType,
+
+			// Only DOM nodes need the global jQuery cache; JS object data is
+			// attached directly to the object so GC can occur automatically
+			cache = isNode ? jQuery.cache : elem,
+
+			// Only defining an ID for JS objects if its cache already exists allows
+			// the code to shortcut on the same path as a DOM node with no cache
+			id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey,
+			isEvents = name === "events";
+
+		// Avoid doing any more work than we need to when trying to get data on an
+		// object that has no data at all
+		if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) {
+			return;
+		}
+
+		if ( !id ) {
+			// Only DOM nodes need a new unique ID for each element since their data
+			// ends up in the global cache
+			if ( isNode ) {
+				elem[ internalKey ] = id = ++jQuery.uuid;
+			} else {
+				id = internalKey;
+			}
+		}
+
+		if ( !cache[ id ] ) {
+			cache[ id ] = {};
+
+			// Avoids exposing jQuery metadata on plain JS objects when the object
+			// is serialized using JSON.stringify
+			if ( !isNode ) {
+				cache[ id ].toJSON = jQuery.noop;
+			}
+		}
+
+		// An object can be passed to jQuery.data instead of a key/value pair; this gets
+		// shallow copied over onto the existing cache
+		if ( typeof name === "object" || typeof name === "function" ) {
+			if ( pvt ) {
+				cache[ id ] = jQuery.extend( cache[ id ], name );
+			} else {
+				cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+			}
+		}
+
+		privateCache = thisCache = cache[ id ];
+
+		// jQuery data() is stored in a separate object inside the object's internal data
+		// cache in order to avoid key collisions between internal data and user-defined
+		// data.
+		if ( !pvt ) {
+			if ( !thisCache.data ) {
+				thisCache.data = {};
+			}
+
+			thisCache = thisCache.data;
+		}
+
+		if ( data !== undefined ) {
+			thisCache[ jQuery.camelCase( name ) ] = data;
+		}
+
+		// Users should not attempt to inspect the internal events object using jQuery.data,
+		// it is undocumented and subject to change. But does anyone listen? No.
+		if ( isEvents && !thisCache[ name ] ) {
+			return privateCache.events;
+		}
+
+		// Check for both converted-to-camel and non-converted data property names
+		// If a data property was specified
+		if ( getByName ) {
+
+			// First Try to find as-is property data
+			ret = thisCache[ name ];
+
+			// Test for null|undefined property data
+			if ( ret == null ) {
+
+				// Try to find the camelCased property
+				ret = thisCache[ jQuery.camelCase( name ) ];
+			}
+		} else {
+			ret = thisCache;
+		}
+
+		return ret;
+	},
+
+	removeData: function( elem, name, pvt /* Internal Use Only */ ) {
+		if ( !jQuery.acceptData( elem ) ) {
+			return;
+		}
+
+		var thisCache, i, l,
+
+			// Reference to internal data cache key
+			internalKey = jQuery.expando,
+
+			isNode = elem.nodeType,
+
+			// See jQuery.data for more information
+			cache = isNode ? jQuery.cache : elem,
+
+			// See jQuery.data for more information
+			id = isNode ? elem[ internalKey ] : internalKey;
+
+		// If there is already no cache entry for this object, there is no
+		// purpose in continuing
+		if ( !cache[ id ] ) {
+			return;
+		}
+
+		if ( name ) {
+
+			thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+			if ( thisCache ) {
+
+				// Support array or space separated string names for data keys
+				if ( !jQuery.isArray( name ) ) {
+
+					// try the string as a key before any manipulation
+					if ( name in thisCache ) {
+						name = [ name ];
+					} else {
+
+						// split the camel cased version by spaces unless a key with the spaces exists
+						name = jQuery.camelCase( name );
+						if ( name in thisCache ) {
+							name = [ name ];
+						} else {
+							name = name.split( " " );
+						}
+					}
+				}
+
+				for ( i = 0, l = name.length; i < l; i++ ) {
+					delete thisCache[ name[i] ];
+				}
+
+				// If there is no data left in the cache, we want to continue
+				// and let the cache object itself get destroyed
+				if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
+					return;
+				}
+			}
+		}
+
+		// See jQuery.data for more information
+		if ( !pvt ) {
+			delete cache[ id ].data;
+
+			// Don't destroy the parent cache unless the internal data object
+			// had been the only thing left in it
+			if ( !isEmptyDataObject(cache[ id ]) ) {
+				return;
+			}
+		}
+
+		// Browsers that fail expando deletion also refuse to delete expandos on
+		// the window, but it will allow it on all other JS objects; other browsers
+		// don't care
+		// Ensure that `cache` is not a window object #10080
+		if ( jQuery.support.deleteExpando || !cache.setInterval ) {
+			delete cache[ id ];
+		} else {
+			cache[ id ] = null;
+		}
+
+		// We destroyed the cache and need to eliminate the expando on the node to avoid
+		// false lookups in the cache for entries that no longer exist
+		if ( isNode ) {
+			// IE does not allow us to delete expando properties from nodes,
+			// nor does it have a removeAttribute function on Document nodes;
+			// we must handle all of these cases
+			if ( jQuery.support.deleteExpando ) {
+				delete elem[ internalKey ];
+			} else if ( elem.removeAttribute ) {
+				elem.removeAttribute( internalKey );
+			} else {
+				elem[ internalKey ] = null;
+			}
+		}
+	},
+
+	// For internal use only.
+	_data: function( elem, name, data ) {
+		return jQuery.data( elem, name, data, true );
+	},
+
+	// A method for determining if a DOM node can handle the data expando
+	acceptData: function( elem ) {
+		if ( elem.nodeName ) {
+			var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+			if ( match ) {
+				return !(match === true || elem.getAttribute("classid") !== match);
+			}
+		}
+
+		return true;
+	}
+});
+
+jQuery.fn.extend({
+	data: function( key, value ) {
+		var parts, part, attr, name, l,
+			elem = this[0],
+			i = 0,
+			data = null;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = jQuery.data( elem );
+
+				if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
+					attr = elem.attributes;
+					for ( l = attr.length; i < l; i++ ) {
+						name = attr[i].name;
+
+						if ( name.indexOf( "data-" ) === 0 ) {
+							name = jQuery.camelCase( name.substring(5) );
+
+							dataAttr( elem, name, data[ name ] );
+						}
+					}
+					jQuery._data( elem, "parsedAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each(function() {
+				jQuery.data( this, key );
+			});
+		}
+
+		parts = key.split( ".", 2 );
+		parts[1] = parts[1] ? "." + parts[1] : "";
+		part = parts[1] + "!";
+
+		return jQuery.access( this, function( value ) {
+
+			if ( value === undefined ) {
+				data = this.triggerHandler( "getData" + part, [ parts[0] ] );
+
+				// Try to fetch any internally stored data first
+				if ( data === undefined && elem ) {
+					data = jQuery.data( elem, key );
+					data = dataAttr( elem, key, data );
+				}
+
+				return data === undefined && parts[1] ?
+					this.data( parts[0] ) :
+					data;
+			}
+
+			parts[1] = value;
+			this.each(function() {
+				var self = jQuery( this );
+
+				self.triggerHandler( "setData" + part, parts );
+				jQuery.data( this, key, value );
+				self.triggerHandler( "changeData" + part, parts );
+			});
+		}, null, value, arguments.length > 1, null, false );
+	},
+
+	removeData: function( key ) {
+		return this.each(function() {
+			jQuery.removeData( this, key );
+		});
+	}
+});
+
+function dataAttr( elem, key, data ) {
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+
+		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = data === "true" ? true :
+				data === "false" ? false :
+				data === "null" ? null :
+				jQuery.isNumeric( data ) ? +data :
+					rbrace.test( data ) ? jQuery.parseJSON( data ) :
+					data;
+			} catch( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			jQuery.data( elem, key, data );
+
+		} else {
+			data = undefined;
+		}
+	}
+
+	return data;
+}
+
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+	for ( var name in obj ) {
+
+		// if the public data object is empty, the private is still empty
+		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
+			continue;
+		}
+		if ( name !== "toJSON" ) {
+			return false;
+		}
+	}
+
+	return true;
+}
+
+
+
+
+function handleQueueMarkDefer( elem, type, src ) {
+	var deferDataKey = type + "defer",
+		queueDataKey = type + "queue",
+		markDataKey = type + "mark",
+		defer = jQuery._data( elem, deferDataKey );
+	if ( defer &&
+		( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
+		( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
+		// Give room for hard-coded callbacks to fire first
+		// and eventually mark/queue something else on the element
+		setTimeout( function() {
+			if ( !jQuery._data( elem, queueDataKey ) &&
+				!jQuery._data( elem, markDataKey ) ) {
+				jQuery.removeData( elem, deferDataKey, true );
+				defer.fire();
+			}
+		}, 0 );
+	}
+}
+
+jQuery.extend({
+
+	_mark: function( elem, type ) {
+		if ( elem ) {
+			type = ( type || "fx" ) + "mark";
+			jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );
+		}
+	},
+
+	_unmark: function( force, elem, type ) {
+		if ( force !== true ) {
+			type = elem;
+			elem = force;
+			force = false;
+		}
+		if ( elem ) {
+			type = type || "fx";
+			var key = type + "mark",
+				count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );
+			if ( count ) {
+				jQuery._data( elem, key, count );
+			} else {
+				jQuery.removeData( elem, key, true );
+				handleQueueMarkDefer( elem, type, "mark" );
+			}
+		}
+	},
+
+	queue: function( elem, type, data ) {
+		var q;
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			q = jQuery._data( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !q || jQuery.isArray(data) ) {
+					q = jQuery._data( elem, type, jQuery.makeArray(data) );
+				} else {
+					q.push( data );
+				}
+			}
+			return q || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			fn = queue.shift(),
+			hooks = {};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+		}
+
+		if ( fn ) {
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			jQuery._data( elem, type + ".run", hooks );
+			fn.call( elem, function() {
+				jQuery.dequeue( elem, type );
+			}, hooks );
+		}
+
+		if ( !queue.length ) {
+			jQuery.removeData( elem, type + "queue " + type + ".run", true );
+			handleQueueMarkDefer( elem, type, "queue" );
+		}
+	}
+});
+
+jQuery.fn.extend({
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[0], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each(function() {
+				var queue = jQuery.queue( this, type, data );
+
+				if ( type === "fx" && queue[0] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			});
+	},
+	dequeue: function( type ) {
+		return this.each(function() {
+			jQuery.dequeue( this, type );
+		});
+	},
+	// Based off of the plugin by Clint Helfers, with permission.
+	// http://blindsignals.com/index.php/2009/07/jquery-delay/
+	delay: function( time, type ) {
+		time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+		type = type || "fx";
+
+		return this.queue( type, function( next, hooks ) {
+			var timeout = setTimeout( next, time );
+			hooks.stop = function() {
+				clearTimeout( timeout );
+			};
+		});
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, object ) {
+		if ( typeof type !== "string" ) {
+			object = type;
+			type = undefined;
+		}
+		type = type || "fx";
+		var defer = jQuery.Deferred(),
+			elements = this,
+			i = elements.length,
+			count = 1,
+			deferDataKey = type + "defer",
+			queueDataKey = type + "queue",
+			markDataKey = type + "mark",
+			tmp;
+		function resolve() {
+			if ( !( --count ) ) {
+				defer.resolveWith( elements, [ elements ] );
+			}
+		}
+		while( i-- ) {
+			if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
+					( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
+						jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
+					jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
+				count++;
+				tmp.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( object );
+	}
+});
+
+
+
+
+var rclass = /[\n\t\r]/g,
+	rspace = /\s+/,
+	rreturn = /\r/g,
+	rtype = /^(?:button|input)$/i,
+	rfocusable = /^(?:button|input|object|select|textarea)$/i,
+	rclickable = /^a(?:rea)?$/i,
+	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
+	getSetAttribute = jQuery.support.getSetAttribute,
+	nodeHook, boolHook, fixSpecified;
+
+jQuery.fn.extend({
+	attr: function( name, value ) {
+		return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each(function() {
+			jQuery.removeAttr( this, name );
+		});
+	},
+
+	prop: function( name, value ) {
+		return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		name = jQuery.propFix[ name ] || name;
+		return this.each(function() {
+			// try/catch handles cases where IE balks (such as removing a property on window)
+			try {
+				this[ name ] = undefined;
+				delete this[ name ];
+			} catch( e ) {}
+		});
+	},
+
+	addClass: function( value ) {
+		var classNames, i, l, elem,
+			setClass, c, cl;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).addClass( value.call(this, j, this.className) );
+			});
+		}
+
+		if ( value && typeof value === "string" ) {
+			classNames = value.split( rspace );
+
+			for ( i = 0, l = this.length; i < l; i++ ) {
+				elem = this[ i ];
+
+				if ( elem.nodeType === 1 ) {
+					if ( !elem.className && classNames.length === 1 ) {
+						elem.className = value;
+
+					} else {
+						setClass = " " + elem.className + " ";
+
+						for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+							if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
+								setClass += classNames[ c ] + " ";
+							}
+						}
+						elem.className = jQuery.trim( setClass );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classNames, i, l, elem, className, c, cl;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).removeClass( value.call(this, j, this.className) );
+			});
+		}
+
+		if ( (value && typeof value === "string") || value === undefined ) {
+			classNames = ( value || "" ).split( rspace );
+
+			for ( i = 0, l = this.length; i < l; i++ ) {
+				elem = this[ i ];
+
+				if ( elem.nodeType === 1 && elem.className ) {
+					if ( value ) {
+						className = (" " + elem.className + " ").replace( rclass, " " );
+						for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+							className = className.replace(" " + classNames[ c ] + " ", " ");
+						}
+						elem.className = jQuery.trim( className );
+
+					} else {
+						elem.className = "";
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isBool = typeof stateVal === "boolean";
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( i ) {
+				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+			});
+		}
+
+		return this.each(function() {
+			if ( type === "string" ) {
+				// toggle individual class names
+				var className,
+					i = 0,
+					self = jQuery( this ),
+					state = stateVal,
+					classNames = value.split( rspace );
+
+				while ( (className = classNames[ i++ ]) ) {
+					// check each className given, space seperated list
+					state = isBool ? state : !self.hasClass( className );
+					self[ state ? "addClass" : "removeClass" ]( className );
+				}
+
+			} else if ( type === "undefined" || type === "boolean" ) {
+				if ( this.className ) {
+					// store className if set
+					jQuery._data( this, "__className__", this.className );
+				}
+
+				// toggle whole className
+				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
+			}
+		});
+	},
+
+	hasClass: function( selector ) {
+		var className = " " + selector + " ",
+			i = 0,
+			l = this.length;
+		for ( ; i < l; i++ ) {
+			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
+				return true;
+			}
+		}
+
+		return false;
+	},
+
+	val: function( value ) {
+		var hooks, ret, isFunction,
+			elem = this[0];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				return typeof ret === "string" ?
+					// handle most common string cases
+					ret.replace(rreturn, "") :
+					// handle cases where value is null/undef or number
+					ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		isFunction = jQuery.isFunction( value );
+
+		return this.each(function( i ) {
+			var self = jQuery(this), val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( isFunction ) {
+				val = value.call( this, i, self.val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+			} else if ( typeof val === "number" ) {
+				val += "";
+			} else if ( jQuery.isArray( val ) ) {
+				val = jQuery.map(val, function ( value ) {
+					return value == null ? "" : value + "";
+				});
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		});
+	}
+});
+
+jQuery.extend({
+	valHooks: {
+		option: {
+			get: function( elem ) {
+				// attributes.value is undefined in Blackberry 4.7 but
+				// uses .value. See #6932
+				var val = elem.attributes.value;
+				return !val || val.specified ? elem.value : elem.text;
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, i, max, option,
+					index = elem.selectedIndex,
+					values = [],
+					options = elem.options,
+					one = elem.type === "select-one";
+
+				// Nothing was selected
+				if ( index < 0 ) {
+					return null;
+				}
+
+				// Loop through all the selected options
+				i = one ? index : 0;
+				max = one ? index + 1 : options.length;
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Don't return options that are disabled or in a disabled optgroup
+					if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
+							(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				// Fixes Bug #2551 -- select.val() broken in IE after form.reset()
+				if ( one && !values.length && options.length ) {
+					return jQuery( options[ index ] ).val();
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var values = jQuery.makeArray( value );
+
+				jQuery(elem).find("option").each(function() {
+					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
+				});
+
+				if ( !values.length ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	},
+
+	attrFn: {
+		val: true,
+		css: true,
+		html: true,
+		text: true,
+		data: true,
+		width: true,
+		height: true,
+		offset: true
+	},
+
+	attr: function( elem, name, value, pass ) {
+		var ret, hooks, notxml,
+			nType = elem.nodeType;
+
+		// don't get/set attributes on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( pass && name in jQuery.attrFn ) {
+			return jQuery( elem )[ name ]( value );
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+		// All attributes are lowercase
+		// Grab necessary hook if one is defined
+		if ( notxml ) {
+			name = name.toLowerCase();
+			hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );
+		}
+
+		if ( value !== undefined ) {
+
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+
+			} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
+				return ret;
+
+			} else {
+				elem.setAttribute( name, "" + value );
+				return value;
+			}
+
+		} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
+			return ret;
+
+		} else {
+
+			ret = elem.getAttribute( name );
+
+			// Non-existent attributes return null, we normalize to undefined
+			return ret === null ?
+				undefined :
+				ret;
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var propName, attrNames, name, l, isBool,
+			i = 0;
+
+		if ( value && elem.nodeType === 1 ) {
+			attrNames = value.toLowerCase().split( rspace );
+			l = attrNames.length;
+
+			for ( ; i < l; i++ ) {
+				name = attrNames[ i ];
+
+				if ( name ) {
+					propName = jQuery.propFix[ name ] || name;
+					isBool = rboolean.test( name );
+
+					// See #9699 for explanation of this approach (setting first, then removal)
+					// Do not do this for boolean attributes (see #10870)
+					if ( !isBool ) {
+						jQuery.attr( elem, name, "" );
+					}
+					elem.removeAttribute( getSetAttribute ? name : propName );
+
+					// Set corresponding property to false for boolean attributes
+					if ( isBool && propName in elem ) {
+						elem[ propName ] = false;
+					}
+				}
+			}
+		}
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				// We can't allow the type property to be changed (since it causes problems in IE)
+				if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
+					jQuery.error( "type property can't be changed" );
+				} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
+					// Setting the type on a radio button after the value resets the value in IE6-9
+					// Reset value to it's default in case type is set after value
+					// This is for element creation
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		},
+		// Use the value property for back compat
+		// Use the nodeHook for button elements in IE6/7 (#1954)
+		value: {
+			get: function( elem, name ) {
+				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+					return nodeHook.get( elem, name );
+				}
+				return name in elem ?
+					elem.value :
+					null;
+			},
+			set: function( elem, value, name ) {
+				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+					return nodeHook.set( elem, value, name );
+				}
+				// Does not return so that setAttribute is also used
+				elem.value = value;
+			}
+		}
+	},
+
+	propFix: {
+		tabindex: "tabIndex",
+		readonly: "readOnly",
+		"for": "htmlFor",
+		"class": "className",
+		maxlength: "maxLength",
+		cellspacing: "cellSpacing",
+		cellpadding: "cellPadding",
+		rowspan: "rowSpan",
+		colspan: "colSpan",
+		usemap: "useMap",
+		frameborder: "frameBorder",
+		contenteditable: "contentEditable"
+	},
+
+	prop: function( elem, name, value ) {
+		var ret, hooks, notxml,
+			nType = elem.nodeType;
+
+		// don't get/set properties on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+		if ( notxml ) {
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+				return ret;
+
+			} else {
+				return ( elem[ name ] = value );
+			}
+
+		} else {
+			if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+				return ret;
+
+			} else {
+				return elem[ name ];
+			}
+		}
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				var attributeNode = elem.getAttributeNode("tabindex");
+
+				return attributeNode && attributeNode.specified ?
+					parseInt( attributeNode.value, 10 ) :
+					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+						0 :
+						undefined;
+			}
+		}
+	}
+});
+
+// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)
+jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;
+
+// Hook for boolean attributes
+boolHook = {
+	get: function( elem, name ) {
+		// Align boolean attributes with corresponding properties
+		// Fall back to attribute presence where some booleans are not supported
+		var attrNode,
+			property = jQuery.prop( elem, name );
+		return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
+			name.toLowerCase() :
+			undefined;
+	},
+	set: function( elem, value, name ) {
+		var propName;
+		if ( value === false ) {
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			// value is true since we know at this point it's type boolean and not false
+			// Set boolean attributes to the same name and set the DOM property
+			propName = jQuery.propFix[ name ] || name;
+			if ( propName in elem ) {
+				// Only set the IDL specifically if it already exists on the element
+				elem[ propName ] = true;
+			}
+
+			elem.setAttribute( name, name.toLowerCase() );
+		}
+		return name;
+	}
+};
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !getSetAttribute ) {
+
+	fixSpecified = {
+		name: true,
+		id: true,
+		coords: true
+	};
+
+	// Use this for any attribute in IE6/7
+	// This fixes almost every IE6/7 issue
+	nodeHook = jQuery.valHooks.button = {
+		get: function( elem, name ) {
+			var ret;
+			ret = elem.getAttributeNode( name );
+			return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ?
+				ret.nodeValue :
+				undefined;
+		},
+		set: function( elem, value, name ) {
+			// Set the existing or create a new attribute node
+			var ret = elem.getAttributeNode( name );
+			if ( !ret ) {
+				ret = document.createAttribute( name );
+				elem.setAttributeNode( ret );
+			}
+			return ( ret.nodeValue = value + "" );
+		}
+	};
+
+	// Apply the nodeHook to tabindex
+	jQuery.attrHooks.tabindex.set = nodeHook.set;
+
+	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
+	// This is for removals
+	jQuery.each([ "width", "height" ], function( i, name ) {
+		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+			set: function( elem, value ) {
+				if ( value === "" ) {
+					elem.setAttribute( name, "auto" );
+					return value;
+				}
+			}
+		});
+	});
+
+	// Set contenteditable to false on removals(#10429)
+	// Setting to empty string throws an error as an invalid value
+	jQuery.attrHooks.contenteditable = {
+		get: nodeHook.get,
+		set: function( elem, value, name ) {
+			if ( value === "" ) {
+				value = "false";
+			}
+			nodeHook.set( elem, value, name );
+		}
+	};
+}
+
+
+// Some attributes require a special call on IE
+if ( !jQuery.support.hrefNormalized ) {
+	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
+		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+			get: function( elem ) {
+				var ret = elem.getAttribute( name, 2 );
+				return ret === null ? undefined : ret;
+			}
+		});
+	});
+}
+
+if ( !jQuery.support.style ) {
+	jQuery.attrHooks.style = {
+		get: function( elem ) {
+			// Return undefined in the case of empty string
+			// Normalize to lowercase since IE uppercases css property names
+			return elem.style.cssText.toLowerCase() || undefined;
+		},
+		set: function( elem, value ) {
+			return ( elem.style.cssText = "" + value );
+		}
+	};
+}
+
+// Safari mis-reports the default selected property of an option
+// Accessing the parent's selectedIndex property fixes it
+if ( !jQuery.support.optSelected ) {
+	jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
+		get: function( elem ) {
+			var parent = elem.parentNode;
+
+			if ( parent ) {
+				parent.selectedIndex;
+
+				// Make sure that it also works with optgroups, see #5701
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+			return null;
+		}
+	});
+}
+
+// IE6/7 call enctype encoding
+if ( !jQuery.support.enctype ) {
+	jQuery.propFix.enctype = "encoding";
+}
+
+// Radios and checkboxes getter/setter
+if ( !jQuery.support.checkOn ) {
+	jQuery.each([ "radio", "checkbox" ], function() {
+		jQuery.valHooks[ this ] = {
+			get: function( elem ) {
+				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+				return elem.getAttribute("value") === null ? "on" : elem.value;
+			}
+		};
+	});
+}
+jQuery.each([ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
+		set: function( elem, value ) {
+			if ( jQuery.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
+			}
+		}
+	});
+});
+
+
+
+
+var rformElems = /^(?:textarea|input|select)$/i,
+	rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
+	rhoverHack = /(?:^|\s)hover(\.\S+)?\b/,
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|contextmenu)|click/,
+	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,
+	quickParse = function( selector ) {
+		var quick = rquickIs.exec( selector );
+		if ( quick ) {
+			//   0  1    2   3
+			// [ _, tag, id, class ]
+			quick[1] = ( quick[1] || "" ).toLowerCase();
+			quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" );
+		}
+		return quick;
+	},
+	quickIs = function( elem, m ) {
+		var attrs = elem.attributes || {};
+		return (
+			(!m[1] || elem.nodeName.toLowerCase() === m[1]) &&
+			(!m[2] || (attrs.id || {}).value === m[2]) &&
+			(!m[3] || m[3].test( (attrs[ "class" ] || {}).value ))
+		);
+	},
+	hoverHack = function( events ) {
+		return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
+	};
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var elemData, eventHandle, events,
+			t, tns, type, namespaces, handleObj,
+			handleObjIn, quick, handlers, special;
+
+		// Don't attach events to noData or text/comment nodes (allow plain objects tho)
+		if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		events = elemData.events;
+		if ( !events ) {
+			elemData.events = events = {};
+		}
+		eventHandle = elemData.handle;
+		if ( !eventHandle ) {
+			elemData.handle = eventHandle = function( e ) {
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
+					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
+					undefined;
+			};
+			// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
+			eventHandle.elem = elem;
+		}
+
+		// Handle multiple events separated by a space
+		// jQuery(...).bind("mouseover mouseout", fn);
+		types = jQuery.trim( hoverHack(types) ).split( " " );
+		for ( t = 0; t < types.length; t++ ) {
+
+			tns = rtypenamespace.exec( types[t] ) || [];
+			type = tns[1];
+			namespaces = ( tns[2] || "" ).split( "." ).sort();
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend({
+				type: type,
+				origType: tns[1],
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				quick: selector && quickParse( selector ),
+				namespace: namespaces.join(".")
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			handlers = events[ type ];
+			if ( !handlers ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener/attachEvent if the special events handler returns false
+				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+					// Bind the global event handler to the element
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle, false );
+
+					} else if ( elem.attachEvent ) {
+						elem.attachEvent( "on" + type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+		// Nullify elem to prevent memory leaks in IE
+		elem = null;
+	},
+
+	global: {},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
+			t, tns, type, origType, namespaces, origCount,
+			j, events, special, handle, eventType, handleObj;
+
+		if ( !elemData || !(events = elemData.events) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = jQuery.trim( hoverHack( types || "" ) ).split(" ");
+		for ( t = 0; t < types.length; t++ ) {
+			tns = rtypenamespace.exec( types[t] ) || [];
+			type = origType = tns[1];
+			namespaces = tns[2];
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector? special.delegateType : special.bindType ) || type;
+			eventType = events[ type ] || [];
+			origCount = eventType.length;
+			namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+
+			// Remove matching events
+			for ( j = 0; j < eventType.length; j++ ) {
+				handleObj = eventType[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					 ( !handler || handler.guid === handleObj.guid ) &&
+					 ( !namespaces || namespaces.test( handleObj.namespace ) ) &&
+					 ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
+					eventType.splice( j--, 1 );
+
+					if ( handleObj.selector ) {
+						eventType.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( eventType.length === 0 && origCount !== eventType.length ) {
+				if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			handle = elemData.handle;
+			if ( handle ) {
+				handle.elem = null;
+			}
+
+			// removeData also checks for emptiness and clears the expando if empty
+			// so use it instead of delete
+			jQuery.removeData( elem, [ "events", "handle" ], true );
+		}
+	},
+
+	// Events that are safe to short-circuit if no handlers are attached.
+	// Native DOM events should not be added, they may have inline handlers.
+	customEvent: {
+		"getData": true,
+		"setData": true,
+		"changeData": true
+	},
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+		// Don't do events on text and comment nodes
+		if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
+			return;
+		}
+
+		// Event object or event type
+		var type = event.type || event,
+			namespaces = [],
+			cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "!" ) >= 0 ) {
+			// Exclusive events trigger only for the exact event (no namespaces)
+			type = type.slice(0, -1);
+			exclusive = true;
+		}
+
+		if ( type.indexOf( "." ) >= 0 ) {
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split(".");
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+
+		if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
+			// No jQuery handlers for this event type, and it can't have inline handlers
+			return;
+		}
+
+		// Caller can pass in an Event, Object, or just an event type string
+		event = typeof event === "object" ?
+			// jQuery.Event object
+			event[ jQuery.expando ] ? event :
+			// Object literal
+			new jQuery.Event( type, event ) :
+			// Just the event type (string)
+			new jQuery.Event( type );
+
+		event.type = type;
+		event.isTrigger = true;
+		event.exclusive = exclusive;
+		event.namespace = namespaces.join( "." );
+		event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+		ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";
+
+		// Handle a global trigger
+		if ( !elem ) {
+
+			// TODO: Stop taunting the data cache; remove global events and always attach to document
+			cache = jQuery.cache;
+			for ( i in cache ) {
+				if ( cache[ i ].events && cache[ i ].events[ type ] ) {
+					jQuery.event.trigger( event, data, cache[ i ].handle.elem, true );
+				}
+			}
+			return;
+		}
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data != null ? jQuery.makeArray( data ) : [];
+		data.unshift( event );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		eventPath = [[ elem, special.bindType || type ]];
+		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;
+			old = null;
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push([ cur, bubbleType ]);
+				old = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( old && old === elem.ownerDocument ) {
+				eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
+			}
+		}
+
+		// Fire handlers on the event path
+		for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) {
+
+			cur = eventPath[i][0];
+			event.type = eventPath[i][1];
+
+			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+			// Note that this is a bare JS function and not a jQuery handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) {
+				event.preventDefault();
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&
+				!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name name as the event.
+				// Can't use an .isFunction() check here because IE6/7 fails that test.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				// IE<9 dies on focus/blur to hidden element (#1486)
+				if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					old = elem[ ontype ];
+
+					if ( old ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+					elem[ type ]();
+					jQuery.event.triggered = undefined;
+
+					if ( old ) {
+						elem[ ontype ] = old;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	dispatch: function( event ) {
+
+		// Make a writable jQuery.Event from the native event object
+		event = jQuery.event.fix( event || window.event );
+
+		var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),
+			delegateCount = handlers.delegateCount,
+			args = [].slice.call( arguments, 0 ),
+			run_all = !event.exclusive && !event.namespace,
+			special = jQuery.event.special[ event.type ] || {},
+			handlerQueue = [],
+			i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related;
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[0] = event;
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers that should run if there are delegated events
+		// Avoid non-left-click bubbling in Firefox (#3861)
+		if ( delegateCount && !(event.button && event.type === "click") ) {
+
+			// Pregenerate a single jQuery object for reuse with .is()
+			jqcur = jQuery(this);
+			jqcur.context = this.ownerDocument || this;
+
+			for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
+
+				// Don't process events on disabled elements (#6911, #8165)
+				if ( cur.disabled !== true ) {
+					selMatch = {};
+					matches = [];
+					jqcur[0] = cur;
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+						sel = handleObj.selector;
+
+						if ( selMatch[ sel ] === undefined ) {
+							selMatch[ sel ] = (
+								handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel )
+							);
+						}
+						if ( selMatch[ sel ] ) {
+							matches.push( handleObj );
+						}
+					}
+					if ( matches.length ) {
+						handlerQueue.push({ elem: cur, matches: matches });
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		if ( handlers.length > delegateCount ) {
+			handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) });
+		}
+
+		// Run delegates first; they may want to stop propagation beneath us
+		for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {
+			matched = handlerQueue[ i ];
+			event.currentTarget = matched.elem;
+
+			for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) {
+				handleObj = matched.matches[ j ];
+
+				// Triggered event must either 1) be non-exclusive and have no namespace, or
+				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
+				if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {
+
+					event.data = handleObj.data;
+					event.handleObj = handleObj;
+
+					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
+							.apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						event.result = ret;
+						if ( ret === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	// Includes some event props shared by KeyEvent and MouseEvent
+	// *** attrChange attrName relatedNode srcElement  are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
+	props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
+
+	fixHooks: {},
+
+	keyHooks: {
+		props: "char charCode key keyCode".split(" "),
+		filter: function( event, original ) {
+
+			// Add which for key events
+			if ( event.which == null ) {
+				event.which = original.charCode != null ? original.charCode : original.keyCode;
+			}
+
+			return event;
+		}
+	},
+
+	mouseHooks: {
+		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
+		filter: function( event, original ) {
+			var eventDoc, doc, body,
+				button = original.button,
+				fromElement = original.fromElement;
+
+			// Calculate pageX/Y if missing and clientX/Y available
+			if ( event.pageX == null && original.clientX != null ) {
+				eventDoc = event.target.ownerDocument || document;
+				doc = eventDoc.documentElement;
+				body = eventDoc.body;
+
+				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
+				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );
+			}
+
+			// Add relatedTarget, if necessary
+			if ( !event.relatedTarget && fromElement ) {
+				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
+			}
+
+			// Add which for click: 1 === left; 2 === middle; 3 === right
+			// Note: button is not normalized, so don't use it
+			if ( !event.which && button !== undefined ) {
+				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+			}
+
+			return event;
+		}
+	},
+
+	fix: function( event ) {
+		if ( event[ jQuery.expando ] ) {
+			return event;
+		}
+
+		// Create a writable copy of the event object and normalize some properties
+		var i, prop,
+			originalEvent = event,
+			fixHook = jQuery.event.fixHooks[ event.type ] || {},
+			copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+		event = jQuery.Event( originalEvent );
+
+		for ( i = copy.length; i; ) {
+			prop = copy[ --i ];
+			event[ prop ] = originalEvent[ prop ];
+		}
+
+		// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
+		if ( !event.target ) {
+			event.target = originalEvent.srcElement || document;
+		}
+
+		// Target should not be a text node (#504, Safari)
+		if ( event.target.nodeType === 3 ) {
+			event.target = event.target.parentNode;
+		}
+
+		// For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8)
+		if ( event.metaKey === undefined ) {
+			event.metaKey = event.ctrlKey;
+		}
+
+		return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
+	},
+
+	special: {
+		ready: {
+			// Make sure the ready event is setup
+			setup: jQuery.bindReady
+		},
+
+		load: {
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+
+		focus: {
+			delegateType: "focusin"
+		},
+		blur: {
+			delegateType: "focusout"
+		},
+
+		beforeunload: {
+			setup: function( data, namespaces, eventHandle ) {
+				// We only want to do this special case on windows
+				if ( jQuery.isWindow( this ) ) {
+					this.onbeforeunload = eventHandle;
+				}
+			},
+
+			teardown: function( namespaces, eventHandle ) {
+				if ( this.onbeforeunload === eventHandle ) {
+					this.onbeforeunload = null;
+				}
+			}
+		}
+	},
+
+	simulate: function( type, elem, event, bubble ) {
+		// Piggyback on a donor event to simulate a different one.
+		// Fake originalEvent to avoid donor's stopPropagation, but if the
+		// simulated event prevents default then we do the same on the donor.
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{ type: type,
+				isSimulated: true,
+				originalEvent: {}
+			}
+		);
+		if ( bubble ) {
+			jQuery.event.trigger( e, null, elem );
+		} else {
+			jQuery.event.dispatch.call( elem, e );
+		}
+		if ( e.isDefaultPrevented() ) {
+			event.preventDefault();
+		}
+	}
+};
+
+// Some plugins are using, but it's undocumented/deprecated and will be removed.
+// The 1.7 special event interface should provide all the hooks needed now.
+jQuery.event.handle = jQuery.event.dispatch;
+
+jQuery.removeEvent = document.removeEventListener ?
+	function( elem, type, handle ) {
+		if ( elem.removeEventListener ) {
+			elem.removeEventListener( type, handle, false );
+		}
+	} :
+	function( elem, type, handle ) {
+		if ( elem.detachEvent ) {
+			elem.detachEvent( "on" + type, handle );
+		}
+	};
+
+jQuery.Event = function( src, props ) {
+	// Allow instantiation without the 'new' keyword
+	if ( !(this instanceof jQuery.Event) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
+			src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || jQuery.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+function returnFalse() {
+	return false;
+}
+function returnTrue() {
+	return true;
+}
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	preventDefault: function() {
+		this.isDefaultPrevented = returnTrue;
+
+		var e = this.originalEvent;
+		if ( !e ) {
+			return;
+		}
+
+		// if preventDefault exists run it on the original event
+		if ( e.preventDefault ) {
+			e.preventDefault();
+
+		// otherwise set the returnValue property of the original event to false (IE)
+		} else {
+			e.returnValue = false;
+		}
+	},
+	stopPropagation: function() {
+		this.isPropagationStopped = returnTrue;
+
+		var e = this.originalEvent;
+		if ( !e ) {
+			return;
+		}
+		// if stopPropagation exists run it on the original event
+		if ( e.stopPropagation ) {
+			e.stopPropagation();
+		}
+		// otherwise set the cancelBubble property of the original event to true (IE)
+		e.cancelBubble = true;
+	},
+	stopImmediatePropagation: function() {
+		this.isImmediatePropagationStopped = returnTrue;
+		this.stopPropagation();
+	},
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+jQuery.each({
+	mouseenter: "mouseover",
+	mouseleave: "mouseout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj,
+				selector = handleObj.selector,
+				ret;
+
+			// For mousenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+});
+
+// IE submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
+	jQuery.event.special.submit = {
+		setup: function() {
+			// Only need this for delegated form submit events
+			if ( jQuery.nodeName( this, "form" ) ) {
+				return false;
+			}
+
+			// Lazy-add a submit handler when a descendant form may potentially be submitted
+			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+				// Node name check avoids a VML-related crash in IE (#9807)
+				var elem = e.target,
+					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
+				if ( form && !form._submit_attached ) {
+					jQuery.event.add( form, "submit._submit", function( event ) {
+						event._submit_bubble = true;
+					});
+					form._submit_attached = true;
+				}
+			});
+			// return undefined since we don't need an event listener
+		},
+		
+		postDispatch: function( event ) {
+			// If form was submitted by the user, bubble the event up the tree
+			if ( event._submit_bubble ) {
+				delete event._submit_bubble;
+				if ( this.parentNode && !event.isTrigger ) {
+					jQuery.event.simulate( "submit", this.parentNode, event, true );
+				}
+			}
+		},
+
+		teardown: function() {
+			// Only need this for delegated form submit events
+			if ( jQuery.nodeName( this, "form" ) ) {
+				return false;
+			}
+
+			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+			jQuery.event.remove( this, "._submit" );
+		}
+	};
+}
+
+// IE change delegation and checkbox/radio fix
+if ( !jQuery.support.changeBubbles ) {
+
+	jQuery.event.special.change = {
+
+		setup: function() {
+
+			if ( rformElems.test( this.nodeName ) ) {
+				// IE doesn't fire change on a check/radio until blur; trigger it on click
+				// after a propertychange. Eat the blur-change in special.change.handle.
+				// This still fires onchange a second time for check/radio after blur.
+				if ( this.type === "checkbox" || this.type === "radio" ) {
+					jQuery.event.add( this, "propertychange._change", function( event ) {
+						if ( event.originalEvent.propertyName === "checked" ) {
+							this._just_changed = true;
+						}
+					});
+					jQuery.event.add( this, "click._change", function( event ) {
+						if ( this._just_changed && !event.isTrigger ) {
+							this._just_changed = false;
+							jQuery.event.simulate( "change", this, event, true );
+						}
+					});
+				}
+				return false;
+			}
+			// Delegated event; lazy-add a change handler on descendant inputs
+			jQuery.event.add( this, "beforeactivate._change", function( e ) {
+				var elem = e.target;
+
+				if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {
+					jQuery.event.add( elem, "change._change", function( event ) {
+						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
+							jQuery.event.simulate( "change", this.parentNode, event, true );
+						}
+					});
+					elem._change_attached = true;
+				}
+			});
+		},
+
+		handle: function( event ) {
+			var elem = event.target;
+
+			// Swallow native change events from checkbox/radio, we already triggered them above
+			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
+				return event.handleObj.handler.apply( this, arguments );
+			}
+		},
+
+		teardown: function() {
+			jQuery.event.remove( this, "._change" );
+
+			return rformElems.test( this.nodeName );
+		}
+	};
+}
+
+// Create "bubbling" focus and blur events
+if ( !jQuery.support.focusinBubbles ) {
+	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler while someone wants focusin/focusout
+		var attaches = 0,
+			handler = function( event ) {
+				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
+			};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				if ( attaches++ === 0 ) {
+					document.addEventListener( orig, handler, true );
+				}
+			},
+			teardown: function() {
+				if ( --attaches === 0 ) {
+					document.removeEventListener( orig, handler, true );
+				}
+			}
+		};
+	});
+}
+
+jQuery.fn.extend({
+
+	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
+		var origFn, type;
+
+		// Types can be a map of types/handlers
+		if ( typeof types === "object" ) {
+			// ( types-Object, selector, data )
+			if ( typeof selector !== "string" ) { // && selector != null
+				// ( types-Object, data )
+				data = data || selector;
+				selector = undefined;
+			}
+			for ( type in types ) {
+				this.on( type, selector, data, types[ type ], one );
+			}
+			return this;
+		}
+
+		if ( data == null && fn == null ) {
+			// ( types, fn )
+			fn = selector;
+			data = selector = undefined;
+		} else if ( fn == null ) {
+			if ( typeof selector === "string" ) {
+				// ( types, selector, fn )
+				fn = data;
+				data = undefined;
+			} else {
+				// ( types, data, fn )
+				fn = data;
+				data = selector;
+				selector = undefined;
+			}
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		} else if ( !fn ) {
+			return this;
+		}
+
+		if ( one === 1 ) {
+			origFn = fn;
+			fn = function( event ) {
+				// Can use an empty set, since event contains the info
+				jQuery().off( event );
+				return origFn.apply( this, arguments );
+			};
+			// Use same guid so caller can remove using origFn
+			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+		}
+		return this.each( function() {
+			jQuery.event.add( this, types, fn, data, selector );
+		});
+	},
+	one: function( types, selector, data, fn ) {
+		return this.on( types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		if ( types && types.preventDefault && types.handleObj ) {
+			// ( event )  dispatched jQuery.Event
+			var handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+			// ( types-object [, selector] )
+			for ( var type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each(function() {
+			jQuery.event.remove( this, types, fn, selector );
+		});
+	},
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	live: function( types, data, fn ) {
+		jQuery( this.context ).on( types, this.selector, data, fn );
+		return this;
+	},
+	die: function( types, fn ) {
+		jQuery( this.context ).off( types, this.selector || "**", fn );
+		return this;
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn );
+	},
+
+	trigger: function( type, data ) {
+		return this.each(function() {
+			jQuery.event.trigger( type, data, this );
+		});
+	},
+	triggerHandler: function( type, data ) {
+		if ( this[0] ) {
+			return jQuery.event.trigger( type, data, this[0], true );
+		}
+	},
+
+	toggle: function( fn ) {
+		// Save reference to arguments for access in closure
+		var args = arguments,
+			guid = fn.guid || jQuery.guid++,
+			i = 0,
+			toggler = function( event ) {
+				// Figure out which function to execute
+				var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
+				jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
+
+				// Make sure that clicks stop
+				event.preventDefault();
+
+				// and execute the function
+				return args[ lastToggle ].apply( this, arguments ) || false;
+			};
+
+		// link all the functions, so any of them can unbind this click handler
+		toggler.guid = guid;
+		while ( i < args.length ) {
+			args[ i++ ].guid = guid;
+		}
+
+		return this.click( toggler );
+	},
+
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+});
+
+jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		if ( fn == null ) {
+			fn = data;
+			data = null;
+		}
+
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+
+	if ( jQuery.attrFn ) {
+		jQuery.attrFn[ name ] = true;
+	}
+
+	if ( rkeyEvent.test( name ) ) {
+		jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
+	}
+
+	if ( rmouseEvent.test( name ) ) {
+		jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
+	}
+});
+
+
+
+/*!
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+	expando = "sizcache" + (Math.random() + '').replace('.', ''),
+	done = 0,
+	toString = Object.prototype.toString,
+	hasDuplicate = false,
+	baseHasDuplicate = true,
+	rBackslash = /\\/g,
+	rReturn = /\r\n/g,
+	rNonWord = /\W/;
+
+// Here we check if the JavaScript engine is using some sort of
+// optimization where it does not always call our comparision
+// function. If that is the case, discard the hasDuplicate value.
+//   Thus far that includes Google Chrome.
+[0, 0].sort(function() {
+	baseHasDuplicate = false;
+	return 0;
+});
+
+var Sizzle = function( selector, context, results, seed ) {
+	results = results || [];
+	context = context || document;
+
+	var origContext = context;
+
+	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+		return [];
+	}
+
+	if ( !selector || typeof selector !== "string" ) {
+		return results;
+	}
+
+	var m, set, checkSet, extra, ret, cur, pop, i,
+		prune = true,
+		contextXML = Sizzle.isXML( context ),
+		parts = [],
+		soFar = selector;
+
+	// Reset the position of the chunker regexp (start from head)
+	do {
+		chunker.exec( "" );
+		m = chunker.exec( soFar );
+
+		if ( m ) {
+			soFar = m[3];
+
+			parts.push( m[1] );
+
+			if ( m[2] ) {
+				extra = m[3];
+				break;
+			}
+		}
+	} while ( m );
+
+	if ( parts.length > 1 && origPOS.exec( selector ) ) {
+
+		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+			set = posProcess( parts[0] + parts[1], context, seed );
+
+		} else {
+			set = Expr.relative[ parts[0] ] ?
+				[ context ] :
+				Sizzle( parts.shift(), context );
+
+			while ( parts.length ) {
+				selector = parts.shift();
+
+				if ( Expr.relative[ selector ] ) {
+					selector += parts.shift();
+				}
+
+				set = posProcess( selector, set, seed );
+			}
+		}
+
+	} else {
+		// Take a shortcut and set the context if the root selector is an ID
+		// (but not if it'll be faster if the inner selector is an ID)
+		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+
+			ret = Sizzle.find( parts.shift(), context, contextXML );
+			context = ret.expr ?
+				Sizzle.filter( ret.expr, ret.set )[0] :
+				ret.set[0];
+		}
+
+		if ( context ) {
+			ret = seed ?
+				{ expr: parts.pop(), set: makeArray(seed) } :
+				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+
+			set = ret.expr ?
+				Sizzle.filter( ret.expr, ret.set ) :
+				ret.set;
+
+			if ( parts.length > 0 ) {
+				checkSet = makeArray( set );
+
+			} else {
+				prune = false;
+			}
+
+			while ( parts.length ) {
+				cur = parts.pop();
+				pop = cur;
+
+				if ( !Expr.relative[ cur ] ) {
+					cur = "";
+				} else {
+					pop = parts.pop();
+				}
+
+				if ( pop == null ) {
+					pop = context;
+				}
+
+				Expr.relative[ cur ]( checkSet, pop, contextXML );
+			}
+
+		} else {
+			checkSet = parts = [];
+		}
+	}
+
+	if ( !checkSet ) {
+		checkSet = set;
+	}
+
+	if ( !checkSet ) {
+		Sizzle.error( cur || selector );
+	}
+
+	if ( toString.call(checkSet) === "[object Array]" ) {
+		if ( !prune ) {
+			results.push.apply( results, checkSet );
+
+		} else if ( context && context.nodeType === 1 ) {
+			for ( i = 0; checkSet[i] != null; i++ ) {
+				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
+					results.push( set[i] );
+				}
+			}
+
+		} else {
+			for ( i = 0; checkSet[i] != null; i++ ) {
+				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+					results.push( set[i] );
+				}
+			}
+		}
+
+	} else {
+		makeArray( checkSet, results );
+	}
+
+	if ( extra ) {
+		Sizzle( extra, origContext, results, seed );
+		Sizzle.uniqueSort( results );
+	}
+
+	return results;
+};
+
+Sizzle.uniqueSort = function( results ) {
+	if ( sortOrder ) {
+		hasDuplicate = baseHasDuplicate;
+		results.sort( sortOrder );
+
+		if ( hasDuplicate ) {
+			for ( var i = 1; i < results.length; i++ ) {
+				if ( results[i] === results[ i - 1 ] ) {
+					results.splice( i--, 1 );
+				}
+			}
+		}
+	}
+
+	return results;
+};
+
+Sizzle.matches = function( expr, set ) {
+	return Sizzle( expr, null, null, set );
+};
+
+Sizzle.matchesSelector = function( node, expr ) {
+	return Sizzle( expr, null, null, [node] ).length > 0;
+};
+
+Sizzle.find = function( expr, context, isXML ) {
+	var set, i, len, match, type, left;
+
+	if ( !expr ) {
+		return [];
+	}
+
+	for ( i = 0, len = Expr.order.length; i < len; i++ ) {
+		type = Expr.order[i];
+
+		if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+			left = match[1];
+			match.splice( 1, 1 );
+
+			if ( left.substr( left.length - 1 ) !== "\\" ) {
+				match[1] = (match[1] || "").replace( rBackslash, "" );
+				set = Expr.find[ type ]( match, context, isXML );
+
+				if ( set != null ) {
+					expr = expr.replace( Expr.match[ type ], "" );
+					break;
+				}
+			}
+		}
+	}
+
+	if ( !set ) {
+		set = typeof context.getElementsByTagName !== "undefined" ?
+			context.getElementsByTagName( "*" ) :
+			[];
+	}
+
+	return { set: set, expr: expr };
+};
+
+Sizzle.filter = function( expr, set, inplace, not ) {
+	var match, anyFound,
+		type, found, item, filter, left,
+		i, pass,
+		old = expr,
+		result = [],
+		curLoop = set,
+		isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
+
+	while ( expr && set.length ) {
+		for ( type in Expr.filter ) {
+			if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
+				filter = Expr.filter[ type ];
+				left = match[1];
+
+				anyFound = false;
+
+				match.splice(1,1);
+
+				if ( left.substr( left.length - 1 ) === "\\" ) {
+					continue;
+				}
+
+				if ( curLoop === result ) {
+					result = [];
+				}
+
+				if ( Expr.preFilter[ type ] ) {
+					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+					if ( !match ) {
+						anyFound = found = true;
+
+					} else if ( match === true ) {
+						continue;
+					}
+				}
+
+				if ( match ) {
+					for ( i = 0; (item = curLoop[i]) != null; i++ ) {
+						if ( item ) {
+							found = filter( item, match, i, curLoop );
+							pass = not ^ found;
+
+							if ( inplace && found != null ) {
+								if ( pass ) {
+									anyFound = true;
+
+								} else {
+									curLoop[i] = false;
+								}
+
+							} else if ( pass ) {
+								result.push( item );
+								anyFound = true;
+							}
+						}
+					}
+				}
+
+				if ( found !== undefined ) {
+					if ( !inplace ) {
+						curLoop = result;
+					}
+
+					expr = expr.replace( Expr.match[ type ], "" );
+
+					if ( !anyFound ) {
+						return [];
+					}
+
+					break;
+				}
+			}
+		}
+
+		// Improper expression
+		if ( expr === old ) {
+			if ( anyFound == null ) {
+				Sizzle.error( expr );
+
+			} else {
+				break;
+			}
+		}
+
+		old = expr;
+	}
+
+	return curLoop;
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Utility function for retreiving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+var getText = Sizzle.getText = function( elem ) {
+    var i, node,
+		nodeType = elem.nodeType,
+		ret = "";
+
+	if ( nodeType ) {
+		if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+			// Use textContent || innerText for elements
+			if ( typeof elem.textContent === 'string' ) {
+				return elem.textContent;
+			} else if ( typeof elem.innerText === 'string' ) {
+				// Replace IE's carriage returns
+				return elem.innerText.replace( rReturn, '' );
+			} else {
+				// Traverse it's children
+				for ( elem = elem.firstChild; elem; elem = elem.nextSibling) {
+					ret += getText( elem );
+				}
+			}
+		} else if ( nodeType === 3 || nodeType === 4 ) {
+			return elem.nodeValue;
+		}
+	} else {
+
+		// If no nodeType, this is expected to be an array
+		for ( i = 0; (node = elem[i]); i++ ) {
+			// Do not traverse comment nodes
+			if ( node.nodeType !== 8 ) {
+				ret += getText( node );
+			}
+		}
+	}
+	return ret;
+};
+
+var Expr = Sizzle.selectors = {
+	order: [ "ID", "NAME", "TAG" ],
+
+	match: {
+		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
+		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+		CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
+		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+	},
+
+	leftMatch: {},
+
+	attrMap: {
+		"class": "className",
+		"for": "htmlFor"
+	},
+
+	attrHandle: {
+		href: function( elem ) {
+			return elem.getAttribute( "href" );
+		},
+		type: function( elem ) {
+			return elem.getAttribute( "type" );
+		}
+	},
+
+	relative: {
+		"+": function(checkSet, part){
+			var isPartStr = typeof part === "string",
+				isTag = isPartStr && !rNonWord.test( part ),
+				isPartStrNotTag = isPartStr && !isTag;
+
+			if ( isTag ) {
+				part = part.toLowerCase();
+			}
+
+			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+				if ( (elem = checkSet[i]) ) {
+					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+					checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+						elem || false :
+						elem === part;
+				}
+			}
+
+			if ( isPartStrNotTag ) {
+				Sizzle.filter( part, checkSet, true );
+			}
+		},
+
+		">": function( checkSet, part ) {
+			var elem,
+				isPartStr = typeof part === "string",
+				i = 0,
+				l = checkSet.length;
+
+			if ( isPartStr && !rNonWord.test( part ) ) {
+				part = part.toLowerCase();
+
+				for ( ; i < l; i++ ) {
+					elem = checkSet[i];
+
+					if ( elem ) {
+						var parent = elem.parentNode;
+						checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+					}
+				}
+
+			} else {
+				for ( ; i < l; i++ ) {
+					elem = checkSet[i];
+
+					if ( elem ) {
+						checkSet[i] = isPartStr ?
+							elem.parentNode :
+							elem.parentNode === part;
+					}
+				}
+
+				if ( isPartStr ) {
+					Sizzle.filter( part, checkSet, true );
+				}
+			}
+		},
+
+		"": function(checkSet, part, isXML){
+			var nodeCheck,
+				doneName = done++,
+				checkFn = dirCheck;
+
+			if ( typeof part === "string" && !rNonWord.test( part ) ) {
+				part = part.toLowerCase();
+				nodeCheck = part;
+				checkFn = dirNodeCheck;
+			}
+
+			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
+		},
+
+		"~": function( checkSet, part, isXML ) {
+			var nodeCheck,
+				doneName = done++,
+				checkFn = dirCheck;
+
+			if ( typeof part === "string" && !rNonWord.test( part ) ) {
+				part = part.toLowerCase();
+				nodeCheck = part;
+				checkFn = dirNodeCheck;
+			}
+
+			checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
+		}
+	},
+
+	find: {
+		ID: function( match, context, isXML ) {
+			if ( typeof context.getElementById !== "undefined" && !isXML ) {
+				var m = context.getElementById(match[1]);
+				// Check parentNode to catch when Blackberry 4.6 returns
+				// nodes that are no longer in the document #6963
+				return m && m.parentNode ? [m] : [];
+			}
+		},
+
+		NAME: function( match, context ) {
+			if ( typeof context.getElementsByName !== "undefined" ) {
+				var ret = [],
+					results = context.getElementsByName( match[1] );
+
+				for ( var i = 0, l = results.length; i < l; i++ ) {
+					if ( results[i].getAttribute("name") === match[1] ) {
+						ret.push( results[i] );
+					}
+				}
+
+				return ret.length === 0 ? null : ret;
+			}
+		},
+
+		TAG: function( match, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( match[1] );
+			}
+		}
+	},
+	preFilter: {
+		CLASS: function( match, curLoop, inplace, result, not, isXML ) {
+			match = " " + match[1].replace( rBackslash, "" ) + " ";
+
+			if ( isXML ) {
+				return match;
+			}
+
+			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+				if ( elem ) {
+					if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
+						if ( !inplace ) {
+							result.push( elem );
+						}
+
+					} else if ( inplace ) {
+						curLoop[i] = false;
+					}
+				}
+			}
+
+			return false;
+		},
+
+		ID: function( match ) {
+			return match[1].replace( rBackslash, "" );
+		},
+
+		TAG: function( match, curLoop ) {
+			return match[1].replace( rBackslash, "" ).toLowerCase();
+		},
+
+		CHILD: function( match ) {
+			if ( match[1] === "nth" ) {
+				if ( !match[2] ) {
+					Sizzle.error( match[0] );
+				}
+
+				match[2] = match[2].replace(/^\+|\s*/g, '');
+
+				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+				var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
+					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+				// calculate the numbers (first)n+(last) including if they are negative
+				match[2] = (test[1] + (test[2] || 1)) - 0;
+				match[3] = test[3] - 0;
+			}
+			else if ( match[2] ) {
+				Sizzle.error( match[0] );
+			}
+
+			// TODO: Move to normal caching system
+			match[0] = done++;
+
+			return match;
+		},
+
+		ATTR: function( match, curLoop, inplace, result, not, isXML ) {
+			var name = match[1] = match[1].replace( rBackslash, "" );
+
+			if ( !isXML && Expr.attrMap[name] ) {
+				match[1] = Expr.attrMap[name];
+			}
+
+			// Handle if an un-quoted value was used
+			match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
+
+			if ( match[2] === "~=" ) {
+				match[4] = " " + match[4] + " ";
+			}
+
+			return match;
+		},
+
+		PSEUDO: function( match, curLoop, inplace, result, not ) {
+			if ( match[1] === "not" ) {
+				// If we're dealing with a complex expression, or a simple one
+				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+					match[3] = Sizzle(match[3], null, null, curLoop);
+
+				} else {
+					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+
+					if ( !inplace ) {
+						result.push.apply( result, ret );
+					}
+
+					return false;
+				}
+
+			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+				return true;
+			}
+
+			return match;
+		},
+
+		POS: function( match ) {
+			match.unshift( true );
+
+			return match;
+		}
+	},
+
+	filters: {
+		enabled: function( elem ) {
+			return elem.disabled === false && elem.type !== "hidden";
+		},
+
+		disabled: function( elem ) {
+			return elem.disabled === true;
+		},
+
+		checked: function( elem ) {
+			return elem.checked === true;
+		},
+
+		selected: function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		parent: function( elem ) {
+			return !!elem.firstChild;
+		},
+
+		empty: function( elem ) {
+			return !elem.firstChild;
+		},
+
+		has: function( elem, i, match ) {
+			return !!Sizzle( match[3], elem ).length;
+		},
+
+		header: function( elem ) {
+			return (/h\d/i).test( elem.nodeName );
+		},
+
+		text: function( elem ) {
+			var attr = elem.getAttribute( "type" ), type = elem.type;
+			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+			// use getAttribute instead to test this case
+			return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
+		},
+
+		radio: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
+		},
+
+		checkbox: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
+		},
+
+		file: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
+		},
+
+		password: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
+		},
+
+		submit: function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return (name === "input" || name === "button") && "submit" === elem.type;
+		},
+
+		image: function( elem ) {
+			return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
+		},
+
+		reset: function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return (name === "input" || name === "button") && "reset" === elem.type;
+		},
+
+		button: function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && "button" === elem.type || name === "button";
+		},
+
+		input: function( elem ) {
+			return (/input|select|textarea|button/i).test( elem.nodeName );
+		},
+
+		focus: function( elem ) {
+			return elem === elem.ownerDocument.activeElement;
+		}
+	},
+	setFilters: {
+		first: function( elem, i ) {
+			return i === 0;
+		},
+
+		last: function( elem, i, match, array ) {
+			return i === array.length - 1;
+		},
+
+		even: function( elem, i ) {
+			return i % 2 === 0;
+		},
+
+		odd: function( elem, i ) {
+			return i % 2 === 1;
+		},
+
+		lt: function( elem, i, match ) {
+			return i < match[3] - 0;
+		},
+
+		gt: function( elem, i, match ) {
+			return i > match[3] - 0;
+		},
+
+		nth: function( elem, i, match ) {
+			return match[3] - 0 === i;
+		},
+
+		eq: function( elem, i, match ) {
+			return match[3] - 0 === i;
+		}
+	},
+	filter: {
+		PSEUDO: function( elem, match, i, array ) {
+			var name = match[1],
+				filter = Expr.filters[ name ];
+
+			if ( filter ) {
+				return filter( elem, i, match, array );
+
+			} else if ( name === "contains" ) {
+				return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;
+
+			} else if ( name === "not" ) {
+				var not = match[3];
+
+				for ( var j = 0, l = not.length; j < l; j++ ) {
+					if ( not[j] === elem ) {
+						return false;
+					}
+				}
+
+				return true;
+
+			} else {
+				Sizzle.error( name );
+			}
+		},
+
+		CHILD: function( elem, match ) {
+			var first, last,
+				doneName, parent, cache,
+				count, diff,
+				type = match[1],
+				node = elem;
+
+			switch ( type ) {
+				case "only":
+				case "first":
+					while ( (node = node.previousSibling) ) {
+						if ( node.nodeType === 1 ) {
+							return false;
+						}
+					}
+
+					if ( type === "first" ) {
+						return true;
+					}
+
+					node = elem;
+
+					/* falls through */
+				case "last":
+					while ( (node = node.nextSibling) ) {
+						if ( node.nodeType === 1 ) {
+							return false;
+						}
+					}
+
+					return true;
+
+				case "nth":
+					first = match[2];
+					last = match[3];
+
+					if ( first === 1 && last === 0 ) {
+						return true;
+					}
+
+					doneName = match[0];
+					parent = elem.parentNode;
+
+					if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {
+						count = 0;
+
+						for ( node = parent.firstChild; node; node = node.nextSibling ) {
+							if ( node.nodeType === 1 ) {
+								node.nodeIndex = ++count;
+							}
+						}
+
+						parent[ expando ] = doneName;
+					}
+
+					diff = elem.nodeIndex - last;
+
+					if ( first === 0 ) {
+						return diff === 0;
+
+					} else {
+						return ( diff % first === 0 && diff / first >= 0 );
+					}
+			}
+		},
+
+		ID: function( elem, match ) {
+			return elem.nodeType === 1 && elem.getAttribute("id") === match;
+		},
+
+		TAG: function( elem, match ) {
+			return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;
+		},
+
+		CLASS: function( elem, match ) {
+			return (" " + (elem.className || elem.getAttribute("class")) + " ")
+				.indexOf( match ) > -1;
+		},
+
+		ATTR: function( elem, match ) {
+			var name = match[1],
+				result = Sizzle.attr ?
+					Sizzle.attr( elem, name ) :
+					Expr.attrHandle[ name ] ?
+					Expr.attrHandle[ name ]( elem ) :
+					elem[ name ] != null ?
+						elem[ name ] :
+						elem.getAttribute( name ),
+				value = result + "",
+				type = match[2],
+				check = match[4];
+
+			return result == null ?
+				type === "!=" :
+				!type && Sizzle.attr ?
+				result != null :
+				type === "=" ?
+				value === check :
+				type === "*=" ?
+				value.indexOf(check) >= 0 :
+				type === "~=" ?
+				(" " + value + " ").indexOf(check) >= 0 :
+				!check ?
+				value && result !== false :
+				type === "!=" ?
+				value !== check :
+				type === "^=" ?
+				value.indexOf(check) === 0 :
+				type === "$=" ?
+				value.substr(value.length - check.length) === check :
+				type === "|=" ?
+				value === check || value.substr(0, check.length + 1) === check + "-" :
+				false;
+		},
+
+		POS: function( elem, match, i, array ) {
+			var name = match[2],
+				filter = Expr.setFilters[ name ];
+
+			if ( filter ) {
+				return filter( elem, i, match, array );
+			}
+		}
+	}
+};
+
+var origPOS = Expr.match.POS,
+	fescape = function(all, num){
+		return "\\" + (num - 0 + 1);
+	};
+
+for ( var type in Expr.match ) {
+	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
+	Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
+}
+// Expose origPOS
+// "global" as in regardless of relation to brackets/parens
+Expr.match.globalPOS = origPOS;
+
+var makeArray = function( array, results ) {
+	array = Array.prototype.slice.call( array, 0 );
+
+	if ( results ) {
+		results.push.apply( results, array );
+		return results;
+	}
+
+	return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+// Also verifies that the returned array holds DOM nodes
+// (which is not the case in the Blackberry browser)
+try {
+	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
+
+// Provide a fallback method if it does not work
+} catch( e ) {
+	makeArray = function( array, results ) {
+		var i = 0,
+			ret = results || [];
+
+		if ( toString.call(array) === "[object Array]" ) {
+			Array.prototype.push.apply( ret, array );
+
+		} else {
+			if ( typeof array.length === "number" ) {
+				for ( var l = array.length; i < l; i++ ) {
+					ret.push( array[i] );
+				}
+
+			} else {
+				for ( ; array[i]; i++ ) {
+					ret.push( array[i] );
+				}
+			}
+		}
+
+		return ret;
+	};
+}
+
+var sortOrder, siblingCheck;
+
+if ( document.documentElement.compareDocumentPosition ) {
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+			return a.compareDocumentPosition ? -1 : 1;
+		}
+
+		return a.compareDocumentPosition(b) & 4 ? -1 : 1;
+	};
+
+} else {
+	sortOrder = function( a, b ) {
+		// The nodes are identical, we can exit early
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+
+		// Fallback to using sourceIndex (in IE) if it's available on both nodes
+		} else if ( a.sourceIndex && b.sourceIndex ) {
+			return a.sourceIndex - b.sourceIndex;
+		}
+
+		var al, bl,
+			ap = [],
+			bp = [],
+			aup = a.parentNode,
+			bup = b.parentNode,
+			cur = aup;
+
+		// If the nodes are siblings (or identical) we can do a quick check
+		if ( aup === bup ) {
+			return siblingCheck( a, b );
+
+		// If no parents were found then the nodes are disconnected
+		} else if ( !aup ) {
+			return -1;
+
+		} else if ( !bup ) {
+			return 1;
+		}
+
+		// Otherwise they're somewhere else in the tree so we need
+		// to build up a full list of the parentNodes for comparison
+		while ( cur ) {
+			ap.unshift( cur );
+			cur = cur.parentNode;
+		}
+
+		cur = bup;
+
+		while ( cur ) {
+			bp.unshift( cur );
+			cur = cur.parentNode;
+		}
+
+		al = ap.length;
+		bl = bp.length;
+
+		// Start walking down the tree looking for a discrepancy
+		for ( var i = 0; i < al && i < bl; i++ ) {
+			if ( ap[i] !== bp[i] ) {
+				return siblingCheck( ap[i], bp[i] );
+			}
+		}
+
+		// We ended someplace up the tree so do a sibling check
+		return i === al ?
+			siblingCheck( a, bp[i], -1 ) :
+			siblingCheck( ap[i], b, 1 );
+	};
+
+	siblingCheck = function( a, b, ret ) {
+		if ( a === b ) {
+			return ret;
+		}
+
+		var cur = a.nextSibling;
+
+		while ( cur ) {
+			if ( cur === b ) {
+				return -1;
+			}
+
+			cur = cur.nextSibling;
+		}
+
+		return 1;
+	};
+}
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+	// We're going to inject a fake input element with a specified name
+	var form = document.createElement("div"),
+		id = "script" + (new Date()).getTime(),
+		root = document.documentElement;
+
+	form.innerHTML = "<a name='" + id + "'/>";
+
+	// Inject it into the root element, check its status, and remove it quickly
+	root.insertBefore( form, root.firstChild );
+
+	// The workaround has to do additional checks after a getElementById
+	// Which slows things down for other browsers (hence the branching)
+	if ( document.getElementById( id ) ) {
+		Expr.find.ID = function( match, context, isXML ) {
+			if ( typeof context.getElementById !== "undefined" && !isXML ) {
+				var m = context.getElementById(match[1]);
+
+				return m ?
+					m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
+						[m] :
+						undefined :
+					[];
+			}
+		};
+
+		Expr.filter.ID = function( elem, match ) {
+			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+
+			return elem.nodeType === 1 && node && node.nodeValue === match;
+		};
+	}
+
+	root.removeChild( form );
+
+	// release memory in IE
+	root = form = null;
+})();
+
+(function(){
+	// Check to see if the browser returns only elements
+	// when doing getElementsByTagName("*")
+
+	// Create a fake element
+	var div = document.createElement("div");
+	div.appendChild( document.createComment("") );
+
+	// Make sure no comments are found
+	if ( div.getElementsByTagName("*").length > 0 ) {
+		Expr.find.TAG = function( match, context ) {
+			var results = context.getElementsByTagName( match[1] );
+
+			// Filter out possible comments
+			if ( match[1] === "*" ) {
+				var tmp = [];
+
+				for ( var i = 0; results[i]; i++ ) {
+					if ( results[i].nodeType === 1 ) {
+						tmp.push( results[i] );
+					}
+				}
+
+				results = tmp;
+			}
+
+			return results;
+		};
+	}
+
+	// Check to see if an attribute returns normalized href attributes
+	div.innerHTML = "<a href='#'></a>";
+
+	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+			div.firstChild.getAttribute("href") !== "#" ) {
+
+		Expr.attrHandle.href = function( elem ) {
+			return elem.getAttribute( "href", 2 );
+		};
+	}
+
+	// release memory in IE
+	div = null;
+})();
+
+if ( document.querySelectorAll ) {
+	(function(){
+		var oldSizzle = Sizzle,
+			div = document.createElement("div"),
+			id = "__sizzle__";
+
+		div.innerHTML = "<p class='TEST'></p>";
+
+		// Safari can't handle uppercase or unicode characters when
+		// in quirks mode.
+		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+			return;
+		}
+
+		Sizzle = function( query, context, extra, seed ) {
+			context = context || document;
+
+			// Only use querySelectorAll on non-XML documents
+			// (ID selectors don't work in non-HTML documents)
+			if ( !seed && !Sizzle.isXML(context) ) {
+				// See if we find a selector to speed up
+				var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
+
+				if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
+					// Speed-up: Sizzle("TAG")
+					if ( match[1] ) {
+						return makeArray( context.getElementsByTagName( query ), extra );
+
+					// Speed-up: Sizzle(".CLASS")
+					} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
+						return makeArray( context.getElementsByClassName( match[2] ), extra );
+					}
+				}
+
+				if ( context.nodeType === 9 ) {
+					// Speed-up: Sizzle("body")
+					// The body element only exists once, optimize finding it
+					if ( query === "body" && context.body ) {
+						return makeArray( [ context.body ], extra );
+
+					// Speed-up: Sizzle("#ID")
+					} else if ( match && match[3] ) {
+						var elem = context.getElementById( match[3] );
+
+						// Check parentNode to catch when Blackberry 4.6 returns
+						// nodes that are no longer in the document #6963
+						if ( elem && elem.parentNode ) {
+							// Handle the case where IE and Opera return items
+							// by name instead of ID
+							if ( elem.id === match[3] ) {
+								return makeArray( [ elem ], extra );
+							}
+
+						} else {
+							return makeArray( [], extra );
+						}
+					}
+
+					try {
+						return makeArray( context.querySelectorAll(query), extra );
+					} catch(qsaError) {}
+
+				// qSA works strangely on Element-rooted queries
+				// We can work around this by specifying an extra ID on the root
+				// and working up from there (Thanks to Andrew Dupont for the technique)
+				// IE 8 doesn't work on object elements
+				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+					var oldContext = context,
+						old = context.getAttribute( "id" ),
+						nid = old || id,
+						hasParent = context.parentNode,
+						relativeHierarchySelector = /^\s*[+~]/.test( query );
+
+					if ( !old ) {
+						context.setAttribute( "id", nid );
+					} else {
+						nid = nid.replace( /'/g, "\\$&" );
+					}
+					if ( relativeHierarchySelector && hasParent ) {
+						context = context.parentNode;
+					}
+
+					try {
+						if ( !relativeHierarchySelector || hasParent ) {
+							return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
+						}
+
+					} catch(pseudoError) {
+					} finally {
+						if ( !old ) {
+							oldContext.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+
+			return oldSizzle(query, context, extra, seed);
+		};
+
+		for ( var prop in oldSizzle ) {
+			Sizzle[ prop ] = oldSizzle[ prop ];
+		}
+
+		// release memory in IE
+		div = null;
+	})();
+}
+
+(function(){
+	var html = document.documentElement,
+		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
+
+	if ( matches ) {
+		// Check to see if it's possible to do matchesSelector
+		// on a disconnected node (IE 9 fails this)
+		var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
+			pseudoWorks = false;
+
+		try {
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( document.documentElement, "[test!='']:sizzle" );
+
+		} catch( pseudoError ) {
+			pseudoWorks = true;
+		}
+
+		Sizzle.matchesSelector = function( node, expr ) {
+			// Make sure that attribute selectors are quoted
+			expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+			if ( !Sizzle.isXML( node ) ) {
+				try {
+					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
+						var ret = matches.call( node, expr );
+
+						// IE 9's matchesSelector returns false on disconnected nodes
+						if ( ret || !disconnectedMatch ||
+								// As well, disconnected nodes are said to be in a document
+								// fragment in IE 9, so check for that
+								node.document && node.document.nodeType !== 11 ) {
+							return ret;
+						}
+					}
+				} catch(e) {}
+			}
+
+			return Sizzle(expr, null, null, [node]).length > 0;
+		};
+	}
+})();
+
+(function(){
+	var div = document.createElement("div");
+
+	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+	// Opera can't find a second classname (in 9.6)
+	// Also, make sure that getElementsByClassName actually exists
+	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
+		return;
+	}
+
+	// Safari caches class attributes, doesn't catch changes (in 3.2)
+	div.lastChild.className = "e";
+
+	if ( div.getElementsByClassName("e").length === 1 ) {
+		return;
+	}
+
+	Expr.order.splice(1, 0, "CLASS");
+	Expr.find.CLASS = function( match, context, isXML ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+			return context.getElementsByClassName(match[1]);
+		}
+	};
+
+	// release memory in IE
+	div = null;
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+		var elem = checkSet[i];
+
+		if ( elem ) {
+			var match = false;
+
+			elem = elem[dir];
+
+			while ( elem ) {
+				if ( elem[ expando ] === doneName ) {
+					match = checkSet[elem.sizset];
+					break;
+				}
+
+				if ( elem.nodeType === 1 && !isXML ){
+					elem[ expando ] = doneName;
+					elem.sizset = i;
+				}
+
+				if ( elem.nodeName.toLowerCase() === cur ) {
+					match = elem;
+					break;
+				}
+
+				elem = elem[dir];
+			}
+
+			checkSet[i] = match;
+		}
+	}
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+		var elem = checkSet[i];
+
+		if ( elem ) {
+			var match = false;
+
+			elem = elem[dir];
+
+			while ( elem ) {
+				if ( elem[ expando ] === doneName ) {
+					match = checkSet[elem.sizset];
+					break;
+				}
+
+				if ( elem.nodeType === 1 ) {
+					if ( !isXML ) {
+						elem[ expando ] = doneName;
+						elem.sizset = i;
+					}
+
+					if ( typeof cur !== "string" ) {
+						if ( elem === cur ) {
+							match = true;
+							break;
+						}
+
+					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+						match = elem;
+						break;
+					}
+				}
+
+				elem = elem[dir];
+			}
+
+			checkSet[i] = match;
+		}
+	}
+}
+
+if ( document.documentElement.contains ) {
+	Sizzle.contains = function( a, b ) {
+		return a !== b && (a.contains ? a.contains(b) : true);
+	};
+
+} else if ( document.documentElement.compareDocumentPosition ) {
+	Sizzle.contains = function( a, b ) {
+		return !!(a.compareDocumentPosition(b) & 16);
+	};
+
+} else {
+	Sizzle.contains = function() {
+		return false;
+	};
+}
+
+Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+var posProcess = function( selector, context, seed ) {
+	var match,
+		tmpSet = [],
+		later = "",
+		root = context.nodeType ? [context] : context;
+
+	// Position selectors must be done after the filter
+	// And so must :not(positional) so we move all PSEUDOs to the end
+	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+		later += match[0];
+		selector = selector.replace( Expr.match.PSEUDO, "" );
+	}
+
+	selector = Expr.relative[selector] ? selector + "*" : selector;
+
+	for ( var i = 0, l = root.length; i < l; i++ ) {
+		Sizzle( selector, root[i], tmpSet, seed );
+	}
+
+	return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+// Override sizzle attribute retrieval
+Sizzle.attr = jQuery.attr;
+Sizzle.selectors.attrMap = {};
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+})();
+
+
+var runtil = /Until$/,
+	rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+	// Note: This RegExp should be improved, or likely pulled from Sizzle
+	rmultiselector = /,/,
+	isSimple = /^.[^:#\[\.,]*$/,
+	slice = Array.prototype.slice,
+	POS = jQuery.expr.match.globalPOS,
+	// methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend({
+	find: function( selector ) {
+		var self = this,
+			i, l;
+
+		if ( typeof selector !== "string" ) {
+			return jQuery( selector ).filter(function() {
+				for ( i = 0, l = self.length; i < l; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			});
+		}
+
+		var ret = this.pushStack( "", "find", selector ),
+			length, n, r;
+
+		for ( i = 0, l = this.length; i < l; i++ ) {
+			length = ret.length;
+			jQuery.find( selector, this[i], ret );
+
+			if ( i > 0 ) {
+				// Make sure that the results are unique
+				for ( n = length; n < ret.length; n++ ) {
+					for ( r = 0; r < length; r++ ) {
+						if ( ret[r] === ret[n] ) {
+							ret.splice(n--, 1);
+							break;
+						}
+					}
+				}
+			}
+		}
+
+		return ret;
+	},
+
+	has: function( target ) {
+		var targets = jQuery( target );
+		return this.filter(function() {
+			for ( var i = 0, l = targets.length; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[i] ) ) {
+					return true;
+				}
+			}
+		});
+	},
+
+	not: function( selector ) {
+		return this.pushStack( winnow(this, selector, false), "not", selector);
+	},
+
+	filter: function( selector ) {
+		return this.pushStack( winnow(this, selector, true), "filter", selector );
+	},
+
+	is: function( selector ) {
+		return !!selector && (
+			typeof selector === "string" ?
+				// If this is a positional selector, check membership in the returned set
+				// so $("p:first").is("p:last") won't return true for a doc with two "p".
+				POS.test( selector ) ?
+					jQuery( selector, this.context ).index( this[0] ) >= 0 :
+					jQuery.filter( selector, this ).length > 0 :
+				this.filter( selector ).length > 0 );
+	},
+
+	closest: function( selectors, context ) {
+		var ret = [], i, l, cur = this[0];
+
+		// Array (deprecated as of jQuery 1.7)
+		if ( jQuery.isArray( selectors ) ) {
+			var level = 1;
+
+			while ( cur && cur.ownerDocument && cur !== context ) {
+				for ( i = 0; i < selectors.length; i++ ) {
+
+					if ( jQuery( cur ).is( selectors[ i ] ) ) {
+						ret.push({ selector: selectors[ i ], elem: cur, level: level });
+					}
+				}
+
+				cur = cur.parentNode;
+				level++;
+			}
+
+			return ret;
+		}
+
+		// String
+		var pos = POS.test( selectors ) || typeof selectors !== "string" ?
+				jQuery( selectors, context || this.context ) :
+				0;
+
+		for ( i = 0, l = this.length; i < l; i++ ) {
+			cur = this[i];
+
+			while ( cur ) {
+				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
+					ret.push( cur );
+					break;
+
+				} else {
+					cur = cur.parentNode;
+					if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
+						break;
+					}
+				}
+			}
+		}
+
+		ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
+
+		return this.pushStack( ret, "closest", selectors );
+	},
+
+	// Determine the position of an element within
+	// the matched set of elements
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
+		}
+
+		// index in selector
+		if ( typeof elem === "string" ) {
+			return jQuery.inArray( this[0], jQuery( elem ) );
+		}
+
+		// Locate the position of the desired element
+		return jQuery.inArray(
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[0] : elem, this );
+	},
+
+	add: function( selector, context ) {
+		var set = typeof selector === "string" ?
+				jQuery( selector, context ) :
+				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
+			all = jQuery.merge( this.get(), set );
+
+		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
+			all :
+			jQuery.unique( all ) );
+	},
+
+	andSelf: function() {
+		return this.add( this.prevObject );
+	}
+});
+
+// A painfully simple check to see if an element is disconnected
+// from a document (should be improved, where feasible).
+function isDisconnected( node ) {
+	return !node || !node.parentNode || node.parentNode.nodeType === 11;
+}
+
+jQuery.each({
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return jQuery.dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return jQuery.nth( elem, 2, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return jQuery.nth( elem, 2, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return jQuery.dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return jQuery.dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return jQuery.sibling( elem.firstChild );
+	},
+	contents: function( elem ) {
+		return jQuery.nodeName( elem, "iframe" ) ?
+			elem.contentDocument || elem.contentWindow.document :
+			jQuery.makeArray( elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var ret = jQuery.map( this, fn, until );
+
+		if ( !runtil.test( name ) ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			ret = jQuery.filter( selector, ret );
+		}
+
+		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
+
+		if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
+			ret = ret.reverse();
+		}
+
+		return this.pushStack( ret, name, slice.call( arguments ).join(",") );
+	};
+});
+
+jQuery.extend({
+	filter: function( expr, elems, not ) {
+		if ( not ) {
+			expr = ":not(" + expr + ")";
+		}
+
+		return elems.length === 1 ?
+			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
+			jQuery.find.matches(expr, elems);
+	},
+
+	dir: function( elem, dir, until ) {
+		var matched = [],
+			cur = elem[ dir ];
+
+		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+			if ( cur.nodeType === 1 ) {
+				matched.push( cur );
+			}
+			cur = cur[dir];
+		}
+		return matched;
+	},
+
+	nth: function( cur, result, dir, elem ) {
+		result = result || 1;
+		var num = 0;
+
+		for ( ; cur; cur = cur[dir] ) {
+			if ( cur.nodeType === 1 && ++num === result ) {
+				break;
+			}
+		}
+
+		return cur;
+	},
+
+	sibling: function( n, elem ) {
+		var r = [];
+
+		for ( ; n; n = n.nextSibling ) {
+			if ( n.nodeType === 1 && n !== elem ) {
+				r.push( n );
+			}
+		}
+
+		return r;
+	}
+});
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, keep ) {
+
+	// Can't pass null or undefined to indexOf in Firefox 4
+	// Set to 0 to skip string check
+	qualifier = qualifier || 0;
+
+	if ( jQuery.isFunction( qualifier ) ) {
+		return jQuery.grep(elements, function( elem, i ) {
+			var retVal = !!qualifier.call( elem, i, elem );
+			return retVal === keep;
+		});
+
+	} else if ( qualifier.nodeType ) {
+		return jQuery.grep(elements, function( elem, i ) {
+			return ( elem === qualifier ) === keep;
+		});
+
+	} else if ( typeof qualifier === "string" ) {
+		var filtered = jQuery.grep(elements, function( elem ) {
+			return elem.nodeType === 1;
+		});
+
+		if ( isSimple.test( qualifier ) ) {
+			return jQuery.filter(qualifier, filtered, !keep);
+		} else {
+			qualifier = jQuery.filter( qualifier, filtered );
+		}
+	}
+
+	return jQuery.grep(elements, function( elem, i ) {
+		return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
+	});
+}
+
+
+
+
+function createSafeFragment( document ) {
+	var list = nodeNames.split( "|" ),
+	safeFrag = document.createDocumentFragment();
+
+	if ( safeFrag.createElement ) {
+		while ( list.length ) {
+			safeFrag.createElement(
+				list.pop()
+			);
+		}
+	}
+	return safeFrag;
+}
+
+var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
+		"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
+	rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
+	rleadingWhitespace = /^\s+/,
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
+	rtagName = /<([\w:]+)/,
+	rtbody = /<tbody/i,
+	rhtml = /<|&#?\w+;/,
+	rnoInnerhtml = /<(?:script|style)/i,
+	rnocache = /<(?:script|object|embed|option|style)/i,
+	rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rscriptType = /\/(java|ecma)script/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
+	wrapMap = {
+		option: [ 1, "<select multiple='multiple'>", "</select>" ],
+		legend: [ 1, "<fieldset>", "</fieldset>" ],
+		thead: [ 1, "<table>", "</table>" ],
+		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+		area: [ 1, "<map>", "</map>" ],
+		_default: [ 0, "", "" ]
+	},
+	safeFragment = createSafeFragment( document );
+
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+// IE can't serialize <link> and <script> tags normally
+if ( !jQuery.support.htmlSerialize ) {
+	wrapMap._default = [ 1, "div<div>", "</div>" ];
+}
+
+jQuery.fn.extend({
+	text: function( value ) {
+		return jQuery.access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
+		}, null, value, arguments.length );
+	},
+
+	wrapAll: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each(function(i) {
+				jQuery(this).wrapAll( html.call(this, i) );
+			});
+		}
+
+		if ( this[0] ) {
+			// The elements to wrap the target around
+			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
+
+			if ( this[0].parentNode ) {
+				wrap.insertBefore( this[0] );
+			}
+
+			wrap.map(function() {
+				var elem = this;
+
+				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+					elem = elem.firstChild;
+				}
+
+				return elem;
+			}).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each(function(i) {
+				jQuery(this).wrapInner( html.call(this, i) );
+			});
+		}
+
+		return this.each(function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		});
+	},
+
+	wrap: function( html ) {
+		var isFunction = jQuery.isFunction( html );
+
+		return this.each(function(i) {
+			jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
+		});
+	},
+
+	unwrap: function() {
+		return this.parent().each(function() {
+			if ( !jQuery.nodeName( this, "body" ) ) {
+				jQuery( this ).replaceWith( this.childNodes );
+			}
+		}).end();
+	},
+
+	append: function() {
+		return this.domManip(arguments, true, function( elem ) {
+			if ( this.nodeType === 1 ) {
+				this.appendChild( elem );
+			}
+		});
+	},
+
+	prepend: function() {
+		return this.domManip(arguments, true, function( elem ) {
+			if ( this.nodeType === 1 ) {
+				this.insertBefore( elem, this.firstChild );
+			}
+		});
+	},
+
+	before: function() {
+		if ( this[0] && this[0].parentNode ) {
+			return this.domManip(arguments, false, function( elem ) {
+				this.parentNode.insertBefore( elem, this );
+			});
+		} else if ( arguments.length ) {
+			var set = jQuery.clean( arguments );
+			set.push.apply( set, this.toArray() );
+			return this.pushStack( set, "before", arguments );
+		}
+	},
+
+	after: function() {
+		if ( this[0] && this[0].parentNode ) {
+			return this.domManip(arguments, false, function( elem ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			});
+		} else if ( arguments.length ) {
+			var set = this.pushStack( this, "after", arguments );
+			set.push.apply( set, jQuery.clean(arguments) );
+			return set;
+		}
+	},
+
+	// keepData is for internal use only--do not document
+	remove: function( selector, keepData ) {
+		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
+				if ( !keepData && elem.nodeType === 1 ) {
+					jQuery.cleanData( elem.getElementsByTagName("*") );
+					jQuery.cleanData( [ elem ] );
+				}
+
+				if ( elem.parentNode ) {
+					elem.parentNode.removeChild( elem );
+				}
+			}
+		}
+
+		return this;
+	},
+
+	empty: function() {
+		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+			// Remove element nodes and prevent memory leaks
+			if ( elem.nodeType === 1 ) {
+				jQuery.cleanData( elem.getElementsByTagName("*") );
+			}
+
+			// Remove any remaining nodes
+			while ( elem.firstChild ) {
+				elem.removeChild( elem.firstChild );
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function () {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		});
+	},
+
+	html: function( value ) {
+		return jQuery.access( this, function( value ) {
+			var elem = this[0] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined ) {
+				return elem.nodeType === 1 ?
+					elem.innerHTML.replace( rinlinejQuery, "" ) :
+					null;
+			}
+
+
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
+				!wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
+
+				value = value.replace( rxhtmlTag, "<$1></$2>" );
+
+				try {
+					for (; i < l; i++ ) {
+						// Remove element nodes and prevent memory leaks
+						elem = this[i] || {};
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( elem.getElementsByTagName( "*" ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch(e) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function( value ) {
+		if ( this[0] && this[0].parentNode ) {
+			// Make sure that the elements are removed from the DOM before they are inserted
+			// this can help fix replacing a parent with child elements
+			if ( jQuery.isFunction( value ) ) {
+				return this.each(function(i) {
+					var self = jQuery(this), old = self.html();
+					self.replaceWith( value.call( this, i, old ) );
+				});
+			}
+
+			if ( typeof value !== "string" ) {
+				value = jQuery( value ).detach();
+			}
+
+			return this.each(function() {
+				var next = this.nextSibling,
+					parent = this.parentNode;
+
+				jQuery( this ).remove();
+
+				if ( next ) {
+					jQuery(next).before( value );
+				} else {
+					jQuery(parent).append( value );
+				}
+			});
+		} else {
+			return this.length ?
+				this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
+				this;
+		}
+	},
+
+	detach: function( selector ) {
+		return this.remove( selector, true );
+	},
+
+	domManip: function( args, table, callback ) {
+		var results, first, fragment, parent,
+			value = args[0],
+			scripts = [];
+
+		// We can't cloneNode fragments that contain checked, in WebKit
+		if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
+			return this.each(function() {
+				jQuery(this).domManip( args, table, callback, true );
+			});
+		}
+
+		if ( jQuery.isFunction(value) ) {
+			return this.each(function(i) {
+				var self = jQuery(this);
+				args[0] = value.call(this, i, table ? self.html() : undefined);
+				self.domManip( args, table, callback );
+			});
+		}
+
+		if ( this[0] ) {
+			parent = value && value.parentNode;
+
+			// If we're in a fragment, just use that instead of building a new one
+			if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
+				results = { fragment: parent };
+
+			} else {
+				results = jQuery.buildFragment( args, this, scripts );
+			}
+
+			fragment = results.fragment;
+
+			if ( fragment.childNodes.length === 1 ) {
+				first = fragment = fragment.firstChild;
+			} else {
+				first = fragment.firstChild;
+			}
+
+			if ( first ) {
+				table = table && jQuery.nodeName( first, "tr" );
+
+				for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
+					callback.call(
+						table ?
+							root(this[i], first) :
+							this[i],
+						// Make sure that we do not leak memory by inadvertently discarding
+						// the original fragment (which might have attached data) instead of
+						// using it; in addition, use the original fragment object for the last
+						// item instead of first because it can end up being emptied incorrectly
+						// in certain situations (Bug #8070).
+						// Fragments from the fragment cache must always be cloned and never used
+						// in place.
+						results.cacheable || ( l > 1 && i < lastIndex ) ?
+							jQuery.clone( fragment, true, true ) :
+							fragment
+					);
+				}
+			}
+
+			if ( scripts.length ) {
+				jQuery.each( scripts, function( i, elem ) {
+					if ( elem.src ) {
+						jQuery.ajax({
+							type: "GET",
+							global: false,
+							url: elem.src,
+							async: false,
+							dataType: "script"
+						});
+					} else {
+						jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
+					}
+
+					if ( elem.parentNode ) {
+						elem.parentNode.removeChild( elem );
+					}
+				});
+			}
+		}
+
+		return this;
+	}
+});
+
+function root( elem, cur ) {
+	return jQuery.nodeName(elem, "table") ?
+		(elem.getElementsByTagName("tbody")[0] ||
+		elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
+		elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+
+	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+		return;
+	}
+
+	var type, i, l,
+		oldData = jQuery._data( src ),
+		curData = jQuery._data( dest, oldData ),
+		events = oldData.events;
+
+	if ( events ) {
+		delete curData.handle;
+		curData.events = {};
+
+		for ( type in events ) {
+			for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+				jQuery.event.add( dest, type, events[ type ][ i ] );
+			}
+		}
+	}
+
+	// make the cloned public data object a copy from the original
+	if ( curData.data ) {
+		curData.data = jQuery.extend( {}, curData.data );
+	}
+}
+
+function cloneFixAttributes( src, dest ) {
+	var nodeName;
+
+	// We do not need to do anything for non-Elements
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// clearAttributes removes the attributes, which we don't want,
+	// but also removes the attachEvent events, which we *do* want
+	if ( dest.clearAttributes ) {
+		dest.clearAttributes();
+	}
+
+	// mergeAttributes, in contrast, only merges back on the
+	// original attributes, not the events
+	if ( dest.mergeAttributes ) {
+		dest.mergeAttributes( src );
+	}
+
+	nodeName = dest.nodeName.toLowerCase();
+
+	// IE6-8 fail to clone children inside object elements that use
+	// the proprietary classid attribute value (rather than the type
+	// attribute) to identify the type of content to display
+	if ( nodeName === "object" ) {
+		dest.outerHTML = src.outerHTML;
+
+	} else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
+		// IE6-8 fails to persist the checked state of a cloned checkbox
+		// or radio button. Worse, IE6-7 fail to give the cloned element
+		// a checked appearance if the defaultChecked value isn't also set
+		if ( src.checked ) {
+			dest.defaultChecked = dest.checked = src.checked;
+		}
+
+		// IE6-7 get confused and end up setting the value of a cloned
+		// checkbox/radio button to an empty string instead of "on"
+		if ( dest.value !== src.value ) {
+			dest.value = src.value;
+		}
+
+	// IE6-8 fails to return the selected option to the default selected
+	// state when cloning options
+	} else if ( nodeName === "option" ) {
+		dest.selected = src.defaultSelected;
+
+	// IE6-8 fails to set the defaultValue to the correct value when
+	// cloning other types of input fields
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+
+	// IE blanks contents when cloning scripts
+	} else if ( nodeName === "script" && dest.text !== src.text ) {
+		dest.text = src.text;
+	}
+
+	// Event data gets referenced instead of copied if the expando
+	// gets copied too
+	dest.removeAttribute( jQuery.expando );
+
+	// Clear flags for bubbling special change/submit events, they must
+	// be reattached when the newly cloned events are first activated
+	dest.removeAttribute( "_submit_attached" );
+	dest.removeAttribute( "_change_attached" );
+}
+
+jQuery.buildFragment = function( args, nodes, scripts ) {
+	var fragment, cacheable, cacheresults, doc,
+	first = args[ 0 ];
+
+	// nodes may contain either an explicit document object,
+	// a jQuery collection or context object.
+	// If nodes[0] contains a valid object to assign to doc
+	if ( nodes && nodes[0] ) {
+		doc = nodes[0].ownerDocument || nodes[0];
+	}
+
+	// Ensure that an attr object doesn't incorrectly stand in as a document object
+	// Chrome and Firefox seem to allow this to occur and will throw exception
+	// Fixes #8950
+	if ( !doc.createDocumentFragment ) {
+		doc = document;
+	}
+
+	// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
+	// Cloning options loses the selected state, so don't cache them
+	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
+	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
+	// Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501
+	if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document &&
+		first.charAt(0) === "<" && !rnocache.test( first ) &&
+		(jQuery.support.checkClone || !rchecked.test( first )) &&
+		(jQuery.support.html5Clone || !rnoshimcache.test( first )) ) {
+
+		cacheable = true;
+
+		cacheresults = jQuery.fragments[ first ];
+		if ( cacheresults && cacheresults !== 1 ) {
+			fragment = cacheresults;
+		}
+	}
+
+	if ( !fragment ) {
+		fragment = doc.createDocumentFragment();
+		jQuery.clean( args, doc, fragment, scripts );
+	}
+
+	if ( cacheable ) {
+		jQuery.fragments[ first ] = cacheresults ? fragment : 1;
+	}
+
+	return { fragment: fragment, cacheable: cacheable };
+};
+
+jQuery.fragments = {};
+
+jQuery.each({
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var ret = [],
+			insert = jQuery( selector ),
+			parent = this.length === 1 && this[0].parentNode;
+
+		if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
+			insert[ original ]( this[0] );
+			return this;
+
+		} else {
+			for ( var i = 0, l = insert.length; i < l; i++ ) {
+				var elems = ( i > 0 ? this.clone(true) : this ).get();
+				jQuery( insert[i] )[ original ]( elems );
+				ret = ret.concat( elems );
+			}
+
+			return this.pushStack( ret, name, insert.selector );
+		}
+	};
+});
+
+function getAll( elem ) {
+	if ( typeof elem.getElementsByTagName !== "undefined" ) {
+		return elem.getElementsByTagName( "*" );
+
+	} else if ( typeof elem.querySelectorAll !== "undefined" ) {
+		return elem.querySelectorAll( "*" );
+
+	} else {
+		return [];
+	}
+}
+
+// Used in clean, fixes the defaultChecked property
+function fixDefaultChecked( elem ) {
+	if ( elem.type === "checkbox" || elem.type === "radio" ) {
+		elem.defaultChecked = elem.checked;
+	}
+}
+// Finds all inputs and passes them to fixDefaultChecked
+function findInputs( elem ) {
+	var nodeName = ( elem.nodeName || "" ).toLowerCase();
+	if ( nodeName === "input" ) {
+		fixDefaultChecked( elem );
+	// Skip scripts, get other children
+	} else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) {
+		jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
+	}
+}
+
+// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js
+function shimCloneNode( elem ) {
+	var div = document.createElement( "div" );
+	safeFragment.appendChild( div );
+
+	div.innerHTML = elem.outerHTML;
+	return div.firstChild;
+}
+
+jQuery.extend({
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var srcElements,
+			destElements,
+			i,
+			// IE<=8 does not properly clone detached, unknown element nodes
+			clone = jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ?
+				elem.cloneNode( true ) :
+				shimCloneNode( elem );
+
+		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+			// IE copies events bound via attachEvent when using cloneNode.
+			// Calling detachEvent on the clone will also remove the events
+			// from the original. In order to get around this, we use some
+			// proprietary methods to clear the events. Thanks to MooTools
+			// guys for this hotness.
+
+			cloneFixAttributes( elem, clone );
+
+			// Using Sizzle here is crazy slow, so we use getElementsByTagName instead
+			srcElements = getAll( elem );
+			destElements = getAll( clone );
+
+			// Weird iteration because IE will replace the length property
+			// with an element if you are cloning the body and one of the
+			// elements on the page has a name or id of "length"
+			for ( i = 0; srcElements[i]; ++i ) {
+				// Ensure that the destination node is not null; Fixes #9587
+				if ( destElements[i] ) {
+					cloneFixAttributes( srcElements[i], destElements[i] );
+				}
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			cloneCopyEvent( elem, clone );
+
+			if ( deepDataAndEvents ) {
+				srcElements = getAll( elem );
+				destElements = getAll( clone );
+
+				for ( i = 0; srcElements[i]; ++i ) {
+					cloneCopyEvent( srcElements[i], destElements[i] );
+				}
+			}
+		}
+
+		srcElements = destElements = null;
+
+		// Return the cloned set
+		return clone;
+	},
+
+	clean: function( elems, context, fragment, scripts ) {
+		var checkScriptType, script, j,
+				ret = [];
+
+		context = context || document;
+
+		// !context.createElement fails in IE with an error but returns typeof 'object'
+		if ( typeof context.createElement === "undefined" ) {
+			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
+		}
+
+		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+			if ( typeof elem === "number" ) {
+				elem += "";
+			}
+
+			if ( !elem ) {
+				continue;
+			}
+
+			// Convert html string into DOM nodes
+			if ( typeof elem === "string" ) {
+				if ( !rhtml.test( elem ) ) {
+					elem = context.createTextNode( elem );
+				} else {
+					// Fix "XHTML"-style tags in all browsers
+					elem = elem.replace(rxhtmlTag, "<$1></$2>");
+
+					// Trim whitespace, otherwise indexOf won't work as expected
+					var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
+						wrap = wrapMap[ tag ] || wrapMap._default,
+						depth = wrap[0],
+						div = context.createElement("div"),
+						safeChildNodes = safeFragment.childNodes,
+						remove;
+
+					// Append wrapper element to unknown element safe doc fragment
+					if ( context === document ) {
+						// Use the fragment we've already created for this document
+						safeFragment.appendChild( div );
+					} else {
+						// Use a fragment created with the owner document
+						createSafeFragment( context ).appendChild( div );
+					}
+
+					// Go to html and back, then peel off extra wrappers
+					div.innerHTML = wrap[1] + elem + wrap[2];
+
+					// Move to the right depth
+					while ( depth-- ) {
+						div = div.lastChild;
+					}
+
+					// Remove IE's autoinserted <tbody> from table fragments
+					if ( !jQuery.support.tbody ) {
+
+						// String was a <table>, *may* have spurious <tbody>
+						var hasBody = rtbody.test(elem),
+							tbody = tag === "table" && !hasBody ?
+								div.firstChild && div.firstChild.childNodes :
+
+								// String was a bare <thead> or <tfoot>
+								wrap[1] === "<table>" && !hasBody ?
+									div.childNodes :
+									[];
+
+						for ( j = tbody.length - 1; j >= 0 ; --j ) {
+							if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
+								tbody[ j ].parentNode.removeChild( tbody[ j ] );
+							}
+						}
+					}
+
+					// IE completely kills leading whitespace when innerHTML is used
+					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+						div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
+					}
+
+					elem = div.childNodes;
+
+					// Clear elements from DocumentFragment (safeFragment or otherwise)
+					// to avoid hoarding elements. Fixes #11356
+					if ( div ) {
+						div.parentNode.removeChild( div );
+
+						// Guard against -1 index exceptions in FF3.6
+						if ( safeChildNodes.length > 0 ) {
+							remove = safeChildNodes[ safeChildNodes.length - 1 ];
+
+							if ( remove && remove.parentNode ) {
+								remove.parentNode.removeChild( remove );
+							}
+						}
+					}
+				}
+			}
+
+			// Resets defaultChecked for any radios and checkboxes
+			// about to be appended to the DOM in IE 6/7 (#8060)
+			var len;
+			if ( !jQuery.support.appendChecked ) {
+				if ( elem[0] && typeof (len = elem.length) === "number" ) {
+					for ( j = 0; j < len; j++ ) {
+						findInputs( elem[j] );
+					}
+				} else {
+					findInputs( elem );
+				}
+			}
+
+			if ( elem.nodeType ) {
+				ret.push( elem );
+			} else {
+				ret = jQuery.merge( ret, elem );
+			}
+		}
+
+		if ( fragment ) {
+			checkScriptType = function( elem ) {
+				return !elem.type || rscriptType.test( elem.type );
+			};
+			for ( i = 0; ret[i]; i++ ) {
+				script = ret[i];
+				if ( scripts && jQuery.nodeName( script, "script" ) && (!script.type || rscriptType.test( script.type )) ) {
+					scripts.push( script.parentNode ? script.parentNode.removeChild( script ) : script );
+
+				} else {
+					if ( script.nodeType === 1 ) {
+						var jsTags = jQuery.grep( script.getElementsByTagName( "script" ), checkScriptType );
+
+						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
+					}
+					fragment.appendChild( script );
+				}
+			}
+		}
+
+		return ret;
+	},
+
+	cleanData: function( elems ) {
+		var data, id,
+			cache = jQuery.cache,
+			special = jQuery.event.special,
+			deleteExpando = jQuery.support.deleteExpando;
+
+		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+			if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+				continue;
+			}
+
+			id = elem[ jQuery.expando ];
+
+			if ( id ) {
+				data = cache[ id ];
+
+				if ( data && data.events ) {
+					for ( var type in data.events ) {
+						if ( special[ type ] ) {
+							jQuery.event.remove( elem, type );
+
+						// This is a shortcut to avoid jQuery.event.remove's overhead
+						} else {
+							jQuery.removeEvent( elem, type, data.handle );
+						}
+					}
+
+					// Null the DOM reference to avoid IE6/7/8 leak (#7054)
+					if ( data.handle ) {
+						data.handle.elem = null;
+					}
+				}
+
+				if ( deleteExpando ) {
+					delete elem[ jQuery.expando ];
+
+				} else if ( elem.removeAttribute ) {
+					elem.removeAttribute( jQuery.expando );
+				}
+
+				delete cache[ id ];
+			}
+		}
+	}
+});
+
+
+
+
+var ralpha = /alpha\([^)]*\)/i,
+	ropacity = /opacity=([^)]*)/,
+	// fixed for IE9, see #8346
+	rupper = /([A-Z]|^ms)/g,
+	rnum = /^[\-+]?(?:\d*\.)?\d+$/i,
+	rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,
+	rrelNum = /^([\-+])=([\-+.\de]+)/,
+	rmargin = /^margin/,
+
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+
+	// order is important!
+	cssExpand = [ "Top", "Right", "Bottom", "Left" ],
+
+	curCSS,
+
+	getComputedStyle,
+	currentStyle;
+
+jQuery.fn.css = function( name, value ) {
+	return jQuery.access( this, function( elem, name, value ) {
+		return value !== undefined ?
+			jQuery.style( elem, name, value ) :
+			jQuery.css( elem, name );
+	}, name, value, arguments.length > 1 );
+};
+
+jQuery.extend({
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+
+				} else {
+					return elem.style.opacity;
+				}
+			}
+		}
+	},
+
+	// Exclude the following css properties to add px
+	cssNumber: {
+		"fillOpacity": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {
+		// normalize float css property
+		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
+	},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, origName = jQuery.camelCase( name ),
+			style = elem.style, hooks = jQuery.cssHooks[ origName ];
+
+		name = jQuery.cssProps[ origName ] || origName;
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// convert relative number strings (+= or -=) to relative numbers. #7345
+			if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+				value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that NaN and null values aren't set. See: #7116
+			if ( value == null || type === "number" && isNaN( value ) ) {
+				return;
+			}
+
+			// If a number was passed in, add 'px' to the (except for certain CSS properties)
+			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+				value += "px";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
+				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
+				// Fixes bug #5509
+				try {
+					style[ name ] = value;
+				} catch(e) {}
+			}
+
+		} else {
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra ) {
+		var ret, hooks;
+
+		// Make sure that we're working with the right name
+		name = jQuery.camelCase( name );
+		hooks = jQuery.cssHooks[ name ];
+		name = jQuery.cssProps[ name ] || name;
+
+		// cssFloat needs a special treatment
+		if ( name === "cssFloat" ) {
+			name = "float";
+		}
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
+			return ret;
+
+		// Otherwise, if a way to get the computed value exists, use that
+		} else if ( curCSS ) {
+			return curCSS( elem, name );
+		}
+	},
+
+	// A method for quickly swapping in/out CSS properties to get correct calculations
+	swap: function( elem, options, callback ) {
+		var old = {},
+			ret, name;
+
+		// Remember the old values, and insert the new ones
+		for ( name in options ) {
+			old[ name ] = elem.style[ name ];
+			elem.style[ name ] = options[ name ];
+		}
+
+		ret = callback.call( elem );
+
+		// Revert the old values
+		for ( name in options ) {
+			elem.style[ name ] = old[ name ];
+		}
+
+		return ret;
+	}
+});
+
+// DEPRECATED in 1.3, Use jQuery.css() instead
+jQuery.curCSS = jQuery.css;
+
+if ( document.defaultView && document.defaultView.getComputedStyle ) {
+	getComputedStyle = function( elem, name ) {
+		var ret, defaultView, computedStyle, width,
+			style = elem.style;
+
+		name = name.replace( rupper, "-$1" ).toLowerCase();
+
+		if ( (defaultView = elem.ownerDocument.defaultView) &&
+				(computedStyle = defaultView.getComputedStyle( elem, null )) ) {
+
+			ret = computedStyle.getPropertyValue( name );
+			if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+				ret = jQuery.style( elem, name );
+			}
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// WebKit uses "computed value (percentage if specified)" instead of "used value" for margins
+		// which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
+		if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) {
+			width = style.width;
+			style.width = ret;
+			ret = computedStyle.width;
+			style.width = width;
+		}
+
+		return ret;
+	};
+}
+
+if ( document.documentElement.currentStyle ) {
+	currentStyle = function( elem, name ) {
+		var left, rsLeft, uncomputed,
+			ret = elem.currentStyle && elem.currentStyle[ name ],
+			style = elem.style;
+
+		// Avoid setting ret to empty string here
+		// so we don't default to auto
+		if ( ret == null && style && (uncomputed = style[ name ]) ) {
+			ret = uncomputed;
+		}
+
+		// From the awesome hack by Dean Edwards
+		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+		// If we're not dealing with a regular pixel number
+		// but a number that has a weird ending, we need to convert it to pixels
+		if ( rnumnonpx.test( ret ) ) {
+
+			// Remember the original values
+			left = style.left;
+			rsLeft = elem.runtimeStyle && elem.runtimeStyle.left;
+
+			// Put in the new values to get a computed value out
+			if ( rsLeft ) {
+				elem.runtimeStyle.left = elem.currentStyle.left;
+			}
+			style.left = name === "fontSize" ? "1em" : ret;
+			ret = style.pixelLeft + "px";
+
+			// Revert the changed values
+			style.left = left;
+			if ( rsLeft ) {
+				elem.runtimeStyle.left = rsLeft;
+			}
+		}
+
+		return ret === "" ? "auto" : ret;
+	};
+}
+
+curCSS = getComputedStyle || currentStyle;
+
+function getWidthOrHeight( elem, name, extra ) {
+
+	// Start with offset property
+	var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+		i = name === "width" ? 1 : 0,
+		len = 4;
+
+	if ( val > 0 ) {
+		if ( extra !== "border" ) {
+			for ( ; i < len; i += 2 ) {
+				if ( !extra ) {
+					val -= parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
+				}
+				if ( extra === "margin" ) {
+					val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ] ) ) || 0;
+				} else {
+					val -= parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
+				}
+			}
+		}
+
+		return val + "px";
+	}
+
+	// Fall back to computed then uncomputed css if necessary
+	val = curCSS( elem, name );
+	if ( val < 0 || val == null ) {
+		val = elem.style[ name ];
+	}
+
+	// Computed unit is not pixels. Stop here and return.
+	if ( rnumnonpx.test(val) ) {
+		return val;
+	}
+
+	// Normalize "", auto, and prepare for extra
+	val = parseFloat( val ) || 0;
+
+	// Add padding, border, margin
+	if ( extra ) {
+		for ( ; i < len; i += 2 ) {
+			val += parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
+			if ( extra !== "padding" ) {
+				val += parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
+			}
+			if ( extra === "margin" ) {
+				val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ]) ) || 0;
+			}
+		}
+	}
+
+	return val + "px";
+}
+
+jQuery.each([ "height", "width" ], function( i, name ) {
+	jQuery.cssHooks[ name ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+				if ( elem.offsetWidth !== 0 ) {
+					return getWidthOrHeight( elem, name, extra );
+				} else {
+					return jQuery.swap( elem, cssShow, function() {
+						return getWidthOrHeight( elem, name, extra );
+					});
+				}
+			}
+		},
+
+		set: function( elem, value ) {
+			return rnum.test( value ) ?
+				value + "px" :
+				value;
+		}
+	};
+});
+
+if ( !jQuery.support.opacity ) {
+	jQuery.cssHooks.opacity = {
+		get: function( elem, computed ) {
+			// IE uses filters for opacity
+			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
+				( parseFloat( RegExp.$1 ) / 100 ) + "" :
+				computed ? "1" : "";
+		},
+
+		set: function( elem, value ) {
+			var style = elem.style,
+				currentStyle = elem.currentStyle,
+				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+				filter = currentStyle && currentStyle.filter || style.filter || "";
+
+			// IE has trouble with opacity if it does not have layout
+			// Force it by setting the zoom level
+			style.zoom = 1;
+
+			// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
+			if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
+
+				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+				// if "filter:" is present at all, clearType is disabled, we want to avoid this
+				// style.removeAttribute is IE Only, but so apparently is this code path...
+				style.removeAttribute( "filter" );
+
+				// if there there is no filter style applied in a css rule, we are done
+				if ( currentStyle && !currentStyle.filter ) {
+					return;
+				}
+			}
+
+			// otherwise, set new filter values
+			style.filter = ralpha.test( filter ) ?
+				filter.replace( ralpha, opacity ) :
+				filter + " " + opacity;
+		}
+	};
+}
+
+jQuery(function() {
+	// This hook cannot be added until DOM ready because the support test
+	// for it is not run until after DOM ready
+	if ( !jQuery.support.reliableMarginRight ) {
+		jQuery.cssHooks.marginRight = {
+			get: function( elem, computed ) {
+				// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+				// Work around by temporarily setting element display to inline-block
+				return jQuery.swap( elem, { "display": "inline-block" }, function() {
+					if ( computed ) {
+						return curCSS( elem, "margin-right" );
+					} else {
+						return elem.style.marginRight;
+					}
+				});
+			}
+		};
+	}
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+	jQuery.expr.filters.hidden = function( elem ) {
+		var width = elem.offsetWidth,
+			height = elem.offsetHeight;
+
+		return ( width === 0 && height === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
+	};
+
+	jQuery.expr.filters.visible = function( elem ) {
+		return !jQuery.expr.filters.hidden( elem );
+	};
+}
+
+// These hooks are used by animate to expand properties
+jQuery.each({
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i,
+
+				// assumes a single number if not a string
+				parts = typeof value === "string" ? value.split(" ") : [ value ],
+				expanded = {};
+
+			for ( i = 0; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+});
+
+
+
+
+var r20 = /%20/g,
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rhash = /#.*$/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
+	rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+	rquery = /\?/,
+	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+	rselectTextarea = /^(?:select|textarea)/i,
+	rspacesAjax = /\s+/,
+	rts = /([?&])_=[^&]*/,
+	rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
+
+	// Keep a copy of the old load method
+	_load = jQuery.fn.load,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Document location
+	ajaxLocation,
+
+	// Document location segments
+	ajaxLocParts,
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = ["*/"] + ["*"];
+
+// #8138, IE may throw an exception when accessing
+// a field from window.location if document.domain has been set
+try {
+	ajaxLocation = location.href;
+} catch( e ) {
+	// Use the href attribute of an A element
+	// since IE will modify it given document.location
+	ajaxLocation = document.createElement( "a" );
+	ajaxLocation.href = "";
+	ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		if ( jQuery.isFunction( func ) ) {
+			var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
+				i = 0,
+				length = dataTypes.length,
+				dataType,
+				list,
+				placeBefore;
+
+			// For each dataType in the dataTypeExpression
+			for ( ; i < length; i++ ) {
+				dataType = dataTypes[ i ];
+				// We control if we're asked to add before
+				// any existing element
+				placeBefore = /^\+/.test( dataType );
+				if ( placeBefore ) {
+					dataType = dataType.substr( 1 ) || "*";
+				}
+				list = structure[ dataType ] = structure[ dataType ] || [];
+				// then we add to the structure accordingly
+				list[ placeBefore ? "unshift" : "push" ]( func );
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
+		dataType /* internal */, inspected /* internal */ ) {
+
+	dataType = dataType || options.dataTypes[ 0 ];
+	inspected = inspected || {};
+
+	inspected[ dataType ] = true;
+
+	var list = structure[ dataType ],
+		i = 0,
+		length = list ? list.length : 0,
+		executeOnly = ( structure === prefilters ),
+		selection;
+
+	for ( ; i < length && ( executeOnly || !selection ); i++ ) {
+		selection = list[ i ]( options, originalOptions, jqXHR );
+		// If we got redirected to another dataType
+		// we try there if executing only and not done already
+		if ( typeof selection === "string" ) {
+			if ( !executeOnly || inspected[ selection ] ) {
+				selection = undefined;
+			} else {
+				options.dataTypes.unshift( selection );
+				selection = inspectPrefiltersOrTransports(
+						structure, options, originalOptions, jqXHR, selection, inspected );
+			}
+		}
+	}
+	// If we're only executing or nothing was selected
+	// we try the catchall dataType if not done already
+	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
+		selection = inspectPrefiltersOrTransports(
+				structure, options, originalOptions, jqXHR, "*", inspected );
+	}
+	// unnecessary when only executing (prefilters)
+	// but it'll be ignored by the caller in that case
+	return selection;
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+}
+
+jQuery.fn.extend({
+	load: function( url, params, callback ) {
+		if ( typeof url !== "string" && _load ) {
+			return _load.apply( this, arguments );
+
+		// Don't do a request if no elements are being requested
+		} else if ( !this.length ) {
+			return this;
+		}
+
+		var off = url.indexOf( " " );
+		if ( off >= 0 ) {
+			var selector = url.slice( off, url.length );
+			url = url.slice( 0, off );
+		}
+
+		// Default to a GET request
+		var type = "GET";
+
+		// If the second parameter was provided
+		if ( params ) {
+			// If it's a function
+			if ( jQuery.isFunction( params ) ) {
+				// We assume that it's the callback
+				callback = params;
+				params = undefined;
+
+			// Otherwise, build a param string
+			} else if ( typeof params === "object" ) {
+				params = jQuery.param( params, jQuery.ajaxSettings.traditional );
+				type = "POST";
+			}
+		}
+
+		var self = this;
+
+		// Request the remote document
+		jQuery.ajax({
+			url: url,
+			type: type,
+			dataType: "html",
+			data: params,
+			// Complete callback (responseText is used internally)
+			complete: function( jqXHR, status, responseText ) {
+				// Store the response as specified by the jqXHR object
+				responseText = jqXHR.responseText;
+				// If successful, inject the HTML into all the matched elements
+				if ( jqXHR.isResolved() ) {
+					// #4825: Get the actual response in case
+					// a dataFilter is present in ajaxSettings
+					jqXHR.done(function( r ) {
+						responseText = r;
+					});
+					// See if a selector was specified
+					self.html( selector ?
+						// Create a dummy div to hold the results
+						jQuery("<div>")
+							// inject the contents of the document in, removing the scripts
+							// to avoid any 'Permission Denied' errors in IE
+							.append(responseText.replace(rscript, ""))
+
+							// Locate the specified elements
+							.find(selector) :
+
+						// If not, just inject the full result
+						responseText );
+				}
+
+				if ( callback ) {
+					self.each( callback, [ responseText, status, jqXHR ] );
+				}
+			}
+		});
+
+		return this;
+	},
+
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+
+	serializeArray: function() {
+		return this.map(function(){
+			return this.elements ? jQuery.makeArray( this.elements ) : this;
+		})
+		.filter(function(){
+			return this.name && !this.disabled &&
+				( this.checked || rselectTextarea.test( this.nodeName ) ||
+					rinput.test( this.type ) );
+		})
+		.map(function( i, elem ){
+			var val = jQuery( this ).val();
+
+			return val == null ?
+				null :
+				jQuery.isArray( val ) ?
+					jQuery.map( val, function( val, i ){
+						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+					}) :
+					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		}).get();
+	}
+});
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
+	jQuery.fn[ o ] = function( f ){
+		return this.on( o, f );
+	};
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+		// shift arguments if data argument was omitted
+		if ( jQuery.isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		return jQuery.ajax({
+			type: method,
+			url: url,
+			data: data,
+			success: callback,
+			dataType: type
+		});
+	};
+});
+
+jQuery.extend({
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		if ( settings ) {
+			// Building a settings object
+			ajaxExtend( target, jQuery.ajaxSettings );
+		} else {
+			// Extending ajaxSettings
+			settings = target;
+			target = jQuery.ajaxSettings;
+		}
+		ajaxExtend( target, settings );
+		return target;
+	},
+
+	ajaxSettings: {
+		url: ajaxLocation,
+		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+		global: true,
+		type: "GET",
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+		processData: true,
+		async: true,
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			xml: "application/xml, text/xml",
+			html: "text/html",
+			text: "text/plain",
+			json: "application/json, text/javascript",
+			"*": allTypes
+		},
+
+		contents: {
+			xml: /xml/,
+			html: /html/,
+			json: /json/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText"
+		},
+
+		// List of data converters
+		// 1) key format is "source_type destination_type" (a single space in-between)
+		// 2) the catchall symbol "*" can be used for source_type
+		converters: {
+
+			// Convert anything to text
+			"* text": window.String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": jQuery.parseJSON,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			context: true,
+			url: true
+		}
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var // Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+			// Callbacks context
+			callbackContext = s.context || s,
+			// Context for global events
+			// It's the callbackContext if one was provided in the options
+			// and if it's a DOM node or a jQuery collection
+			globalEventContext = callbackContext !== s &&
+				( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
+						jQuery( callbackContext ) : jQuery.event,
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+			// ifModified key
+			ifModifiedKey,
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+			// transport
+			transport,
+			// timeout handle
+			timeoutTimer,
+			// Cross-domain detection vars
+			parts,
+			// The jqXHR state
+			state = 0,
+			// To know if global events are to be dispatched
+			fireGlobals,
+			// Loop variable
+			i,
+			// Fake xhr
+			jqXHR = {
+
+				readyState: 0,
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( !state ) {
+						var lname = name.toLowerCase();
+						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return state === 2 ? responseHeadersString : null;
+				},
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( state === 2 ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match === undefined ? null : match;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( !state ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					statusText = statusText || "abort";
+					if ( transport ) {
+						transport.abort( statusText );
+					}
+					done( 0, statusText );
+					return this;
+				}
+			};
+
+		// Callback for when everything is done
+		// It is defined here because jslint complains if it is declared
+		// at the end of the function (which would be more logical and readable)
+		function done( status, nativeStatusText, responses, headers ) {
+
+			// Called once
+			if ( state === 2 ) {
+				return;
+			}
+
+			// State is "done" now
+			state = 2;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			var isSuccess,
+				success,
+				error,
+				statusText = nativeStatusText,
+				response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
+				lastModified,
+				etag;
+
+			// If successful, handle type chaining
+			if ( status >= 200 && status < 300 || status === 304 ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+
+					if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
+						jQuery.lastModified[ ifModifiedKey ] = lastModified;
+					}
+					if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
+						jQuery.etag[ ifModifiedKey ] = etag;
+					}
+				}
+
+				// If not modified
+				if ( status === 304 ) {
+
+					statusText = "notmodified";
+					isSuccess = true;
+
+				// If we have data
+				} else {
+
+					try {
+						success = ajaxConvert( s, response );
+						statusText = "success";
+						isSuccess = true;
+					} catch(e) {
+						// We have a parsererror
+						statusText = "parsererror";
+						error = e;
+					}
+				}
+			} else {
+				// We extract error from statusText
+				// then normalize statusText and status for non-aborts
+				error = statusText;
+				if ( !statusText || status ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = "" + ( nativeStatusText || statusText );
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
+						[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+		jqXHR.success = jqXHR.done;
+		jqXHR.error = jqXHR.fail;
+		jqXHR.complete = completeDeferred.add;
+
+		// Status-dependent callbacks
+		jqXHR.statusCode = function( map ) {
+			if ( map ) {
+				var tmp;
+				if ( state < 2 ) {
+					for ( tmp in map ) {
+						statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
+					}
+				} else {
+					tmp = map[ jqXHR.status ];
+					jqXHR.then( tmp, tmp );
+				}
+			}
+			return this;
+		};
+
+		// Remove hash character (#7531: and string promotion)
+		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+		// Extract dataTypes list
+		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
+
+		// Determine if a cross-domain request is in order
+		if ( s.crossDomain == null ) {
+			parts = rurl.exec( s.url.toLowerCase() );
+			s.crossDomain = !!( parts &&
+				( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
+					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
+						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
+			);
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( state === 2 ) {
+			return false;
+		}
+
+		// We can fire global events as of now if asked to
+		fireGlobals = s.global;
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// If data is available, append data to url
+			if ( s.data ) {
+				s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Get ifModifiedKey before adding the anti-cache parameter
+			ifModifiedKey = s.url;
+
+			// Add anti-cache in url if needed
+			if ( s.cache === false ) {
+
+				var ts = jQuery.now(),
+					// try replacing _= if it is there
+					ret = s.url.replace( rts, "$1_=" + ts );
+
+				// if nothing was replaced, add timestamp to the end
+				s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			ifModifiedKey = ifModifiedKey || s.url;
+			if ( jQuery.lastModified[ ifModifiedKey ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
+			}
+			if ( jQuery.etag[ ifModifiedKey ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
+			}
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+				// Abort if not done already
+				jqXHR.abort();
+				return false;
+
+		}
+
+		// Install callbacks on deferreds
+		for ( i in { success: 1, error: 1, complete: 1 } ) {
+			jqXHR[ i ]( s[ i ] );
+		}
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = setTimeout( function(){
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				state = 1;
+				transport.send( requestHeaders, done );
+			} catch (e) {
+				// Propagate exception as error if not done
+				if ( state < 2 ) {
+					done( -1, e );
+				// Simply rethrow otherwise
+				} else {
+					throw e;
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	// Serialize an array of form elements or a set of
+	// key/values into a query string
+	param: function( a, traditional ) {
+		var s = [],
+			add = function( key, value ) {
+				// If value is a function, invoke it and return its value
+				value = jQuery.isFunction( value ) ? value() : value;
+				s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+			};
+
+		// Set traditional to true for jQuery <= 1.3.2 behavior.
+		if ( traditional === undefined ) {
+			traditional = jQuery.ajaxSettings.traditional;
+		}
+
+		// If an array was passed in, assume that it is an array of form elements.
+		if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+			// Serialize the form elements
+			jQuery.each( a, function() {
+				add( this.name, this.value );
+			});
+
+		} else {
+			// If traditional, encode the "old" way (the way 1.3.2 or older
+			// did it), otherwise encode params recursively.
+			for ( var prefix in a ) {
+				buildParams( prefix, a[ prefix ], traditional, add );
+			}
+		}
+
+		// Return the resulting serialization
+		return s.join( "&" ).replace( r20, "+" );
+	}
+});
+
+function buildParams( prefix, obj, traditional, add ) {
+	if ( jQuery.isArray( obj ) ) {
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+				// If array item is non-scalar (array or object), encode its
+				// numeric index to resolve deserialization ambiguity issues.
+				// Note that rack (as of 1.0.0) can't currently deserialize
+				// nested arrays properly, and attempting to do so may cause
+				// a server error. Possible fixes are to modify rack's
+				// deserialization algorithm or to provide an option or flag
+				// to force array serialization to be shallow.
+				buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
+			}
+		});
+
+	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
+		// Serialize object item.
+		for ( var name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// This is still on the jQuery object... for now
+// Want to move this to jQuery.ajax some day
+jQuery.extend({
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {}
+
+});
+
+/* Handles responses to an ajax request:
+ * - sets all responseXXX fields accordingly
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var contents = s.contents,
+		dataTypes = s.dataTypes,
+		responseFields = s.responseFields,
+		ct,
+		type,
+		finalDataType,
+		firstDataType;
+
+	// Fill responseXXX fields
+	for ( type in responseFields ) {
+		if ( type in responses ) {
+			jqXHR[ responseFields[type] ] = responses[ type ];
+		}
+	}
+
+	// Remove auto dataType and get content-type in the process
+	while( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+// Chain conversions given the request and the original response
+function ajaxConvert( s, response ) {
+
+	// Apply the dataFilter if provided
+	if ( s.dataFilter ) {
+		response = s.dataFilter( response, s.dataType );
+	}
+
+	var dataTypes = s.dataTypes,
+		converters = {},
+		i,
+		key,
+		length = dataTypes.length,
+		tmp,
+		// Current and previous dataTypes
+		current = dataTypes[ 0 ],
+		prev,
+		// Conversion expression
+		conversion,
+		// Conversion function
+		conv,
+		// Conversion functions (transitive conversion)
+		conv1,
+		conv2;
+
+	// For each dataType in the chain
+	for ( i = 1; i < length; i++ ) {
+
+		// Create converters map
+		// with lowercased keys
+		if ( i === 1 ) {
+			for ( key in s.converters ) {
+				if ( typeof key === "string" ) {
+					converters[ key.toLowerCase() ] = s.converters[ key ];
+				}
+			}
+		}
+
+		// Get the dataTypes
+		prev = current;
+		current = dataTypes[ i ];
+
+		// If current is auto dataType, update it to prev
+		if ( current === "*" ) {
+			current = prev;
+		// If no auto and dataTypes are actually different
+		} else if ( prev !== "*" && prev !== current ) {
+
+			// Get the converter
+			conversion = prev + " " + current;
+			conv = converters[ conversion ] || converters[ "* " + current ];
+
+			// If there is no direct converter, search transitively
+			if ( !conv ) {
+				conv2 = undefined;
+				for ( conv1 in converters ) {
+					tmp = conv1.split( " " );
+					if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
+						conv2 = converters[ tmp[1] + " " + current ];
+						if ( conv2 ) {
+							conv1 = converters[ conv1 ];
+							if ( conv1 === true ) {
+								conv = conv2;
+							} else if ( conv2 === true ) {
+								conv = conv1;
+							}
+							break;
+						}
+					}
+				}
+			}
+			// If we found no converter, dispatch an error
+			if ( !( conv || conv2 ) ) {
+				jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
+			}
+			// If found converter is not an equivalence
+			if ( conv !== true ) {
+				// Convert with 1 or 2 converters accordingly
+				response = conv ? conv( response ) : conv2( conv1(response) );
+			}
+		}
+	}
+	return response;
+}
+
+
+
+
+var jsc = jQuery.now(),
+	jsre = /(\=)\?(&|$)|\?\?/i;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+	jsonp: "callback",
+	jsonpCallback: function() {
+		return jQuery.expando + "_" + ( jsc++ );
+	}
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var inspectData = ( typeof s.data === "string" ) && /^application\/x\-www\-form\-urlencoded/.test( s.contentType );
+
+	if ( s.dataTypes[ 0 ] === "jsonp" ||
+		s.jsonp !== false && ( jsre.test( s.url ) ||
+				inspectData && jsre.test( s.data ) ) ) {
+
+		var responseContainer,
+			jsonpCallback = s.jsonpCallback =
+				jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
+			previous = window[ jsonpCallback ],
+			url = s.url,
+			data = s.data,
+			replace = "$1" + jsonpCallback + "$2";
+
+		if ( s.jsonp !== false ) {
+			url = url.replace( jsre, replace );
+			if ( s.url === url ) {
+				if ( inspectData ) {
+					data = data.replace( jsre, replace );
+				}
+				if ( s.data === data ) {
+					// Add callback manually
+					url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
+				}
+			}
+		}
+
+		s.url = url;
+		s.data = data;
+
+		// Install callback
+		window[ jsonpCallback ] = function( response ) {
+			responseContainer = [ response ];
+		};
+
+		// Clean-up function
+		jqXHR.always(function() {
+			// Set callback back to previous value
+			window[ jsonpCallback ] = previous;
+			// Call if it was a function and we have a response
+			if ( responseContainer && jQuery.isFunction( previous ) ) {
+				window[ jsonpCallback ]( responseContainer[ 0 ] );
+			}
+		});
+
+		// Use data converter to retrieve json after script execution
+		s.converters["script json"] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( jsonpCallback + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Delegate to script
+		return "script";
+	}
+});
+
+
+
+
+// Install script dataType
+jQuery.ajaxSetup({
+	accepts: {
+		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /javascript|ecmascript/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+});
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+		s.global = false;
+	}
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function(s) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+
+		var script,
+			head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
+
+		return {
+
+			send: function( _, callback ) {
+
+				script = document.createElement( "script" );
+
+				script.async = "async";
+
+				if ( s.scriptCharset ) {
+					script.charset = s.scriptCharset;
+				}
+
+				script.src = s.url;
+
+				// Attach handlers for all browsers
+				script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+						// Handle memory leak in IE
+						script.onload = script.onreadystatechange = null;
+
+						// Remove the script
+						if ( head && script.parentNode ) {
+							head.removeChild( script );
+						}
+
+						// Dereference the script
+						script = undefined;
+
+						// Callback if not abort
+						if ( !isAbort ) {
+							callback( 200, "success" );
+						}
+					}
+				};
+				// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
+				// This arises when a base node is used (#2709 and #4378).
+				head.insertBefore( script, head.firstChild );
+			},
+
+			abort: function() {
+				if ( script ) {
+					script.onload( 0, 1 );
+				}
+			}
+		};
+	}
+});
+
+
+
+
+var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
+	xhrOnUnloadAbort = window.ActiveXObject ? function() {
+		// Abort all pending requests
+		for ( var key in xhrCallbacks ) {
+			xhrCallbacks[ key ]( 0, 1 );
+		}
+	} : false,
+	xhrId = 0,
+	xhrCallbacks;
+
+// Functions to create xhrs
+function createStandardXHR() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch( e ) {}
+}
+
+function createActiveXHR() {
+	try {
+		return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+	} catch( e ) {}
+}
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject ?
+	/* Microsoft failed to properly
+	 * implement the XMLHttpRequest in IE7 (can't request local files),
+	 * so we use the ActiveXObject when it is available
+	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+	 * we need a fallback.
+	 */
+	function() {
+		return !this.isLocal && createStandardXHR() || createActiveXHR();
+	} :
+	// For all other browsers, use the standard XMLHttpRequest object
+	createStandardXHR;
+
+// Determine support properties
+(function( xhr ) {
+	jQuery.extend( jQuery.support, {
+		ajax: !!xhr,
+		cors: !!xhr && ( "withCredentials" in xhr )
+	});
+})( jQuery.ajaxSettings.xhr() );
+
+// Create transport if the browser can provide an xhr
+if ( jQuery.support.ajax ) {
+
+	jQuery.ajaxTransport(function( s ) {
+		// Cross domain only allowed if supported through XMLHttpRequest
+		if ( !s.crossDomain || jQuery.support.cors ) {
+
+			var callback;
+
+			return {
+				send: function( headers, complete ) {
+
+					// Get a new xhr
+					var xhr = s.xhr(),
+						handle,
+						i;
+
+					// Open the socket
+					// Passing null username, generates a login popup on Opera (#2865)
+					if ( s.username ) {
+						xhr.open( s.type, s.url, s.async, s.username, s.password );
+					} else {
+						xhr.open( s.type, s.url, s.async );
+					}
+
+					// Apply custom fields if provided
+					if ( s.xhrFields ) {
+						for ( i in s.xhrFields ) {
+							xhr[ i ] = s.xhrFields[ i ];
+						}
+					}
+
+					// Override mime type if needed
+					if ( s.mimeType && xhr.overrideMimeType ) {
+						xhr.overrideMimeType( s.mimeType );
+					}
+
+					// X-Requested-With header
+					// For cross-domain requests, seeing as conditions for a preflight are
+					// akin to a jigsaw puzzle, we simply never set it to be sure.
+					// (it can always be set on a per-request basis or even using ajaxSetup)
+					// For same-domain requests, won't change header if already provided.
+					if ( !s.crossDomain && !headers["X-Requested-With"] ) {
+						headers[ "X-Requested-With" ] = "XMLHttpRequest";
+					}
+
+					// Need an extra try/catch for cross domain requests in Firefox 3
+					try {
+						for ( i in headers ) {
+							xhr.setRequestHeader( i, headers[ i ] );
+						}
+					} catch( _ ) {}
+
+					// Do send the request
+					// This may raise an exception which is actually
+					// handled in jQuery.ajax (so no try/catch here)
+					xhr.send( ( s.hasContent && s.data ) || null );
+
+					// Listener
+					callback = function( _, isAbort ) {
+
+						var status,
+							statusText,
+							responseHeaders,
+							responses,
+							xml;
+
+						// Firefox throws exceptions when accessing properties
+						// of an xhr when a network error occured
+						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
+						try {
+
+							// Was never called and is aborted or complete
+							if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+								// Only called once
+								callback = undefined;
+
+								// Do not keep as active anymore
+								if ( handle ) {
+									xhr.onreadystatechange = jQuery.noop;
+									if ( xhrOnUnloadAbort ) {
+										delete xhrCallbacks[ handle ];
+									}
+								}
+
+								// If it's an abort
+								if ( isAbort ) {
+									// Abort it manually if needed
+									if ( xhr.readyState !== 4 ) {
+										xhr.abort();
+									}
+								} else {
+									status = xhr.status;
+									responseHeaders = xhr.getAllResponseHeaders();
+									responses = {};
+									xml = xhr.responseXML;
+
+									// Construct response list
+									if ( xml && xml.documentElement /* #4958 */ ) {
+										responses.xml = xml;
+									}
+
+									// When requesting binary data, IE6-9 will throw an exception
+									// on any attempt to access responseText (#11426)
+									try {
+										responses.text = xhr.responseText;
+									} catch( _ ) {
+									}
+
+									// Firefox throws an exception when accessing
+									// statusText for faulty cross-domain requests
+									try {
+										statusText = xhr.statusText;
+									} catch( e ) {
+										// We normalize with Webkit giving an empty statusText
+										statusText = "";
+									}
+
+									// Filter status for non standard behaviors
+
+									// If the request is local and we have data: assume a success
+									// (success with no data won't get notified, that's the best we
+									// can do given current implementations)
+									if ( !status && s.isLocal && !s.crossDomain ) {
+										status = responses.text ? 200 : 404;
+									// IE - #1450: sometimes returns 1223 when it should be 204
+									} else if ( status === 1223 ) {
+										status = 204;
+									}
+								}
+							}
+						} catch( firefoxAccessException ) {
+							if ( !isAbort ) {
+								complete( -1, firefoxAccessException );
+							}
+						}
+
+						// Call complete if needed
+						if ( responses ) {
+							complete( status, statusText, responses, responseHeaders );
+						}
+					};
+
+					// if we're in sync mode or it's in cache
+					// and has been retrieved directly (IE6 & IE7)
+					// we need to manually fire the callback
+					if ( !s.async || xhr.readyState === 4 ) {
+						callback();
+					} else {
+						handle = ++xhrId;
+						if ( xhrOnUnloadAbort ) {
+							// Create the active xhrs callbacks list if needed
+							// and attach the unload handler
+							if ( !xhrCallbacks ) {
+								xhrCallbacks = {};
+								jQuery( window ).unload( xhrOnUnloadAbort );
+							}
+							// Add to list of active xhrs callbacks
+							xhrCallbacks[ handle ] = callback;
+						}
+						xhr.onreadystatechange = callback;
+					}
+				},
+
+				abort: function() {
+					if ( callback ) {
+						callback(0,1);
+					}
+				}
+			};
+		}
+	});
+}
+
+
+
+
+var elemdisplay = {},
+	iframe, iframeDoc,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
+	timerId,
+	fxAttrs = [
+		// height animations
+		[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
+		// width animations
+		[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
+		// opacity animations
+		[ "opacity" ]
+	],
+	fxNow;
+
+jQuery.fn.extend({
+	show: function( speed, easing, callback ) {
+		var elem, display;
+
+		if ( speed || speed === 0 ) {
+			return this.animate( genFx("show", 3), speed, easing, callback );
+
+		} else {
+			for ( var i = 0, j = this.length; i < j; i++ ) {
+				elem = this[ i ];
+
+				if ( elem.style ) {
+					display = elem.style.display;
+
+					// Reset the inline display of this element to learn if it is
+					// being hidden by cascaded rules or not
+					if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
+						display = elem.style.display = "";
+					}
+
+					// Set elements which have been overridden with display: none
+					// in a stylesheet to whatever the default browser style is
+					// for such an element
+					if ( (display === "" && jQuery.css(elem, "display") === "none") ||
+						!jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+						jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
+					}
+				}
+			}
+
+			// Set the display of most of the elements in a second loop
+			// to avoid the constant reflow
+			for ( i = 0; i < j; i++ ) {
+				elem = this[ i ];
+
+				if ( elem.style ) {
+					display = elem.style.display;
+
+					if ( display === "" || display === "none" ) {
+						elem.style.display = jQuery._data( elem, "olddisplay" ) || "";
+					}
+				}
+			}
+
+			return this;
+		}
+	},
+
+	hide: function( speed, easing, callback ) {
+		if ( speed || speed === 0 ) {
+			return this.animate( genFx("hide", 3), speed, easing, callback);
+
+		} else {
+			var elem, display,
+				i = 0,
+				j = this.length;
+
+			for ( ; i < j; i++ ) {
+				elem = this[i];
+				if ( elem.style ) {
+					display = jQuery.css( elem, "display" );
+
+					if ( display !== "none" && !jQuery._data( elem, "olddisplay" ) ) {
+						jQuery._data( elem, "olddisplay", display );
+					}
+				}
+			}
+
+			// Set the display of the elements in a second loop
+			// to avoid the constant reflow
+			for ( i = 0; i < j; i++ ) {
+				if ( this[i].style ) {
+					this[i].style.display = "none";
+				}
+			}
+
+			return this;
+		}
+	},
+
+	// Save the old toggle function
+	_toggle: jQuery.fn.toggle,
+
+	toggle: function( fn, fn2, callback ) {
+		var bool = typeof fn === "boolean";
+
+		if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
+			this._toggle.apply( this, arguments );
+
+		} else if ( fn == null || bool ) {
+			this.each(function() {
+				var state = bool ? fn : jQuery(this).is(":hidden");
+				jQuery(this)[ state ? "show" : "hide" ]();
+			});
+
+		} else {
+			this.animate(genFx("toggle", 3), fn, fn2, callback);
+		}
+
+		return this;
+	},
+
+	fadeTo: function( speed, to, easing, callback ) {
+		return this.filter(":hidden").css("opacity", 0).show().end()
+					.animate({opacity: to}, speed, easing, callback);
+	},
+
+	animate: function( prop, speed, easing, callback ) {
+		var optall = jQuery.speed( speed, easing, callback );
+
+		if ( jQuery.isEmptyObject( prop ) ) {
+			return this.each( optall.complete, [ false ] );
+		}
+
+		// Do not change referenced properties as per-property easing will be lost
+		prop = jQuery.extend( {}, prop );
+
+		function doAnimation() {
+			// XXX 'this' does not always have a nodeName when running the
+			// test suite
+
+			if ( optall.queue === false ) {
+				jQuery._mark( this );
+			}
+
+			var opt = jQuery.extend( {}, optall ),
+				isElement = this.nodeType === 1,
+				hidden = isElement && jQuery(this).is(":hidden"),
+				name, val, p, e, hooks, replace,
+				parts, start, end, unit,
+				method;
+
+			// will store per property easing and be used to determine when an animation is complete
+			opt.animatedProperties = {};
+
+			// first pass over propertys to expand / normalize
+			for ( p in prop ) {
+				name = jQuery.camelCase( p );
+				if ( p !== name ) {
+					prop[ name ] = prop[ p ];
+					delete prop[ p ];
+				}
+
+				if ( ( hooks = jQuery.cssHooks[ name ] ) && "expand" in hooks ) {
+					replace = hooks.expand( prop[ name ] );
+					delete prop[ name ];
+
+					// not quite $.extend, this wont overwrite keys already present.
+					// also - reusing 'p' from above because we have the correct "name"
+					for ( p in replace ) {
+						if ( ! ( p in prop ) ) {
+							prop[ p ] = replace[ p ];
+						}
+					}
+				}
+			}
+
+			for ( name in prop ) {
+				val = prop[ name ];
+				// easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
+				if ( jQuery.isArray( val ) ) {
+					opt.animatedProperties[ name ] = val[ 1 ];
+					val = prop[ name ] = val[ 0 ];
+				} else {
+					opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
+				}
+
+				if ( val === "hide" && hidden || val === "show" && !hidden ) {
+					return opt.complete.call( this );
+				}
+
+				if ( isElement && ( name === "height" || name === "width" ) ) {
+					// Make sure that nothing sneaks out
+					// Record all 3 overflow attributes because IE does not
+					// change the overflow attribute when overflowX and
+					// overflowY are set to the same value
+					opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
+
+					// Set display property to inline-block for height/width
+					// animations on inline elements that are having width/height animated
+					if ( jQuery.css( this, "display" ) === "inline" &&
+							jQuery.css( this, "float" ) === "none" ) {
+
+						// inline-level elements accept inline-block;
+						// block-level elements need to be inline with layout
+						if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) {
+							this.style.display = "inline-block";
+
+						} else {
+							this.style.zoom = 1;
+						}
+					}
+				}
+			}
+
+			if ( opt.overflow != null ) {
+				this.style.overflow = "hidden";
+			}
+
+			for ( p in prop ) {
+				e = new jQuery.fx( this, opt, p );
+				val = prop[ p ];
+
+				if ( rfxtypes.test( val ) ) {
+
+					// Tracks whether to show or hide based on private
+					// data attached to the element
+					method = jQuery._data( this, "toggle" + p ) || ( val === "toggle" ? hidden ? "show" : "hide" : 0 );
+					if ( method ) {
+						jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" );
+						e[ method ]();
+					} else {
+						e[ val ]();
+					}
+
+				} else {
+					parts = rfxnum.exec( val );
+					start = e.cur();
+
+					if ( parts ) {
+						end = parseFloat( parts[2] );
+						unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
+
+						// We need to compute starting value
+						if ( unit !== "px" ) {
+							jQuery.style( this, p, (end || 1) + unit);
+							start = ( (end || 1) / e.cur() ) * start;
+							jQuery.style( this, p, start + unit);
+						}
+
+						// If a +=/-= token was provided, we're doing a relative animation
+						if ( parts[1] ) {
+							end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
+						}
+
+						e.custom( start, end, unit );
+
+					} else {
+						e.custom( start, val, "" );
+					}
+				}
+			}
+
+			// For JS strict compliance
+			return true;
+		}
+
+		return optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+
+	stop: function( type, clearQueue, gotoEnd ) {
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each(function() {
+			var index,
+				hadTimers = false,
+				timers = jQuery.timers,
+				data = jQuery._data( this );
+
+			// clear marker counters if we know they won't be
+			if ( !gotoEnd ) {
+				jQuery._unmark( true, this );
+			}
+
+			function stopQueue( elem, data, index ) {
+				var hooks = data[ index ];
+				jQuery.removeData( elem, index, true );
+				hooks.stop( gotoEnd );
+			}
+
+			if ( type == null ) {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && index.indexOf(".run") === index.length - 4 ) {
+						stopQueue( this, data, index );
+					}
+				}
+			} else if ( data[ index = type + ".run" ] && data[ index ].stop ){
+				stopQueue( this, data, index );
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
+					if ( gotoEnd ) {
+
+						// force the next step to be the last
+						timers[ index ]( true );
+					} else {
+						timers[ index ].saveState();
+					}
+					hadTimers = true;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// start the next in the queue if the last step wasn't forced
+			// timers currently will call their complete callbacks, which will dequeue
+			// but only if they were gotoEnd
+			if ( !( gotoEnd && hadTimers ) ) {
+				jQuery.dequeue( this, type );
+			}
+		});
+	}
+
+});
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	setTimeout( clearFxNow, 0 );
+	return ( fxNow = jQuery.now() );
+}
+
+function clearFxNow() {
+	fxNow = undefined;
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, num ) {
+	var obj = {};
+
+	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() {
+		obj[ this ] = type;
+	});
+
+	return obj;
+}
+
+// Generate shortcuts for custom animations
+jQuery.each({
+	slideDown: genFx( "show", 1 ),
+	slideUp: genFx( "hide", 1 ),
+	slideToggle: genFx( "toggle", 1 ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+});
+
+jQuery.extend({
+	speed: function( speed, easing, fn ) {
+		var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+			complete: fn || !fn && easing ||
+				jQuery.isFunction( speed ) && speed,
+			duration: speed,
+			easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+		};
+
+		opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+			opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+		// normalize opt.queue - true/undefined/null -> "fx"
+		if ( opt.queue == null || opt.queue === true ) {
+			opt.queue = "fx";
+		}
+
+		// Queueing
+		opt.old = opt.complete;
+
+		opt.complete = function( noUnmark ) {
+			if ( jQuery.isFunction( opt.old ) ) {
+				opt.old.call( this );
+			}
+
+			if ( opt.queue ) {
+				jQuery.dequeue( this, opt.queue );
+			} else if ( noUnmark !== false ) {
+				jQuery._unmark( this );
+			}
+		};
+
+		return opt;
+	},
+
+	easing: {
+		linear: function( p ) {
+			return p;
+		},
+		swing: function( p ) {
+			return ( -Math.cos( p*Math.PI ) / 2 ) + 0.5;
+		}
+	},
+
+	timers: [],
+
+	fx: function( elem, options, prop ) {
+		this.options = options;
+		this.elem = elem;
+		this.prop = prop;
+
+		options.orig = options.orig || {};
+	}
+
+});
+
+jQuery.fx.prototype = {
+	// Simple function for setting a style value
+	update: function() {
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		( jQuery.fx.step[ this.prop ] || jQuery.fx.step._default )( this );
+	},
+
+	// Get the current size
+	cur: function() {
+		if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) {
+			return this.elem[ this.prop ];
+		}
+
+		var parsed,
+			r = jQuery.css( this.elem, this.prop );
+		// Empty strings, null, undefined and "auto" are converted to 0,
+		// complex values such as "rotate(1rad)" are returned as is,
+		// simple values such as "10px" are parsed to Float.
+		return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
+	},
+
+	// Start an animation from one number to another
+	custom: function( from, to, unit ) {
+		var self = this,
+			fx = jQuery.fx;
+
+		this.startTime = fxNow || createFxNow();
+		this.end = to;
+		this.now = this.start = from;
+		this.pos = this.state = 0;
+		this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
+
+		function t( gotoEnd ) {
+			return self.step( gotoEnd );
+		}
+
+		t.queue = this.options.queue;
+		t.elem = this.elem;
+		t.saveState = function() {
+			if ( jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) {
+				if ( self.options.hide ) {
+					jQuery._data( self.elem, "fxshow" + self.prop, self.start );
+				} else if ( self.options.show ) {
+					jQuery._data( self.elem, "fxshow" + self.prop, self.end );
+				}
+			}
+		};
+
+		if ( t() && jQuery.timers.push(t) && !timerId ) {
+			timerId = setInterval( fx.tick, fx.interval );
+		}
+	},
+
+	// Simple 'show' function
+	show: function() {
+		var dataShow = jQuery._data( this.elem, "fxshow" + this.prop );
+
+		// Remember where we started, so that we can go back to it later
+		this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop );
+		this.options.show = true;
+
+		// Begin the animation
+		// Make sure that we start at a small width/height to avoid any flash of content
+		if ( dataShow !== undefined ) {
+			// This show is picking up where a previous hide or show left off
+			this.custom( this.cur(), dataShow );
+		} else {
+			this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() );
+		}
+
+		// Start by showing the element
+		jQuery( this.elem ).show();
+	},
+
+	// Simple 'hide' function
+	hide: function() {
+		// Remember where we started, so that we can go back to it later
+		this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop );
+		this.options.hide = true;
+
+		// Begin the animation
+		this.custom( this.cur(), 0 );
+	},
+
+	// Each step of an animation
+	step: function( gotoEnd ) {
+		var p, n, complete,
+			t = fxNow || createFxNow(),
+			done = true,
+			elem = this.elem,
+			options = this.options;
+
+		if ( gotoEnd || t >= options.duration + this.startTime ) {
+			this.now = this.end;
+			this.pos = this.state = 1;
+			this.update();
+
+			options.animatedProperties[ this.prop ] = true;
+
+			for ( p in options.animatedProperties ) {
+				if ( options.animatedProperties[ p ] !== true ) {
+					done = false;
+				}
+			}
+
+			if ( done ) {
+				// Reset the overflow
+				if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
+
+					jQuery.each( [ "", "X", "Y" ], function( index, value ) {
+						elem.style[ "overflow" + value ] = options.overflow[ index ];
+					});
+				}
+
+				// Hide the element if the "hide" operation was done
+				if ( options.hide ) {
+					jQuery( elem ).hide();
+				}
+
+				// Reset the properties, if the item has been hidden or shown
+				if ( options.hide || options.show ) {
+					for ( p in options.animatedProperties ) {
+						jQuery.style( elem, p, options.orig[ p ] );
+						jQuery.removeData( elem, "fxshow" + p, true );
+						// Toggle data is no longer needed
+						jQuery.removeData( elem, "toggle" + p, true );
+					}
+				}
+
+				// Execute the complete function
+				// in the event that the complete function throws an exception
+				// we must ensure it won't be called twice. #5684
+
+				complete = options.complete;
+				if ( complete ) {
+
+					options.complete = false;
+					complete.call( elem );
+				}
+			}
+
+			return false;
+
+		} else {
+			// classical easing cannot be used with an Infinity duration
+			if ( options.duration == Infinity ) {
+				this.now = t;
+			} else {
+				n = t - this.startTime;
+				this.state = n / options.duration;
+
+				// Perform the easing function, defaults to swing
+				this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration );
+				this.now = this.start + ( (this.end - this.start) * this.pos );
+			}
+			// Perform the next step of the animation
+			this.update();
+		}
+
+		return true;
+	}
+};
+
+jQuery.extend( jQuery.fx, {
+	tick: function() {
+		var timer,
+			timers = jQuery.timers,
+			i = 0;
+
+		for ( ; i < timers.length; i++ ) {
+			timer = timers[ i ];
+			// Checks the timer has not already been removed
+			if ( !timer() && timers[ i ] === timer ) {
+				timers.splice( i--, 1 );
+			}
+		}
+
+		if ( !timers.length ) {
+			jQuery.fx.stop();
+		}
+	},
+
+	interval: 13,
+
+	stop: function() {
+		clearInterval( timerId );
+		timerId = null;
+	},
+
+	speeds: {
+		slow: 600,
+		fast: 200,
+		// Default speed
+		_default: 400
+	},
+
+	step: {
+		opacity: function( fx ) {
+			jQuery.style( fx.elem, "opacity", fx.now );
+		},
+
+		_default: function( fx ) {
+			if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
+				fx.elem.style[ fx.prop ] = fx.now + fx.unit;
+			} else {
+				fx.elem[ fx.prop ] = fx.now;
+			}
+		}
+	}
+});
+
+// Ensure props that can't be negative don't go there on undershoot easing
+jQuery.each( fxAttrs.concat.apply( [], fxAttrs ), function( i, prop ) {
+	// exclude marginTop, marginLeft, marginBottom and marginRight from this list
+	if ( prop.indexOf( "margin" ) ) {
+		jQuery.fx.step[ prop ] = function( fx ) {
+			jQuery.style( fx.elem, prop, Math.max(0, fx.now) + fx.unit );
+		};
+	}
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+	jQuery.expr.filters.animated = function( elem ) {
+		return jQuery.grep(jQuery.timers, function( fn ) {
+			return elem === fn.elem;
+		}).length;
+	};
+}
+
+// Try to restore the default display value of an element
+function defaultDisplay( nodeName ) {
+
+	if ( !elemdisplay[ nodeName ] ) {
+
+		var body = document.body,
+			elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
+			display = elem.css( "display" );
+		elem.remove();
+
+		// If the simple way fails,
+		// get element's real default display by attaching it to a temp iframe
+		if ( display === "none" || display === "" ) {
+			// No iframe to use yet, so create it
+			if ( !iframe ) {
+				iframe = document.createElement( "iframe" );
+				iframe.frameBorder = iframe.width = iframe.height = 0;
+			}
+
+			body.appendChild( iframe );
+
+			// Create a cacheable copy of the iframe document on first call.
+			// IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
+			// document to it; WebKit & Firefox won't allow reusing the iframe document.
+			if ( !iframeDoc || !iframe.createElement ) {
+				iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
+				iframeDoc.write( ( jQuery.support.boxModel ? "<!doctype html>" : "" ) + "<html><body>" );
+				iframeDoc.close();
+			}
+
+			elem = iframeDoc.createElement( nodeName );
+
+			iframeDoc.body.appendChild( elem );
+
+			display = jQuery.css( elem, "display" );
+			body.removeChild( iframe );
+		}
+
+		// Store the correct default display
+		elemdisplay[ nodeName ] = display;
+	}
+
+	return elemdisplay[ nodeName ];
+}
+
+
+
+
+var getOffset,
+	rtable = /^t(?:able|d|h)$/i,
+	rroot = /^(?:body|html)$/i;
+
+if ( "getBoundingClientRect" in document.documentElement ) {
+	getOffset = function( elem, doc, docElem, box ) {
+		try {
+			box = elem.getBoundingClientRect();
+		} catch(e) {}
+
+		// Make sure we're not dealing with a disconnected DOM node
+		if ( !box || !jQuery.contains( docElem, elem ) ) {
+			return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
+		}
+
+		var body = doc.body,
+			win = getWindow( doc ),
+			clientTop  = docElem.clientTop  || body.clientTop  || 0,
+			clientLeft = docElem.clientLeft || body.clientLeft || 0,
+			scrollTop  = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop,
+			scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
+			top  = box.top  + scrollTop  - clientTop,
+			left = box.left + scrollLeft - clientLeft;
+
+		return { top: top, left: left };
+	};
+
+} else {
+	getOffset = function( elem, doc, docElem ) {
+		var computedStyle,
+			offsetParent = elem.offsetParent,
+			prevOffsetParent = elem,
+			body = doc.body,
+			defaultView = doc.defaultView,
+			prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
+			top = elem.offsetTop,
+			left = elem.offsetLeft;
+
+		while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
+			if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
+				break;
+			}
+
+			computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
+			top  -= elem.scrollTop;
+			left -= elem.scrollLeft;
+
+			if ( elem === offsetParent ) {
+				top  += elem.offsetTop;
+				left += elem.offsetLeft;
+
+				if ( jQuery.support.doesNotAddBorder && !(jQuery.support.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
+					top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
+					left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+				}
+
+				prevOffsetParent = offsetParent;
+				offsetParent = elem.offsetParent;
+			}
+
+			if ( jQuery.support.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
+				top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
+				left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+			}
+
+			prevComputedStyle = computedStyle;
+		}
+
+		if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
+			top  += body.offsetTop;
+			left += body.offsetLeft;
+		}
+
+		if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
+			top  += Math.max( docElem.scrollTop, body.scrollTop );
+			left += Math.max( docElem.scrollLeft, body.scrollLeft );
+		}
+
+		return { top: top, left: left };
+	};
+}
+
+jQuery.fn.offset = function( options ) {
+	if ( arguments.length ) {
+		return options === undefined ?
+			this :
+			this.each(function( i ) {
+				jQuery.offset.setOffset( this, options, i );
+			});
+	}
+
+	var elem = this[0],
+		doc = elem && elem.ownerDocument;
+
+	if ( !doc ) {
+		return null;
+	}
+
+	if ( elem === doc.body ) {
+		return jQuery.offset.bodyOffset( elem );
+	}
+
+	return getOffset( elem, doc, doc.documentElement );
+};
+
+jQuery.offset = {
+
+	bodyOffset: function( body ) {
+		var top = body.offsetTop,
+			left = body.offsetLeft;
+
+		if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) {
+			top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
+			left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
+		}
+
+		return { top: top, left: left };
+	},
+
+	setOffset: function( elem, options, i ) {
+		var position = jQuery.css( elem, "position" );
+
+		// set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		var curElem = jQuery( elem ),
+			curOffset = curElem.offset(),
+			curCSSTop = jQuery.css( elem, "top" ),
+			curCSSLeft = jQuery.css( elem, "left" ),
+			calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
+			props = {}, curPosition = {}, curTop, curLeft;
+
+		// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( jQuery.isFunction( options ) ) {
+			options = options.call( elem, i, curOffset );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+
+jQuery.fn.extend({
+
+	position: function() {
+		if ( !this[0] ) {
+			return null;
+		}
+
+		var elem = this[0],
+
+		// Get *real* offsetParent
+		offsetParent = this.offsetParent(),
+
+		// Get correct offsets
+		offset       = this.offset(),
+		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
+
+		// Subtract element margins
+		// note: when an element has margin: auto the offsetLeft and marginLeft
+		// are the same in Safari causing offset.left to incorrectly be 0
+		offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
+		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
+
+		// Add offsetParent borders
+		parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
+		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
+
+		// Subtract the two offsets
+		return {
+			top:  offset.top  - parentOffset.top,
+			left: offset.left - parentOffset.left
+		};
+	},
+
+	offsetParent: function() {
+		return this.map(function() {
+			var offsetParent = this.offsetParent || document.body;
+			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+			return offsetParent;
+		});
+	}
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
+	var top = /Y/.test( prop );
+
+	jQuery.fn[ method ] = function( val ) {
+		return jQuery.access( this, function( elem, method, val ) {
+			var win = getWindow( elem );
+
+			if ( val === undefined ) {
+				return win ? (prop in win) ? win[ prop ] :
+					jQuery.support.boxModel && win.document.documentElement[ method ] ||
+						win.document.body[ method ] :
+					elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : jQuery( win ).scrollLeft(),
+					 top ? val : jQuery( win ).scrollTop()
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length, null );
+	};
+});
+
+function getWindow( elem ) {
+	return jQuery.isWindow( elem ) ?
+		elem :
+		elem.nodeType === 9 ?
+			elem.defaultView || elem.parentWindow :
+			false;
+}
+
+
+
+
+// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	var clientProp = "client" + name,
+		scrollProp = "scroll" + name,
+		offsetProp = "offset" + name;
+
+	// innerHeight and innerWidth
+	jQuery.fn[ "inner" + name ] = function() {
+		var elem = this[0];
+		return elem ?
+			elem.style ?
+			parseFloat( jQuery.css( elem, type, "padding" ) ) :
+			this[ type ]() :
+			null;
+	};
+
+	// outerHeight and outerWidth
+	jQuery.fn[ "outer" + name ] = function( margin ) {
+		var elem = this[0];
+		return elem ?
+			elem.style ?
+			parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
+			this[ type ]() :
+			null;
+	};
+
+	jQuery.fn[ type ] = function( value ) {
+		return jQuery.access( this, function( elem, type, value ) {
+			var doc, docElemProp, orig, ret;
+
+			if ( jQuery.isWindow( elem ) ) {
+				// 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
+				doc = elem.document;
+				docElemProp = doc.documentElement[ clientProp ];
+				return jQuery.support.boxModel && docElemProp ||
+					doc.body && doc.body[ clientProp ] || docElemProp;
+			}
+
+			// Get document width or height
+			if ( elem.nodeType === 9 ) {
+				// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+				doc = elem.documentElement;
+
+				// when a window > document, IE6 reports a offset[Width/Height] > client[Width/Height]
+				// so we can't use max, as it'll choose the incorrect offset[Width/Height]
+				// instead we use the correct client[Width/Height]
+				// support:IE6
+				if ( doc[ clientProp ] >= doc[ scrollProp ] ) {
+					return doc[ clientProp ];
+				}
+
+				return Math.max(
+					elem.body[ scrollProp ], doc[ scrollProp ],
+					elem.body[ offsetProp ], doc[ offsetProp ]
+				);
+			}
+
+			// Get width or height on the element
+			if ( value === undefined ) {
+				orig = jQuery.css( elem, type );
+				ret = parseFloat( orig );
+				return jQuery.isNumeric( ret ) ? ret : orig;
+			}
+
+			// Set the width or height on the element
+			jQuery( elem ).css( type, value );
+		}, type, value, arguments.length, null );
+	};
+});
+
+
+
+
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
+
+// Expose jQuery as an AMD module, but only for AMD loaders that
+// understand the issues with loading multiple versions of jQuery
+// in a page that all might call define(). The loader will indicate
+// they have special allowances for multiple jQuery versions by
+// specifying define.amd.jQuery = true. Register as a named module,
+// since jQuery can be concatenated with other files that may use define,
+// but not use a proper concatenation script that understands anonymous
+// AMD modules. A named AMD is safest and most robust way to register.
+// Lowercase jquery is used because AMD module names are derived from
+// file names, and jQuery is normally delivered in a lowercase file name.
+// Do this after creating the global so that if an AMD module wants to call
+// noConflict to hide this version of jQuery, it will work.
+if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
+	define( "jquery", [], function () { return jQuery; } );
+}
+
+
+
+})( window );
diff --git a/doc/html/_static/minus.png b/doc/html/_static/minus.png
new file mode 100644
index 0000000..da1c562
Binary files /dev/null and b/doc/html/_static/minus.png differ
diff --git a/doc/html/_static/placeholder b/doc/html/_static/placeholder
new file mode 100644
index 0000000..7784424
--- /dev/null
+++ b/doc/html/_static/placeholder
@@ -0,0 +1 @@
+#This empty file is there to keep the directory in Git
\ No newline at end of file
diff --git a/doc/html/_static/plus.png b/doc/html/_static/plus.png
new file mode 100644
index 0000000..b3cb374
Binary files /dev/null and b/doc/html/_static/plus.png differ
diff --git a/doc/html/_static/pygments.css b/doc/html/_static/pygments.css
new file mode 100644
index 0000000..1a14f2a
--- /dev/null
+++ b/doc/html/_static/pygments.css
@@ -0,0 +1,62 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight  { background: #eeffcc; }
+.highlight .c { color: #408090; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #007020; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #007020 } /* Comment.Preproc */
+.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #303030 } /* Generic.Output */
+.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0040D0 } /* Generic.Traceback */
+.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #007020 } /* Keyword.Pseudo */
+.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #902000 } /* Keyword.Type */
+.highlight .m { color: #208050 } /* Literal.Number */
+.highlight .s { color: #4070a0 } /* Literal.String */
+.highlight .na { color: #4070a0 } /* Name.Attribute */
+.highlight .nb { color: #007020 } /* Name.Builtin */
+.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.highlight .no { color: #60add5 } /* Name.Constant */
+.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #007020 } /* Name.Exception */
+.highlight .nf { color: #06287e } /* Name.Function */
+.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
+.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #bb60d5 } /* Name.Variable */
+.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #208050 } /* Literal.Number.Float */
+.highlight .mh { color: #208050 } /* Literal.Number.Hex */
+.highlight .mi { color: #208050 } /* Literal.Number.Integer */
+.highlight .mo { color: #208050 } /* Literal.Number.Oct */
+.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
+.highlight .sc { color: #4070a0 } /* Literal.String.Char */
+.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
+.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.highlight .sx { color: #c65d09 } /* Literal.String.Other */
+.highlight .sr { color: #235388 } /* Literal.String.Regex */
+.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
+.highlight .ss { color: #517918 } /* Literal.String.Symbol */
+.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
+.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
+.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/doc/html/_static/searchtools.js b/doc/html/_static/searchtools.js
new file mode 100644
index 0000000..663be4c
--- /dev/null
+++ b/doc/html/_static/searchtools.js
@@ -0,0 +1,560 @@
+/*
+ * searchtools.js_t
+ * ~~~~~~~~~~~~~~~~
+ *
+ * Sphinx JavaScript utilties for the full-text search.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/**
+ * helper function to return a node containing the
+ * search summary for a given text. keywords is a list
+ * of stemmed words, hlwords is the list of normal, unstemmed
+ * words. the first one is used to find the occurance, the
+ * latter for highlighting it.
+ */
+
+jQuery.makeSearchSummary = function(text, keywords, hlwords) {
+  var textLower = text.toLowerCase();
+  var start = 0;
+  $.each(keywords, function() {
+    var i = textLower.indexOf(this.toLowerCase());
+    if (i > -1)
+      start = i;
+  });
+  start = Math.max(start - 120, 0);
+  var excerpt = ((start > 0) ? '...' : '') +
+  $.trim(text.substr(start, 240)) +
+  ((start + 240 - text.length) ? '...' : '');
+  var rv = $('<div class="context"></div>').text(excerpt);
+  $.each(hlwords, function() {
+    rv = rv.highlightText(this, 'highlighted');
+  });
+  return rv;
+}
+
+
+/**
+ * Porter Stemmer
+ */
+var Stemmer = function() {
+
+  var step2list = {
+    ational: 'ate',
+    tional: 'tion',
+    enci: 'ence',
+    anci: 'ance',
+    izer: 'ize',
+    bli: 'ble',
+    alli: 'al',
+    entli: 'ent',
+    eli: 'e',
+    ousli: 'ous',
+    ization: 'ize',
+    ation: 'ate',
+    ator: 'ate',
+    alism: 'al',
+    iveness: 'ive',
+    fulness: 'ful',
+    ousness: 'ous',
+    aliti: 'al',
+    iviti: 'ive',
+    biliti: 'ble',
+    logi: 'log'
+  };
+
+  var step3list = {
+    icate: 'ic',
+    ative: '',
+    alize: 'al',
+    iciti: 'ic',
+    ical: 'ic',
+    ful: '',
+    ness: ''
+  };
+
+  var c = "[^aeiou]";          // consonant
+  var v = "[aeiouy]";          // vowel
+  var C = c + "[^aeiouy]*";    // consonant sequence
+  var V = v + "[aeiou]*";      // vowel sequence
+
+  var mgr0 = "^(" + C + ")?" + V + C;                      // [C]VC... is m>0
+  var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$";    // [C]VC[V] is m=1
+  var mgr1 = "^(" + C + ")?" + V + C + V + C;              // [C]VCVC... is m>1
+  var s_v   = "^(" + C + ")?" + v;                         // vowel in stem
+
+  this.stemWord = function (w) {
+    var stem;
+    var suffix;
+    var firstch;
+    var origword = w;
+
+    if (w.length < 3)
+      return w;
+
+    var re;
+    var re2;
+    var re3;
+    var re4;
+
+    firstch = w.substr(0,1);
+    if (firstch == "y")
+      w = firstch.toUpperCase() + w.substr(1);
+
+    // Step 1a
+    re = /^(.+?)(ss|i)es$/;
+    re2 = /^(.+?)([^s])s$/;
+
+    if (re.test(w))
+      w = w.replace(re,"$1$2");
+    else if (re2.test(w))
+      w = w.replace(re2,"$1$2");
+
+    // Step 1b
+    re = /^(.+?)eed$/;
+    re2 = /^(.+?)(ed|ing)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      re = new RegExp(mgr0);
+      if (re.test(fp[1])) {
+        re = /.$/;
+        w = w.replace(re,"");
+      }
+    }
+    else if (re2.test(w)) {
+      var fp = re2.exec(w);
+      stem = fp[1];
+      re2 = new RegExp(s_v);
+      if (re2.test(stem)) {
+        w = stem;
+        re2 = /(at|bl|iz)$/;
+        re3 = new RegExp("([^aeiouylsz])\\1$");
+        re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+        if (re2.test(w))
+          w = w + "e";
+        else if (re3.test(w)) {
+          re = /.$/;
+          w = w.replace(re,"");
+        }
+        else if (re4.test(w))
+          w = w + "e";
+      }
+    }
+
+    // Step 1c
+    re = /^(.+?)y$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(s_v);
+      if (re.test(stem))
+        w = stem + "i";
+    }
+
+    // Step 2
+    re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      suffix = fp[2];
+      re = new RegExp(mgr0);
+      if (re.test(stem))
+        w = stem + step2list[suffix];
+    }
+
+    // Step 3
+    re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      suffix = fp[2];
+      re = new RegExp(mgr0);
+      if (re.test(stem))
+        w = stem + step3list[suffix];
+    }
+
+    // Step 4
+    re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+    re2 = /^(.+?)(s|t)(ion)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(mgr1);
+      if (re.test(stem))
+        w = stem;
+    }
+    else if (re2.test(w)) {
+      var fp = re2.exec(w);
+      stem = fp[1] + fp[2];
+      re2 = new RegExp(mgr1);
+      if (re2.test(stem))
+        w = stem;
+    }
+
+    // Step 5
+    re = /^(.+?)e$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(mgr1);
+      re2 = new RegExp(meq1);
+      re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+      if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
+        w = stem;
+    }
+    re = /ll$/;
+    re2 = new RegExp(mgr1);
+    if (re.test(w) && re2.test(w)) {
+      re = /.$/;
+      w = w.replace(re,"");
+    }
+
+    // and turn initial Y back to y
+    if (firstch == "y")
+      w = firstch.toLowerCase() + w.substr(1);
+    return w;
+  }
+}
+
+
+/**
+ * Search Module
+ */
+var Search = {
+
+  _index : null,
+  _queued_query : null,
+  _pulse_status : -1,
+
+  init : function() {
+      var params = $.getQueryParameters();
+      if (params.q) {
+          var query = params.q[0];
+          $('input[name="q"]')[0].value = query;
+          this.performSearch(query);
+      }
+  },
+
+  loadIndex : function(url) {
+    $.ajax({type: "GET", url: url, data: null, success: null,
+            dataType: "script", cache: true});
+  },
+
+  setIndex : function(index) {
+    var q;
+    this._index = index;
+    if ((q = this._queued_query) !== null) {
+      this._queued_query = null;
+      Search.query(q);
+    }
+  },
+
+  hasIndex : function() {
+      return this._index !== null;
+  },
+
+  deferQuery : function(query) {
+      this._queued_query = query;
+  },
+
+  stopPulse : function() {
+      this._pulse_status = 0;
+  },
+
+  startPulse : function() {
+    if (this._pulse_status >= 0)
+        return;
+    function pulse() {
+      Search._pulse_status = (Search._pulse_status + 1) % 4;
+      var dotString = '';
+      for (var i = 0; i < Search._pulse_status; i++)
+        dotString += '.';
+      Search.dots.text(dotString);
+      if (Search._pulse_status > -1)
+        window.setTimeout(pulse, 500);
+    };
+    pulse();
+  },
+
+  /**
+   * perform a search for something
+   */
+  performSearch : function(query) {
+    // create the required interface elements
+    this.out = $('#search-results');
+    this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
+    this.dots = $('<span></span>').appendTo(this.title);
+    this.status = $('<p style="display: none"></p>').appendTo(this.out);
+    this.output = $('<ul class="search"/>').appendTo(this.out);
+
+    $('#search-progress').text(_('Preparing search...'));
+    this.startPulse();
+
+    // index already loaded, the browser was quick!
+    if (this.hasIndex())
+      this.query(query);
+    else
+      this.deferQuery(query);
+  },
+
+  query : function(query) {
+    var stopwords = ["and","then","into","it","as","are","in","if","for","no","there","their","was","is","be","to","that","but","they","not","such","with","by","a","on","these","of","will","this","near","the","or","at"];
+
+    // Stem the searchterms and add them to the correct list
+    var stemmer = new Stemmer();
+    var searchterms = [];
+    var excluded = [];
+    var hlterms = [];
+    var tmp = query.split(/\s+/);
+    var objectterms = [];
+    for (var i = 0; i < tmp.length; i++) {
+      if (tmp[i] != "") {
+          objectterms.push(tmp[i].toLowerCase());
+      }
+
+      if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) ||
+          tmp[i] == "") {
+        // skip this "word"
+        continue;
+      }
+      // stem the word
+      var word = stemmer.stemWord(tmp[i]).toLowerCase();
+      // select the correct list
+      if (word[0] == '-') {
+        var toAppend = excluded;
+        word = word.substr(1);
+      }
+      else {
+        var toAppend = searchterms;
+        hlterms.push(tmp[i].toLowerCase());
+      }
+      // only add if not already in the list
+      if (!$.contains(toAppend, word))
+        toAppend.push(word);
+    };
+    var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
+
+    // console.debug('SEARCH: searching for:');
+    // console.info('required: ', searchterms);
+    // console.info('excluded: ', excluded);
+
+    // prepare search
+    var filenames = this._index.filenames;
+    var titles = this._index.titles;
+    var terms = this._index.terms;
+    var fileMap = {};
+    var files = null;
+    // different result priorities
+    var importantResults = [];
+    var objectResults = [];
+    var regularResults = [];
+    var unimportantResults = [];
+    $('#search-progress').empty();
+
+    // lookup as object
+    for (var i = 0; i < objectterms.length; i++) {
+      var others = [].concat(objectterms.slice(0,i),
+                             objectterms.slice(i+1, objectterms.length))
+      var results = this.performObjectSearch(objectterms[i], others);
+      // Assume first word is most likely to be the object,
+      // other words more likely to be in description.
+      // Therefore put matches for earlier words first.
+      // (Results are eventually used in reverse order).
+      objectResults = results[0].concat(objectResults);
+      importantResults = results[1].concat(importantResults);
+      unimportantResults = results[2].concat(unimportantResults);
+    }
+
+    // perform the search on the required terms
+    for (var i = 0; i < searchterms.length; i++) {
+      var word = searchterms[i];
+      // no match but word was a required one
+      if ((files = terms[word]) == null)
+        break;
+      if (files.length == undefined) {
+        files = [files];
+      }
+      // create the mapping
+      for (var j = 0; j < files.length; j++) {
+        var file = files[j];
+        if (file in fileMap)
+          fileMap[file].push(word);
+        else
+          fileMap[file] = [word];
+      }
+    }
+
+    // now check if the files don't contain excluded terms
+    for (var file in fileMap) {
+      var valid = true;
+
+      // check if all requirements are matched
+      if (fileMap[file].length != searchterms.length)
+        continue;
+
+      // ensure that none of the excluded terms is in the
+      // search result.
+      for (var i = 0; i < excluded.length; i++) {
+        if (terms[excluded[i]] == file ||
+            $.contains(terms[excluded[i]] || [], file)) {
+          valid = false;
+          break;
+        }
+      }
+
+      // if we have still a valid result we can add it
+      // to the result list
+      if (valid)
+        regularResults.push([filenames[file], titles[file], '', null]);
+    }
+
+    // delete unused variables in order to not waste
+    // memory until list is retrieved completely
+    delete filenames, titles, terms;
+
+    // now sort the regular results descending by title
+    regularResults.sort(function(a, b) {
+      var left = a[1].toLowerCase();
+      var right = b[1].toLowerCase();
+      return (left > right) ? -1 : ((left < right) ? 1 : 0);
+    });
+
+    // combine all results
+    var results = unimportantResults.concat(regularResults)
+      .concat(objectResults).concat(importantResults);
+
+    // print the results
+    var resultCount = results.length;
+    function displayNextItem() {
+      // results left, load the summary and display it
+      if (results.length) {
+        var item = results.pop();
+        var listItem = $('<li style="display:none"></li>');
+        if (DOCUMENTATION_OPTIONS.FILE_SUFFIX == '') {
+          // dirhtml builder
+          var dirname = item[0] + '/';
+          if (dirname.match(/\/index\/$/)) {
+            dirname = dirname.substring(0, dirname.length-6);
+          } else if (dirname == 'index/') {
+            dirname = '';
+          }
+          listItem.append($('<a/>').attr('href',
+            DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
+            highlightstring + item[2]).html(item[1]));
+        } else {
+          // normal html builders
+          listItem.append($('<a/>').attr('href',
+            item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
+            highlightstring + item[2]).html(item[1]));
+        }
+        if (item[3]) {
+          listItem.append($('<span> (' + item[3] + ')</span>'));
+          Search.output.append(listItem);
+          listItem.slideDown(5, function() {
+            displayNextItem();
+          });
+        } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
+          $.get(DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' +
+                item[0] + '.txt', function(data) {
+            if (data != '') {
+              listItem.append($.makeSearchSummary(data, searchterms, hlterms));
+              Search.output.append(listItem);
+            }
+            listItem.slideDown(5, function() {
+              displayNextItem();
+            });
+          }, "text");
+        } else {
+          // no source available, just display title
+          Search.output.append(listItem);
+          listItem.slideDown(5, function() {
+            displayNextItem();
+          });
+        }
+      }
+      // search finished, update title and status message
+      else {
+        Search.stopPulse();
+        Search.title.text(_('Search Results'));
+        if (!resultCount)
+          Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
+        else
+            Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
+        Search.status.fadeIn(500);
+      }
+    }
+    displayNextItem();
+  },
+
+  performObjectSearch : function(object, otherterms) {
+    var filenames = this._index.filenames;
+    var objects = this._index.objects;
+    var objnames = this._index.objnames;
+    var titles = this._index.titles;
+
+    var importantResults = [];
+    var objectResults = [];
+    var unimportantResults = [];
+
+    for (var prefix in objects) {
+      for (var name in objects[prefix]) {
+        var fullname = (prefix ? prefix + '.' : '') + name;
+        if (fullname.toLowerCase().indexOf(object) > -1) {
+          var match = objects[prefix][name];
+          var objname = objnames[match[1]][2];
+          var title = titles[match[0]];
+          // If more than one term searched for, we require other words to be
+          // found in the name/title/description
+          if (otherterms.length > 0) {
+            var haystack = (prefix + ' ' + name + ' ' +
+                            objname + ' ' + title).toLowerCase();
+            var allfound = true;
+            for (var i = 0; i < otherterms.length; i++) {
+              if (haystack.indexOf(otherterms[i]) == -1) {
+                allfound = false;
+                break;
+              }
+            }
+            if (!allfound) {
+              continue;
+            }
+          }
+          var descr = objname + _(', in ') + title;
+          anchor = match[3];
+          if (anchor == '')
+            anchor = fullname;
+          else if (anchor == '-')
+            anchor = objnames[match[1]][1] + '-' + fullname;
+          result = [filenames[match[0]], fullname, '#'+anchor, descr];
+          switch (match[2]) {
+          case 1: objectResults.push(result); break;
+          case 0: importantResults.push(result); break;
+          case 2: unimportantResults.push(result); break;
+          }
+        }
+      }
+    }
+
+    // sort results descending
+    objectResults.sort(function(a, b) {
+      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
+    });
+
+    importantResults.sort(function(a, b) {
+      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
+    });
+
+    unimportantResults.sort(function(a, b) {
+      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
+    });
+
+    return [importantResults, objectResults, unimportantResults]
+  }
+}
+
+$(document).ready(function() {
+  Search.init();
+});
\ No newline at end of file
diff --git a/doc/html/_static/sidebar.js b/doc/html/_static/sidebar.js
new file mode 100644
index 0000000..a45e192
--- /dev/null
+++ b/doc/html/_static/sidebar.js
@@ -0,0 +1,151 @@
+/*
+ * sidebar.js
+ * ~~~~~~~~~~
+ *
+ * This script makes the Sphinx sidebar collapsible.
+ *
+ * .sphinxsidebar contains .sphinxsidebarwrapper.  This script adds
+ * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton
+ * used to collapse and expand the sidebar.
+ *
+ * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden
+ * and the width of the sidebar and the margin-left of the document
+ * are decreased. When the sidebar is expanded the opposite happens.
+ * This script saves a per-browser/per-session cookie used to
+ * remember the position of the sidebar among the pages.
+ * Once the browser is closed the cookie is deleted and the position
+ * reset to the default (expanded).
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+$(function() {
+  // global elements used by the functions.
+  // the 'sidebarbutton' element is defined as global after its
+  // creation, in the add_sidebar_button function
+  var bodywrapper = $('.bodywrapper');
+  var sidebar = $('.sphinxsidebar');
+  var sidebarwrapper = $('.sphinxsidebarwrapper');
+
+  // for some reason, the document has no sidebar; do not run into errors
+  if (!sidebar.length) return;
+
+  // original margin-left of the bodywrapper and width of the sidebar
+  // with the sidebar expanded
+  var bw_margin_expanded = bodywrapper.css('margin-left');
+  var ssb_width_expanded = sidebar.width();
+
+  // margin-left of the bodywrapper and width of the sidebar
+  // with the sidebar collapsed
+  var bw_margin_collapsed = '.8em';
+  var ssb_width_collapsed = '.8em';
+
+  // colors used by the current theme
+  var dark_color = $('.related').css('background-color');
+  var light_color = $('.document').css('background-color');
+
+  function sidebar_is_collapsed() {
+    return sidebarwrapper.is(':not(:visible)');
+  }
+
+  function toggle_sidebar() {
+    if (sidebar_is_collapsed())
+      expand_sidebar();
+    else
+      collapse_sidebar();
+  }
+
+  function collapse_sidebar() {
+    sidebarwrapper.hide();
+    sidebar.css('width', ssb_width_collapsed);
+    bodywrapper.css('margin-left', bw_margin_collapsed);
+    sidebarbutton.css({
+        'margin-left': '0',
+        'height': bodywrapper.height()
+    });
+    sidebarbutton.find('span').text('»');
+    sidebarbutton.attr('title', _('Expand sidebar'));
+    document.cookie = 'sidebar=collapsed';
+  }
+
+  function expand_sidebar() {
+    bodywrapper.css('margin-left', bw_margin_expanded);
+    sidebar.css('width', ssb_width_expanded);
+    sidebarwrapper.show();
+    sidebarbutton.css({
+        'margin-left': ssb_width_expanded-12,
+        'height': bodywrapper.height()
+    });
+    sidebarbutton.find('span').text('«');
+    sidebarbutton.attr('title', _('Collapse sidebar'));
+    document.cookie = 'sidebar=expanded';
+  }
+
+  function add_sidebar_button() {
+    sidebarwrapper.css({
+        'float': 'left',
+        'margin-right': '0',
+        'width': ssb_width_expanded - 28
+    });
+    // create the button
+    sidebar.append(
+        '<div id="sidebarbutton"><span>«</span></div>'
+    );
+    var sidebarbutton = $('#sidebarbutton');
+    light_color = sidebarbutton.css('background-color');
+    // find the height of the viewport to center the '<<' in the page
+    var viewport_height;
+    if (window.innerHeight)
+ 	  viewport_height = window.innerHeight;
+    else
+	  viewport_height = $(window).height();
+    sidebarbutton.find('span').css({
+        'display': 'block',
+        'margin-top': (viewport_height - sidebar.position().top - 20) / 2
+    });
+
+    sidebarbutton.click(toggle_sidebar);
+    sidebarbutton.attr('title', _('Collapse sidebar'));
+    sidebarbutton.css({
+        'color': '#FFFFFF',
+        'border-left': '1px solid ' + dark_color,
+        'font-size': '1.2em',
+        'cursor': 'pointer',
+        'height': bodywrapper.height(),
+        'padding-top': '1px',
+        'margin-left': ssb_width_expanded - 12
+    });
+
+    sidebarbutton.hover(
+      function () {
+          $(this).css('background-color', dark_color);
+      },
+      function () {
+          $(this).css('background-color', light_color);
+      }
+    );
+  }
+
+  function set_position_from_cookie() {
+    if (!document.cookie)
+      return;
+    var items = document.cookie.split(';');
+    for(var k=0; k<items.length; k++) {
+      var key_val = items[k].split('=');
+      var key = key_val[0];
+      if (key == 'sidebar') {
+        var value = key_val[1];
+        if ((value == 'collapsed') && (!sidebar_is_collapsed()))
+          collapse_sidebar();
+        else if ((value == 'expanded') && (sidebar_is_collapsed()))
+          expand_sidebar();
+      }
+    }
+  }
+
+  add_sidebar_button();
+  var sidebarbutton = $('#sidebarbutton');
+  set_position_from_cookie();
+});
diff --git a/doc/html/_static/underscore.js b/doc/html/_static/underscore.js
new file mode 100644
index 0000000..5579c07
--- /dev/null
+++ b/doc/html/_static/underscore.js
@@ -0,0 +1,977 @@
+//     Underscore.js 1.2.2
+//     (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.
+//     Underscore is freely distributable under the MIT license.
+//     Portions of Underscore are inspired or borrowed from Prototype,
+//     Oliver Steele's Functional, and John Resig's Micro-Templating.
+//     For all details and documentation:
+//     http://documentcloud.github.com/underscore
+
+(function() {
+
+  // Baseline setup
+  // --------------
+
+  // Establish the root object, `window` in the browser, or `global` on the server.
+  var root = this;
+
+  // Save the previous value of the `_` variable.
+  var previousUnderscore = root._;
+
+  // Establish the object that gets returned to break out of a loop iteration.
+  var breaker = {};
+
+  // Save bytes in the minified (but not gzipped) version:
+  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
+
+  // Create quick reference variables for speed access to core prototypes.
+  var slice            = ArrayProto.slice,
+      unshift          = ArrayProto.unshift,
+      toString         = ObjProto.toString,
+      hasOwnProperty   = ObjProto.hasOwnProperty;
+
+  // All **ECMAScript 5** native function implementations that we hope to use
+  // are declared here.
+  var
+    nativeForEach      = ArrayProto.forEach,
+    nativeMap          = ArrayProto.map,
+    nativeReduce       = ArrayProto.reduce,
+    nativeReduceRight  = ArrayProto.reduceRight,
+    nativeFilter       = ArrayProto.filter,
+    nativeEvery        = ArrayProto.every,
+    nativeSome         = ArrayProto.some,
+    nativeIndexOf      = ArrayProto.indexOf,
+    nativeLastIndexOf  = ArrayProto.lastIndexOf,
+    nativeIsArray      = Array.isArray,
+    nativeKeys         = Object.keys,
+    nativeBind         = FuncProto.bind;
+
+  // Create a safe reference to the Underscore object for use below.
+  var _ = function(obj) { return new wrapper(obj); };
+
+  // Export the Underscore object for **Node.js** and **"CommonJS"**, with
+  // backwards-compatibility for the old `require()` API. If we're not in
+  // CommonJS, add `_` to the global object.
+  if (typeof exports !== 'undefined') {
+    if (typeof module !== 'undefined' && module.exports) {
+      exports = module.exports = _;
+    }
+    exports._ = _;
+  } else if (typeof define === 'function' && define.amd) {
+    // Register as a named module with AMD.
+    define('underscore', function() {
+      return _;
+    });
+  } else {
+    // Exported as a string, for Closure Compiler "advanced" mode.
+    root['_'] = _;
+  }
+
+  // Current version.
+  _.VERSION = '1.2.2';
+
+  // Collection Functions
+  // --------------------
+
+  // The cornerstone, an `each` implementation, aka `forEach`.
+  // Handles objects with the built-in `forEach`, arrays, and raw objects.
+  // Delegates to **ECMAScript 5**'s native `forEach` if available.
+  var each = _.each = _.forEach = function(obj, iterator, context) {
+    if (obj == null) return;
+    if (nativeForEach && obj.forEach === nativeForEach) {
+      obj.forEach(iterator, context);
+    } else if (obj.length === +obj.length) {
+      for (var i = 0, l = obj.length; i < l; i++) {
+        if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
+      }
+    } else {
+      for (var key in obj) {
+        if (hasOwnProperty.call(obj, key)) {
+          if (iterator.call(context, obj[key], key, obj) === breaker) return;
+        }
+      }
+    }
+  };
+
+  // Return the results of applying the iterator to each element.
+  // Delegates to **ECMAScript 5**'s native `map` if available.
+  _.map = function(obj, iterator, context) {
+    var results = [];
+    if (obj == null) return results;
+    if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
+    each(obj, function(value, index, list) {
+      results[results.length] = iterator.call(context, value, index, list);
+    });
+    return results;
+  };
+
+  // **Reduce** builds up a single result from a list of values, aka `inject`,
+  // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
+  _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
+    var initial = memo !== void 0;
+    if (obj == null) obj = [];
+    if (nativeReduce && obj.reduce === nativeReduce) {
+      if (context) iterator = _.bind(iterator, context);
+      return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
+    }
+    each(obj, function(value, index, list) {
+      if (!initial) {
+        memo = value;
+        initial = true;
+      } else {
+        memo = iterator.call(context, memo, value, index, list);
+      }
+    });
+    if (!initial) throw new TypeError("Reduce of empty array with no initial value");
+    return memo;
+  };
+
+  // The right-associative version of reduce, also known as `foldr`.
+  // Delegates to **ECMAScript 5**'s native `reduceRight` if available.
+  _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
+    if (obj == null) obj = [];
+    if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
+      if (context) iterator = _.bind(iterator, context);
+      return memo !== void 0 ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
+    }
+    var reversed = (_.isArray(obj) ? obj.slice() : _.toArray(obj)).reverse();
+    return _.reduce(reversed, iterator, memo, context);
+  };
+
+  // Return the first value which passes a truth test. Aliased as `detect`.
+  _.find = _.detect = function(obj, iterator, context) {
+    var result;
+    any(obj, function(value, index, list) {
+      if (iterator.call(context, value, index, list)) {
+        result = value;
+        return true;
+      }
+    });
+    return result;
+  };
+
+  // Return all the elements that pass a truth test.
+  // Delegates to **ECMAScript 5**'s native `filter` if available.
+  // Aliased as `select`.
+  _.filter = _.select = function(obj, iterator, context) {
+    var results = [];
+    if (obj == null) return results;
+    if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
+    each(obj, function(value, index, list) {
+      if (iterator.call(context, value, index, list)) results[results.length] = value;
+    });
+    return results;
+  };
+
+  // Return all the elements for which a truth test fails.
+  _.reject = function(obj, iterator, context) {
+    var results = [];
+    if (obj == null) return results;
+    each(obj, function(value, index, list) {
+      if (!iterator.call(context, value, index, list)) results[results.length] = value;
+    });
+    return results;
+  };
+
+  // Determine whether all of the elements match a truth test.
+  // Delegates to **ECMAScript 5**'s native `every` if available.
+  // Aliased as `all`.
+  _.every = _.all = function(obj, iterator, context) {
+    var result = true;
+    if (obj == null) return result;
+    if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
+    each(obj, function(value, index, list) {
+      if (!(result = result && iterator.call(context, value, index, list))) return breaker;
+    });
+    return result;
+  };
+
+  // Determine if at least one element in the object matches a truth test.
+  // Delegates to **ECMAScript 5**'s native `some` if available.
+  // Aliased as `any`.
+  var any = _.some = _.any = function(obj, iterator, context) {
+    iterator = iterator || _.identity;
+    var result = false;
+    if (obj == null) return result;
+    if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
+    each(obj, function(value, index, list) {
+      if (result || (result = iterator.call(context, value, index, list))) return breaker;
+    });
+    return !!result;
+  };
+
+  // Determine if a given value is included in the array or object using `===`.
+  // Aliased as `contains`.
+  _.include = _.contains = function(obj, target) {
+    var found = false;
+    if (obj == null) return found;
+    if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
+    found = any(obj, function(value) {
+      return value === target;
+    });
+    return found;
+  };
+
+  // Invoke a method (with arguments) on every item in a collection.
+  _.invoke = function(obj, method) {
+    var args = slice.call(arguments, 2);
+    return _.map(obj, function(value) {
+      return (method.call ? method || value : value[method]).apply(value, args);
+    });
+  };
+
+  // Convenience version of a common use case of `map`: fetching a property.
+  _.pluck = function(obj, key) {
+    return _.map(obj, function(value){ return value[key]; });
+  };
+
+  // Return the maximum element or (element-based computation).
+  _.max = function(obj, iterator, context) {
+    if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
+    if (!iterator && _.isEmpty(obj)) return -Infinity;
+    var result = {computed : -Infinity};
+    each(obj, function(value, index, list) {
+      var computed = iterator ? iterator.call(context, value, index, list) : value;
+      computed >= result.computed && (result = {value : value, computed : computed});
+    });
+    return result.value;
+  };
+
+  // Return the minimum element (or element-based computation).
+  _.min = function(obj, iterator, context) {
+    if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
+    if (!iterator && _.isEmpty(obj)) return Infinity;
+    var result = {computed : Infinity};
+    each(obj, function(value, index, list) {
+      var computed = iterator ? iterator.call(context, value, index, list) : value;
+      computed < result.computed && (result = {value : value, computed : computed});
+    });
+    return result.value;
+  };
+
+  // Shuffle an array.
+  _.shuffle = function(obj) {
+    var shuffled = [], rand;
+    each(obj, function(value, index, list) {
+      if (index == 0) {
+        shuffled[0] = value;
+      } else {
+        rand = Math.floor(Math.random() * (index + 1));
+        shuffled[index] = shuffled[rand];
+        shuffled[rand] = value;
+      }
+    });
+    return shuffled;
+  };
+
+  // Sort the object's values by a criterion produced by an iterator.
+  _.sortBy = function(obj, iterator, context) {
+    return _.pluck(_.map(obj, function(value, index, list) {
+      return {
+        value : value,
+        criteria : iterator.call(context, value, index, list)
+      };
+    }).sort(function(left, right) {
+      var a = left.criteria, b = right.criteria;
+      return a < b ? -1 : a > b ? 1 : 0;
+    }), 'value');
+  };
+
+  // Groups the object's values by a criterion. Pass either a string attribute
+  // to group by, or a function that returns the criterion.
+  _.groupBy = function(obj, val) {
+    var result = {};
+    var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; };
+    each(obj, function(value, index) {
+      var key = iterator(value, index);
+      (result[key] || (result[key] = [])).push(value);
+    });
+    return result;
+  };
+
+  // Use a comparator function to figure out at what index an object should
+  // be inserted so as to maintain order. Uses binary search.
+  _.sortedIndex = function(array, obj, iterator) {
+    iterator || (iterator = _.identity);
+    var low = 0, high = array.length;
+    while (low < high) {
+      var mid = (low + high) >> 1;
+      iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid;
+    }
+    return low;
+  };
+
+  // Safely convert anything iterable into a real, live array.
+  _.toArray = function(iterable) {
+    if (!iterable)                return [];
+    if (iterable.toArray)         return iterable.toArray();
+    if (_.isArray(iterable))      return slice.call(iterable);
+    if (_.isArguments(iterable))  return slice.call(iterable);
+    return _.values(iterable);
+  };
+
+  // Return the number of elements in an object.
+  _.size = function(obj) {
+    return _.toArray(obj).length;
+  };
+
+  // Array Functions
+  // ---------------
+
+  // Get the first element of an array. Passing **n** will return the first N
+  // values in the array. Aliased as `head`. The **guard** check allows it to work
+  // with `_.map`.
+  _.first = _.head = function(array, n, guard) {
+    return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
+  };
+
+  // Returns everything but the last entry of the array. Especcialy useful on
+  // the arguments object. Passing **n** will return all the values in
+  // the array, excluding the last N. The **guard** check allows it to work with
+  // `_.map`.
+  _.initial = function(array, n, guard) {
+    return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
+  };
+
+  // Get the last element of an array. Passing **n** will return the last N
+  // values in the array. The **guard** check allows it to work with `_.map`.
+  _.last = function(array, n, guard) {
+    if ((n != null) && !guard) {
+      return slice.call(array, Math.max(array.length - n, 0));
+    } else {
+      return array[array.length - 1];
+    }
+  };
+
+  // Returns everything but the first entry of the array. Aliased as `tail`.
+  // Especially useful on the arguments object. Passing an **index** will return
+  // the rest of the values in the array from that index onward. The **guard**
+  // check allows it to work with `_.map`.
+  _.rest = _.tail = function(array, index, guard) {
+    return slice.call(array, (index == null) || guard ? 1 : index);
+  };
+
+  // Trim out all falsy values from an array.
+  _.compact = function(array) {
+    return _.filter(array, function(value){ return !!value; });
+  };
+
+  // Return a completely flattened version of an array.
+  _.flatten = function(array, shallow) {
+    return _.reduce(array, function(memo, value) {
+      if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value));
+      memo[memo.length] = value;
+      return memo;
+    }, []);
+  };
+
+  // Return a version of the array that does not contain the specified value(s).
+  _.without = function(array) {
+    return _.difference(array, slice.call(arguments, 1));
+  };
+
+  // Produce a duplicate-free version of the array. If the array has already
+  // been sorted, you have the option of using a faster algorithm.
+  // Aliased as `unique`.
+  _.uniq = _.unique = function(array, isSorted, iterator) {
+    var initial = iterator ? _.map(array, iterator) : array;
+    var result = [];
+    _.reduce(initial, function(memo, el, i) {
+      if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) {
+        memo[memo.length] = el;
+        result[result.length] = array[i];
+      }
+      return memo;
+    }, []);
+    return result;
+  };
+
+  // Produce an array that contains the union: each distinct element from all of
+  // the passed-in arrays.
+  _.union = function() {
+    return _.uniq(_.flatten(arguments, true));
+  };
+
+  // Produce an array that contains every item shared between all the
+  // passed-in arrays. (Aliased as "intersect" for back-compat.)
+  _.intersection = _.intersect = function(array) {
+    var rest = slice.call(arguments, 1);
+    return _.filter(_.uniq(array), function(item) {
+      return _.every(rest, function(other) {
+        return _.indexOf(other, item) >= 0;
+      });
+    });
+  };
+
+  // Take the difference between one array and another.
+  // Only the elements present in just the first array will remain.
+  _.difference = function(array, other) {
+    return _.filter(array, function(value){ return !_.include(other, value); });
+  };
+
+  // Zip together multiple lists into a single array -- elements that share
+  // an index go together.
+  _.zip = function() {
+    var args = slice.call(arguments);
+    var length = _.max(_.pluck(args, 'length'));
+    var results = new Array(length);
+    for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
+    return results;
+  };
+
+  // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
+  // we need this function. Return the position of the first occurrence of an
+  // item in an array, or -1 if the item is not included in the array.
+  // Delegates to **ECMAScript 5**'s native `indexOf` if available.
+  // If the array is large and already in sort order, pass `true`
+  // for **isSorted** to use binary search.
+  _.indexOf = function(array, item, isSorted) {
+    if (array == null) return -1;
+    var i, l;
+    if (isSorted) {
+      i = _.sortedIndex(array, item);
+      return array[i] === item ? i : -1;
+    }
+    if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
+    for (i = 0, l = array.length; i < l; i++) if (array[i] === item) return i;
+    return -1;
+  };
+
+  // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
+  _.lastIndexOf = function(array, item) {
+    if (array == null) return -1;
+    if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
+    var i = array.length;
+    while (i--) if (array[i] === item) return i;
+    return -1;
+  };
+
+  // Generate an integer Array containing an arithmetic progression. A port of
+  // the native Python `range()` function. See
+  // [the Python documentation](http://docs.python.org/library/functions.html#range).
+  _.range = function(start, stop, step) {
+    if (arguments.length <= 1) {
+      stop = start || 0;
+      start = 0;
+    }
+    step = arguments[2] || 1;
+
+    var len = Math.max(Math.ceil((stop - start) / step), 0);
+    var idx = 0;
+    var range = new Array(len);
+
+    while(idx < len) {
+      range[idx++] = start;
+      start += step;
+    }
+
+    return range;
+  };
+
+  // Function (ahem) Functions
+  // ------------------
+
+  // Reusable constructor function for prototype setting.
+  var ctor = function(){};
+
+  // Create a function bound to a given object (assigning `this`, and arguments,
+  // optionally). Binding with arguments is also known as `curry`.
+  // Delegates to **ECMAScript 5**'s native `Function.bind` if available.
+  // We check for `func.bind` first, to fail fast when `func` is undefined.
+  _.bind = function bind(func, context) {
+    var bound, args;
+    if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
+    if (!_.isFunction(func)) throw new TypeError;
+    args = slice.call(arguments, 2);
+    return bound = function() {
+      if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
+      ctor.prototype = func.prototype;
+      var self = new ctor;
+      var result = func.apply(self, args.concat(slice.call(arguments)));
+      if (Object(result) === result) return result;
+      return self;
+    };
+  };
+
+  // Bind all of an object's methods to that object. Useful for ensuring that
+  // all callbacks defined on an object belong to it.
+  _.bindAll = function(obj) {
+    var funcs = slice.call(arguments, 1);
+    if (funcs.length == 0) funcs = _.functions(obj);
+    each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
+    return obj;
+  };
+
+  // Memoize an expensive function by storing its results.
+  _.memoize = function(func, hasher) {
+    var memo = {};
+    hasher || (hasher = _.identity);
+    return function() {
+      var key = hasher.apply(this, arguments);
+      return hasOwnProperty.call(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
+    };
+  };
+
+  // Delays a function for the given number of milliseconds, and then calls
+  // it with the arguments supplied.
+  _.delay = function(func, wait) {
+    var args = slice.call(arguments, 2);
+    return setTimeout(function(){ return func.apply(func, args); }, wait);
+  };
+
+  // Defers a function, scheduling it to run after the current call stack has
+  // cleared.
+  _.defer = function(func) {
+    return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
+  };
+
+  // Returns a function, that, when invoked, will only be triggered at most once
+  // during a given window of time.
+  _.throttle = function(func, wait) {
+    var context, args, timeout, throttling, more;
+    var whenDone = _.debounce(function(){ more = throttling = false; }, wait);
+    return function() {
+      context = this; args = arguments;
+      var later = function() {
+        timeout = null;
+        if (more) func.apply(context, args);
+        whenDone();
+      };
+      if (!timeout) timeout = setTimeout(later, wait);
+      if (throttling) {
+        more = true;
+      } else {
+        func.apply(context, args);
+      }
+      whenDone();
+      throttling = true;
+    };
+  };
+
+  // Returns a function, that, as long as it continues to be invoked, will not
+  // be triggered. The function will be called after it stops being called for
+  // N milliseconds.
+  _.debounce = function(func, wait) {
+    var timeout;
+    return function() {
+      var context = this, args = arguments;
+      var later = function() {
+        timeout = null;
+        func.apply(context, args);
+      };
+      clearTimeout(timeout);
+      timeout = setTimeout(later, wait);
+    };
+  };
+
+  // Returns a function that will be executed at most one time, no matter how
+  // often you call it. Useful for lazy initialization.
+  _.once = function(func) {
+    var ran = false, memo;
+    return function() {
+      if (ran) return memo;
+      ran = true;
+      return memo = func.apply(this, arguments);
+    };
+  };
+
+  // Returns the first function passed as an argument to the second,
+  // allowing you to adjust arguments, run code before and after, and
+  // conditionally execute the original function.
+  _.wrap = function(func, wrapper) {
+    return function() {
+      var args = [func].concat(slice.call(arguments));
+      return wrapper.apply(this, args);
+    };
+  };
+
+  // Returns a function that is the composition of a list of functions, each
+  // consuming the return value of the function that follows.
+  _.compose = function() {
+    var funcs = slice.call(arguments);
+    return function() {
+      var args = slice.call(arguments);
+      for (var i = funcs.length - 1; i >= 0; i--) {
+        args = [funcs[i].apply(this, args)];
+      }
+      return args[0];
+    };
+  };
+
+  // Returns a function that will only be executed after being called N times.
+  _.after = function(times, func) {
+    if (times <= 0) return func();
+    return function() {
+      if (--times < 1) { return func.apply(this, arguments); }
+    };
+  };
+
+  // Object Functions
+  // ----------------
+
+  // Retrieve the names of an object's properties.
+  // Delegates to **ECMAScript 5**'s native `Object.keys`
+  _.keys = nativeKeys || function(obj) {
+    if (obj !== Object(obj)) throw new TypeError('Invalid object');
+    var keys = [];
+    for (var key in obj) if (hasOwnProperty.call(obj, key)) keys[keys.length] = key;
+    return keys;
+  };
+
+  // Retrieve the values of an object's properties.
+  _.values = function(obj) {
+    return _.map(obj, _.identity);
+  };
+
+  // Return a sorted list of the function names available on the object.
+  // Aliased as `methods`
+  _.functions = _.methods = function(obj) {
+    var names = [];
+    for (var key in obj) {
+      if (_.isFunction(obj[key])) names.push(key);
+    }
+    return names.sort();
+  };
+
+  // Extend a given object with all the properties in passed-in object(s).
+  _.extend = function(obj) {
+    each(slice.call(arguments, 1), function(source) {
+      for (var prop in source) {
+        if (source[prop] !== void 0) obj[prop] = source[prop];
+      }
+    });
+    return obj;
+  };
+
+  // Fill in a given object with default properties.
+  _.defaults = function(obj) {
+    each(slice.call(arguments, 1), function(source) {
+      for (var prop in source) {
+        if (obj[prop] == null) obj[prop] = source[prop];
+      }
+    });
+    return obj;
+  };
+
+  // Create a (shallow-cloned) duplicate of an object.
+  _.clone = function(obj) {
+    if (!_.isObject(obj)) return obj;
+    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
+  };
+
+  // Invokes interceptor with the obj, and then returns obj.
+  // The primary purpose of this method is to "tap into" a method chain, in
+  // order to perform operations on intermediate results within the chain.
+  _.tap = function(obj, interceptor) {
+    interceptor(obj);
+    return obj;
+  };
+
+  // Internal recursive comparison function.
+  function eq(a, b, stack) {
+    // Identical objects are equal. `0 === -0`, but they aren't identical.
+    // See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal.
+    if (a === b) return a !== 0 || 1 / a == 1 / b;
+    // A strict comparison is necessary because `null == undefined`.
+    if (a == null || b == null) return a === b;
+    // Unwrap any wrapped objects.
+    if (a._chain) a = a._wrapped;
+    if (b._chain) b = b._wrapped;
+    // Invoke a custom `isEqual` method if one is provided.
+    if (_.isFunction(a.isEqual)) return a.isEqual(b);
+    if (_.isFunction(b.isEqual)) return b.isEqual(a);
+    // Compare `[[Class]]` names.
+    var className = toString.call(a);
+    if (className != toString.call(b)) return false;
+    switch (className) {
+      // Strings, numbers, dates, and booleans are compared by value.
+      case '[object String]':
+        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
+        // equivalent to `new String("5")`.
+        return String(a) == String(b);
+      case '[object Number]':
+        a = +a;
+        b = +b;
+        // `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for
+        // other numeric values.
+        return a != a ? b != b : (a == 0 ? 1 / a == 1 / b : a == b);
+      case '[object Date]':
+      case '[object Boolean]':
+        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
+        // millisecond representations. Note that invalid dates with millisecond representations
+        // of `NaN` are not equivalent.
+        return +a == +b;
+      // RegExps are compared by their source patterns and flags.
+      case '[object RegExp]':
+        return a.source == b.source &&
+               a.global == b.global &&
+               a.multiline == b.multiline &&
+               a.ignoreCase == b.ignoreCase;
+    }
+    if (typeof a != 'object' || typeof b != 'object') return false;
+    // Assume equality for cyclic structures. The algorithm for detecting cyclic
+    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
+    var length = stack.length;
+    while (length--) {
+      // Linear search. Performance is inversely proportional to the number of
+      // unique nested structures.
+      if (stack[length] == a) return true;
+    }
+    // Add the first object to the stack of traversed objects.
+    stack.push(a);
+    var size = 0, result = true;
+    // Recursively compare objects and arrays.
+    if (className == '[object Array]') {
+      // Compare array lengths to determine if a deep comparison is necessary.
+      size = a.length;
+      result = size == b.length;
+      if (result) {
+        // Deep compare the contents, ignoring non-numeric properties.
+        while (size--) {
+          // Ensure commutative equality for sparse arrays.
+          if (!(result = size in a == size in b && eq(a[size], b[size], stack))) break;
+        }
+      }
+    } else {
+      // Objects with different constructors are not equivalent.
+      if ("constructor" in a != "constructor" in b || a.constructor != b.constructor) return false;
+      // Deep compare objects.
+      for (var key in a) {
+        if (hasOwnProperty.call(a, key)) {
+          // Count the expected number of properties.
+          size++;
+          // Deep compare each member.
+          if (!(result = hasOwnProperty.call(b, key) && eq(a[key], b[key], stack))) break;
+        }
+      }
+      // Ensure that both objects contain the same number of properties.
+      if (result) {
+        for (key in b) {
+          if (hasOwnProperty.call(b, key) && !(size--)) break;
+        }
+        result = !size;
+      }
+    }
+    // Remove the first object from the stack of traversed objects.
+    stack.pop();
+    return result;
+  }
+
+  // Perform a deep comparison to check if two objects are equal.
+  _.isEqual = function(a, b) {
+    return eq(a, b, []);
+  };
+
+  // Is a given array, string, or object empty?
+  // An "empty" object has no enumerable own-properties.
+  _.isEmpty = function(obj) {
+    if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
+    for (var key in obj) if (hasOwnProperty.call(obj, key)) return false;
+    return true;
+  };
+
+  // Is a given value a DOM element?
+  _.isElement = function(obj) {
+    return !!(obj && obj.nodeType == 1);
+  };
+
+  // Is a given value an array?
+  // Delegates to ECMA5's native Array.isArray
+  _.isArray = nativeIsArray || function(obj) {
+    return toString.call(obj) == '[object Array]';
+  };
+
+  // Is a given variable an object?
+  _.isObject = function(obj) {
+    return obj === Object(obj);
+  };
+
+  // Is a given variable an arguments object?
+  if (toString.call(arguments) == '[object Arguments]') {
+    _.isArguments = function(obj) {
+      return toString.call(obj) == '[object Arguments]';
+    };
+  } else {
+    _.isArguments = function(obj) {
+      return !!(obj && hasOwnProperty.call(obj, 'callee'));
+    };
+  }
+
+  // Is a given value a function?
+  _.isFunction = function(obj) {
+    return toString.call(obj) == '[object Function]';
+  };
+
+  // Is a given value a string?
+  _.isString = function(obj) {
+    return toString.call(obj) == '[object String]';
+  };
+
+  // Is a given value a number?
+  _.isNumber = function(obj) {
+    return toString.call(obj) == '[object Number]';
+  };
+
+  // Is the given value `NaN`?
+  _.isNaN = function(obj) {
+    // `NaN` is the only value for which `===` is not reflexive.
+    return obj !== obj;
+  };
+
+  // Is a given value a boolean?
+  _.isBoolean = function(obj) {
+    return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
+  };
+
+  // Is a given value a date?
+  _.isDate = function(obj) {
+    return toString.call(obj) == '[object Date]';
+  };
+
+  // Is the given value a regular expression?
+  _.isRegExp = function(obj) {
+    return toString.call(obj) == '[object RegExp]';
+  };
+
+  // Is a given value equal to null?
+  _.isNull = function(obj) {
+    return obj === null;
+  };
+
+  // Is a given variable undefined?
+  _.isUndefined = function(obj) {
+    return obj === void 0;
+  };
+
+  // Utility Functions
+  // -----------------
+
+  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
+  // previous owner. Returns a reference to the Underscore object.
+  _.noConflict = function() {
+    root._ = previousUnderscore;
+    return this;
+  };
+
+  // Keep the identity function around for default iterators.
+  _.identity = function(value) {
+    return value;
+  };
+
+  // Run a function **n** times.
+  _.times = function (n, iterator, context) {
+    for (var i = 0; i < n; i++) iterator.call(context, i);
+  };
+
+  // Escape a string for HTML interpolation.
+  _.escape = function(string) {
+    return (''+string).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, '&#x27;').replace(/\//g,'&#x2F;');
+  };
+
+  // Add your own custom functions to the Underscore object, ensuring that
+  // they're correctly added to the OOP wrapper as well.
+  _.mixin = function(obj) {
+    each(_.functions(obj), function(name){
+      addToWrapper(name, _[name] = obj[name]);
+    });
+  };
+
+  // Generate a unique integer id (unique within the entire client session).
+  // Useful for temporary DOM ids.
+  var idCounter = 0;
+  _.uniqueId = function(prefix) {
+    var id = idCounter++;
+    return prefix ? prefix + id : id;
+  };
+
+  // By default, Underscore uses ERB-style template delimiters, change the
+  // following template settings to use alternative delimiters.
+  _.templateSettings = {
+    evaluate    : /<%([\s\S]+?)%>/g,
+    interpolate : /<%=([\s\S]+?)%>/g,
+    escape      : /<%-([\s\S]+?)%>/g
+  };
+
+  // JavaScript micro-templating, similar to John Resig's implementation.
+  // Underscore templating handles arbitrary delimiters, preserves whitespace,
+  // and correctly escapes quotes within interpolated code.
+  _.template = function(str, data) {
+    var c  = _.templateSettings;
+    var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' +
+      'with(obj||{}){__p.push(\'' +
+      str.replace(/\\/g, '\\\\')
+         .replace(/'/g, "\\'")
+         .replace(c.escape, function(match, code) {
+           return "',_.escape(" + code.replace(/\\'/g, "'") + "),'";
+         })
+         .replace(c.interpolate, function(match, code) {
+           return "'," + code.replace(/\\'/g, "'") + ",'";
+         })
+         .replace(c.evaluate || null, function(match, code) {
+           return "');" + code.replace(/\\'/g, "'")
+                              .replace(/[\r\n\t]/g, ' ') + ";__p.push('";
+         })
+         .replace(/\r/g, '\\r')
+         .replace(/\n/g, '\\n')
+         .replace(/\t/g, '\\t')
+         + "');}return __p.join('');";
+    var func = new Function('obj', '_', tmpl);
+    return data ? func(data, _) : function(data) { return func(data, _) };
+  };
+
+  // The OOP Wrapper
+  // ---------------
+
+  // If Underscore is called as a function, it returns a wrapped object that
+  // can be used OO-style. This wrapper holds altered versions of all the
+  // underscore functions. Wrapped objects may be chained.
+  var wrapper = function(obj) { this._wrapped = obj; };
+
+  // Expose `wrapper.prototype` as `_.prototype`
+  _.prototype = wrapper.prototype;
+
+  // Helper function to continue chaining intermediate results.
+  var result = function(obj, chain) {
+    return chain ? _(obj).chain() : obj;
+  };
+
+  // A method to easily add functions to the OOP wrapper.
+  var addToWrapper = function(name, func) {
+    wrapper.prototype[name] = function() {
+      var args = slice.call(arguments);
+      unshift.call(args, this._wrapped);
+      return result(func.apply(_, args), this._chain);
+    };
+  };
+
+  // Add all of the Underscore functions to the wrapper object.
+  _.mixin(_);
+
+  // Add all mutator Array functions to the wrapper.
+  each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
+    var method = ArrayProto[name];
+    wrapper.prototype[name] = function() {
+      method.apply(this._wrapped, arguments);
+      return result(this._wrapped, this._chain);
+    };
+  });
+
+  // Add all accessor Array functions to the wrapper.
+  each(['concat', 'join', 'slice'], function(name) {
+    var method = ArrayProto[name];
+    wrapper.prototype[name] = function() {
+      return result(method.apply(this._wrapped, arguments), this._chain);
+    };
+  });
+
+  // Start chaining a wrapped Underscore object.
+  wrapper.prototype.chain = function() {
+    this._chain = true;
+    return this;
+  };
+
+  // Extracts the result from a wrapped and chained object.
+  wrapper.prototype.value = function() {
+    return this._wrapped;
+  };
+
+}).call(this);
diff --git a/doc/html/_static/up-pressed.png b/doc/html/_static/up-pressed.png
new file mode 100644
index 0000000..8bd587a
Binary files /dev/null and b/doc/html/_static/up-pressed.png differ
diff --git a/doc/html/_static/up.png b/doc/html/_static/up.png
new file mode 100644
index 0000000..b946256
Binary files /dev/null and b/doc/html/_static/up.png differ
diff --git a/doc/html/_static/websupport.js b/doc/html/_static/websupport.js
new file mode 100644
index 0000000..e9bd1b8
--- /dev/null
+++ b/doc/html/_static/websupport.js
@@ -0,0 +1,808 @@
+/*
+ * websupport.js
+ * ~~~~~~~~~~~~~
+ *
+ * sphinx.websupport utilties for all documentation.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+(function($) {
+  $.fn.autogrow = function() {
+    return this.each(function() {
+    var textarea = this;
+
+    $.fn.autogrow.resize(textarea);
+
+    $(textarea)
+      .focus(function() {
+        textarea.interval = setInterval(function() {
+          $.fn.autogrow.resize(textarea);
+        }, 500);
+      })
+      .blur(function() {
+        clearInterval(textarea.interval);
+      });
+    });
+  };
+
+  $.fn.autogrow.resize = function(textarea) {
+    var lineHeight = parseInt($(textarea).css('line-height'), 10);
+    var lines = textarea.value.split('\n');
+    var columns = textarea.cols;
+    var lineCount = 0;
+    $.each(lines, function() {
+      lineCount += Math.ceil(this.length / columns) || 1;
+    });
+    var height = lineHeight * (lineCount + 1);
+    $(textarea).css('height', height);
+  };
+})(jQuery);
+
+(function($) {
+  var comp, by;
+
+  function init() {
+    initEvents();
+    initComparator();
+  }
+
+  function initEvents() {
+    $('a.comment-close').live("click", function(event) {
+      event.preventDefault();
+      hide($(this).attr('id').substring(2));
+    });
+    $('a.vote').live("click", function(event) {
+      event.preventDefault();
+      handleVote($(this));
+    });
+    $('a.reply').live("click", function(event) {
+      event.preventDefault();
+      openReply($(this).attr('id').substring(2));
+    });
+    $('a.close-reply').live("click", function(event) {
+      event.preventDefault();
+      closeReply($(this).attr('id').substring(2));
+    });
+    $('a.sort-option').live("click", function(event) {
+      event.preventDefault();
+      handleReSort($(this));
+    });
+    $('a.show-proposal').live("click", function(event) {
+      event.preventDefault();
+      showProposal($(this).attr('id').substring(2));
+    });
+    $('a.hide-proposal').live("click", function(event) {
+      event.preventDefault();
+      hideProposal($(this).attr('id').substring(2));
+    });
+    $('a.show-propose-change').live("click", function(event) {
+      event.preventDefault();
+      showProposeChange($(this).attr('id').substring(2));
+    });
+    $('a.hide-propose-change').live("click", function(event) {
+      event.preventDefault();
+      hideProposeChange($(this).attr('id').substring(2));
+    });
+    $('a.accept-comment').live("click", function(event) {
+      event.preventDefault();
+      acceptComment($(this).attr('id').substring(2));
+    });
+    $('a.delete-comment').live("click", function(event) {
+      event.preventDefault();
+      deleteComment($(this).attr('id').substring(2));
+    });
+    $('a.comment-markup').live("click", function(event) {
+      event.preventDefault();
+      toggleCommentMarkupBox($(this).attr('id').substring(2));
+    });
+  }
+
+  /**
+   * Set comp, which is a comparator function used for sorting and
+   * inserting comments into the list.
+   */
+  function setComparator() {
+    // If the first three letters are "asc", sort in ascending order
+    // and remove the prefix.
+    if (by.substring(0,3) == 'asc') {
+      var i = by.substring(3);
+      comp = function(a, b) { return a[i] - b[i]; };
+    } else {
+      // Otherwise sort in descending order.
+      comp = function(a, b) { return b[by] - a[by]; };
+    }
+
+    // Reset link styles and format the selected sort option.
+    $('a.sel').attr('href', '#').removeClass('sel');
+    $('a.by' + by).removeAttr('href').addClass('sel');
+  }
+
+  /**
+   * Create a comp function. If the user has preferences stored in
+   * the sortBy cookie, use those, otherwise use the default.
+   */
+  function initComparator() {
+    by = 'rating'; // Default to sort by rating.
+    // If the sortBy cookie is set, use that instead.
+    if (document.cookie.length > 0) {
+      var start = document.cookie.indexOf('sortBy=');
+      if (start != -1) {
+        start = start + 7;
+        var end = document.cookie.indexOf(";", start);
+        if (end == -1) {
+          end = document.cookie.length;
+          by = unescape(document.cookie.substring(start, end));
+        }
+      }
+    }
+    setComparator();
+  }
+
+  /**
+   * Show a comment div.
+   */
+  function show(id) {
+    $('#ao' + id).hide();
+    $('#ah' + id).show();
+    var context = $.extend({id: id}, opts);
+    var popup = $(renderTemplate(popupTemplate, context)).hide();
+    popup.find('textarea[name="proposal"]').hide();
+    popup.find('a.by' + by).addClass('sel');
+    var form = popup.find('#cf' + id);
+    form.submit(function(event) {
+      event.preventDefault();
+      addComment(form);
+    });
+    $('#s' + id).after(popup);
+    popup.slideDown('fast', function() {
+      getComments(id);
+    });
+  }
+
+  /**
+   * Hide a comment div.
+   */
+  function hide(id) {
+    $('#ah' + id).hide();
+    $('#ao' + id).show();
+    var div = $('#sc' + id);
+    div.slideUp('fast', function() {
+      div.remove();
+    });
+  }
+
+  /**
+   * Perform an ajax request to get comments for a node
+   * and insert the comments into the comments tree.
+   */
+  function getComments(id) {
+    $.ajax({
+     type: 'GET',
+     url: opts.getCommentsURL,
+     data: {node: id},
+     success: function(data, textStatus, request) {
+       var ul = $('#cl' + id);
+       var speed = 100;
+       $('#cf' + id)
+         .find('textarea[name="proposal"]')
+         .data('source', data.source);
+
+       if (data.comments.length === 0) {
+         ul.html('<li>No comments yet.</li>');
+         ul.data('empty', true);
+       } else {
+         // If there are comments, sort them and put them in the list.
+         var comments = sortComments(data.comments);
+         speed = data.comments.length * 100;
+         appendComments(comments, ul);
+         ul.data('empty', false);
+       }
+       $('#cn' + id).slideUp(speed + 200);
+       ul.slideDown(speed);
+     },
+     error: function(request, textStatus, error) {
+       showError('Oops, there was a problem retrieving the comments.');
+     },
+     dataType: 'json'
+    });
+  }
+
+  /**
+   * Add a comment via ajax and insert the comment into the comment tree.
+   */
+  function addComment(form) {
+    var node_id = form.find('input[name="node"]').val();
+    var parent_id = form.find('input[name="parent"]').val();
+    var text = form.find('textarea[name="comment"]').val();
+    var proposal = form.find('textarea[name="proposal"]').val();
+
+    if (text == '') {
+      showError('Please enter a comment.');
+      return;
+    }
+
+    // Disable the form that is being submitted.
+    form.find('textarea,input').attr('disabled', 'disabled');
+
+    // Send the comment to the server.
+    $.ajax({
+      type: "POST",
+      url: opts.addCommentURL,
+      dataType: 'json',
+      data: {
+        node: node_id,
+        parent: parent_id,
+        text: text,
+        proposal: proposal
+      },
+      success: function(data, textStatus, error) {
+        // Reset the form.
+        if (node_id) {
+          hideProposeChange(node_id);
+        }
+        form.find('textarea')
+          .val('')
+          .add(form.find('input'))
+          .removeAttr('disabled');
+	var ul = $('#cl' + (node_id || parent_id));
+        if (ul.data('empty')) {
+          $(ul).empty();
+          ul.data('empty', false);
+        }
+        insertComment(data.comment);
+        var ao = $('#ao' + node_id);
+        ao.find('img').attr({'src': opts.commentBrightImage});
+        if (node_id) {
+          // if this was a "root" comment, remove the commenting box
+          // (the user can get it back by reopening the comment popup)
+          $('#ca' + node_id).slideUp();
+        }
+      },
+      error: function(request, textStatus, error) {
+        form.find('textarea,input').removeAttr('disabled');
+        showError('Oops, there was a problem adding the comment.');
+      }
+    });
+  }
+
+  /**
+   * Recursively append comments to the main comment list and children
+   * lists, creating the comment tree.
+   */
+  function appendComments(comments, ul) {
+    $.each(comments, function() {
+      var div = createCommentDiv(this);
+      ul.append($(document.createElement('li')).html(div));
+      appendComments(this.children, div.find('ul.comment-children'));
+      // To avoid stagnating data, don't store the comments children in data.
+      this.children = null;
+      div.data('comment', this);
+    });
+  }
+
+  /**
+   * After adding a new comment, it must be inserted in the correct
+   * location in the comment tree.
+   */
+  function insertComment(comment) {
+    var div = createCommentDiv(comment);
+
+    // To avoid stagnating data, don't store the comments children in data.
+    comment.children = null;
+    div.data('comment', comment);
+
+    var ul = $('#cl' + (comment.node || comment.parent));
+    var siblings = getChildren(ul);
+
+    var li = $(document.createElement('li'));
+    li.hide();
+
+    // Determine where in the parents children list to insert this comment.
+    for(i=0; i < siblings.length; i++) {
+      if (comp(comment, siblings[i]) <= 0) {
+        $('#cd' + siblings[i].id)
+          .parent()
+          .before(li.html(div));
+        li.slideDown('fast');
+        return;
+      }
+    }
+
+    // If we get here, this comment rates lower than all the others,
+    // or it is the only comment in the list.
+    ul.append(li.html(div));
+    li.slideDown('fast');
+  }
+
+  function acceptComment(id) {
+    $.ajax({
+      type: 'POST',
+      url: opts.acceptCommentURL,
+      data: {id: id},
+      success: function(data, textStatus, request) {
+        $('#cm' + id).fadeOut('fast');
+        $('#cd' + id).removeClass('moderate');
+      },
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem accepting the comment.');
+      }
+    });
+  }
+
+  function deleteComment(id) {
+    $.ajax({
+      type: 'POST',
+      url: opts.deleteCommentURL,
+      data: {id: id},
+      success: function(data, textStatus, request) {
+        var div = $('#cd' + id);
+        if (data == 'delete') {
+          // Moderator mode: remove the comment and all children immediately
+          div.slideUp('fast', function() {
+            div.remove();
+          });
+          return;
+        }
+        // User mode: only mark the comment as deleted
+        div
+          .find('span.user-id:first')
+          .text('[deleted]').end()
+          .find('div.comment-text:first')
+          .text('[deleted]').end()
+          .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id +
+                ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id)
+          .remove();
+        var comment = div.data('comment');
+        comment.username = '[deleted]';
+        comment.text = '[deleted]';
+        div.data('comment', comment);
+      },
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem deleting the comment.');
+      }
+    });
+  }
+
+  function showProposal(id) {
+    $('#sp' + id).hide();
+    $('#hp' + id).show();
+    $('#pr' + id).slideDown('fast');
+  }
+
+  function hideProposal(id) {
+    $('#hp' + id).hide();
+    $('#sp' + id).show();
+    $('#pr' + id).slideUp('fast');
+  }
+
+  function showProposeChange(id) {
+    $('#pc' + id).hide();
+    $('#hc' + id).show();
+    var textarea = $('#pt' + id);
+    textarea.val(textarea.data('source'));
+    $.fn.autogrow.resize(textarea[0]);
+    textarea.slideDown('fast');
+  }
+
+  function hideProposeChange(id) {
+    $('#hc' + id).hide();
+    $('#pc' + id).show();
+    var textarea = $('#pt' + id);
+    textarea.val('').removeAttr('disabled');
+    textarea.slideUp('fast');
+  }
+
+  function toggleCommentMarkupBox(id) {
+    $('#mb' + id).toggle();
+  }
+
+  /** Handle when the user clicks on a sort by link. */
+  function handleReSort(link) {
+    var classes = link.attr('class').split(/\s+/);
+    for (var i=0; i<classes.length; i++) {
+      if (classes[i] != 'sort-option') {
+	by = classes[i].substring(2);
+      }
+    }
+    setComparator();
+    // Save/update the sortBy cookie.
+    var expiration = new Date();
+    expiration.setDate(expiration.getDate() + 365);
+    document.cookie= 'sortBy=' + escape(by) +
+                     ';expires=' + expiration.toUTCString();
+    $('ul.comment-ul').each(function(index, ul) {
+      var comments = getChildren($(ul), true);
+      comments = sortComments(comments);
+      appendComments(comments, $(ul).empty());
+    });
+  }
+
+  /**
+   * Function to process a vote when a user clicks an arrow.
+   */
+  function handleVote(link) {
+    if (!opts.voting) {
+      showError("You'll need to login to vote.");
+      return;
+    }
+
+    var id = link.attr('id');
+    if (!id) {
+      // Didn't click on one of the voting arrows.
+      return;
+    }
+    // If it is an unvote, the new vote value is 0,
+    // Otherwise it's 1 for an upvote, or -1 for a downvote.
+    var value = 0;
+    if (id.charAt(1) != 'u') {
+      value = id.charAt(0) == 'u' ? 1 : -1;
+    }
+    // The data to be sent to the server.
+    var d = {
+      comment_id: id.substring(2),
+      value: value
+    };
+
+    // Swap the vote and unvote links.
+    link.hide();
+    $('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id)
+      .show();
+
+    // The div the comment is displayed in.
+    var div = $('div#cd' + d.comment_id);
+    var data = div.data('comment');
+
+    // If this is not an unvote, and the other vote arrow has
+    // already been pressed, unpress it.
+    if ((d.value !== 0) && (data.vote === d.value * -1)) {
+      $('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide();
+      $('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show();
+    }
+
+    // Update the comments rating in the local data.
+    data.rating += (data.vote === 0) ? d.value : (d.value - data.vote);
+    data.vote = d.value;
+    div.data('comment', data);
+
+    // Change the rating text.
+    div.find('.rating:first')
+      .text(data.rating + ' point' + (data.rating == 1 ? '' : 's'));
+
+    // Send the vote information to the server.
+    $.ajax({
+      type: "POST",
+      url: opts.processVoteURL,
+      data: d,
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem casting that vote.');
+      }
+    });
+  }
+
+  /**
+   * Open a reply form used to reply to an existing comment.
+   */
+  function openReply(id) {
+    // Swap out the reply link for the hide link
+    $('#rl' + id).hide();
+    $('#cr' + id).show();
+
+    // Add the reply li to the children ul.
+    var div = $(renderTemplate(replyTemplate, {id: id})).hide();
+    $('#cl' + id)
+      .prepend(div)
+      // Setup the submit handler for the reply form.
+      .find('#rf' + id)
+      .submit(function(event) {
+        event.preventDefault();
+        addComment($('#rf' + id));
+        closeReply(id);
+      })
+      .find('input[type=button]')
+      .click(function() {
+        closeReply(id);
+      });
+    div.slideDown('fast', function() {
+      $('#rf' + id).find('textarea').focus();
+    });
+  }
+
+  /**
+   * Close the reply form opened with openReply.
+   */
+  function closeReply(id) {
+    // Remove the reply div from the DOM.
+    $('#rd' + id).slideUp('fast', function() {
+      $(this).remove();
+    });
+
+    // Swap out the hide link for the reply link
+    $('#cr' + id).hide();
+    $('#rl' + id).show();
+  }
+
+  /**
+   * Recursively sort a tree of comments using the comp comparator.
+   */
+  function sortComments(comments) {
+    comments.sort(comp);
+    $.each(comments, function() {
+      this.children = sortComments(this.children);
+    });
+    return comments;
+  }
+
+  /**
+   * Get the children comments from a ul. If recursive is true,
+   * recursively include childrens' children.
+   */
+  function getChildren(ul, recursive) {
+    var children = [];
+    ul.children().children("[id^='cd']")
+      .each(function() {
+        var comment = $(this).data('comment');
+        if (recursive)
+          comment.children = getChildren($(this).find('#cl' + comment.id), true);
+        children.push(comment);
+      });
+    return children;
+  }
+
+  /** Create a div to display a comment in. */
+  function createCommentDiv(comment) {
+    if (!comment.displayed && !opts.moderator) {
+      return $('<div class="moderate">Thank you!  Your comment will show up '
+               + 'once it is has been approved by a moderator.</div>');
+    }
+    // Prettify the comment rating.
+    comment.pretty_rating = comment.rating + ' point' +
+      (comment.rating == 1 ? '' : 's');
+    // Make a class (for displaying not yet moderated comments differently)
+    comment.css_class = comment.displayed ? '' : ' moderate';
+    // Create a div for this comment.
+    var context = $.extend({}, opts, comment);
+    var div = $(renderTemplate(commentTemplate, context));
+
+    // If the user has voted on this comment, highlight the correct arrow.
+    if (comment.vote) {
+      var direction = (comment.vote == 1) ? 'u' : 'd';
+      div.find('#' + direction + 'v' + comment.id).hide();
+      div.find('#' + direction + 'u' + comment.id).show();
+    }
+
+    if (opts.moderator || comment.text != '[deleted]') {
+      div.find('a.reply').show();
+      if (comment.proposal_diff)
+        div.find('#sp' + comment.id).show();
+      if (opts.moderator && !comment.displayed)
+        div.find('#cm' + comment.id).show();
+      if (opts.moderator || (opts.username == comment.username))
+        div.find('#dc' + comment.id).show();
+    }
+    return div;
+  }
+
+  /**
+   * A simple template renderer. Placeholders such as <%id%> are replaced
+   * by context['id'] with items being escaped. Placeholders such as <#id#>
+   * are not escaped.
+   */
+  function renderTemplate(template, context) {
+    var esc = $(document.createElement('div'));
+
+    function handle(ph, escape) {
+      var cur = context;
+      $.each(ph.split('.'), function() {
+        cur = cur[this];
+      });
+      return escape ? esc.text(cur || "").html() : cur;
+    }
+
+    return template.replace(/<([%#])([\w\.]*)\1>/g, function() {
+      return handle(arguments[2], arguments[1] == '%' ? true : false);
+    });
+  }
+
+  /** Flash an error message briefly. */
+  function showError(message) {
+    $(document.createElement('div')).attr({'class': 'popup-error'})
+      .append($(document.createElement('div'))
+               .attr({'class': 'error-message'}).text(message))
+      .appendTo('body')
+      .fadeIn("slow")
+      .delay(2000)
+      .fadeOut("slow");
+  }
+
+  /** Add a link the user uses to open the comments popup. */
+  $.fn.comment = function() {
+    return this.each(function() {
+      var id = $(this).attr('id').substring(1);
+      var count = COMMENT_METADATA[id];
+      var title = count + ' comment' + (count == 1 ? '' : 's');
+      var image = count > 0 ? opts.commentBrightImage : opts.commentImage;
+      var addcls = count == 0 ? ' nocomment' : '';
+      $(this)
+        .append(
+          $(document.createElement('a')).attr({
+            href: '#',
+            'class': 'sphinx-comment-open' + addcls,
+            id: 'ao' + id
+          })
+            .append($(document.createElement('img')).attr({
+              src: image,
+              alt: 'comment',
+              title: title
+            }))
+            .click(function(event) {
+              event.preventDefault();
+              show($(this).attr('id').substring(2));
+            })
+        )
+        .append(
+          $(document.createElement('a')).attr({
+            href: '#',
+            'class': 'sphinx-comment-close hidden',
+            id: 'ah' + id
+          })
+            .append($(document.createElement('img')).attr({
+              src: opts.closeCommentImage,
+              alt: 'close',
+              title: 'close'
+            }))
+            .click(function(event) {
+              event.preventDefault();
+              hide($(this).attr('id').substring(2));
+            })
+        );
+    });
+  };
+
+  var opts = {
+    processVoteURL: '/_process_vote',
+    addCommentURL: '/_add_comment',
+    getCommentsURL: '/_get_comments',
+    acceptCommentURL: '/_accept_comment',
+    deleteCommentURL: '/_delete_comment',
+    commentImage: '/static/_static/comment.png',
+    closeCommentImage: '/static/_static/comment-close.png',
+    loadingImage: '/static/_static/ajax-loader.gif',
+    commentBrightImage: '/static/_static/comment-bright.png',
+    upArrow: '/static/_static/up.png',
+    downArrow: '/static/_static/down.png',
+    upArrowPressed: '/static/_static/up-pressed.png',
+    downArrowPressed: '/static/_static/down-pressed.png',
+    voting: false,
+    moderator: false
+  };
+
+  if (typeof COMMENT_OPTIONS != "undefined") {
+    opts = jQuery.extend(opts, COMMENT_OPTIONS);
+  }
+
+  var popupTemplate = '\
+    <div class="sphinx-comments" id="sc<%id%>">\
+      <p class="sort-options">\
+        Sort by:\
+        <a href="#" class="sort-option byrating">best rated</a>\
+        <a href="#" class="sort-option byascage">newest</a>\
+        <a href="#" class="sort-option byage">oldest</a>\
+      </p>\
+      <div class="comment-header">Comments</div>\
+      <div class="comment-loading" id="cn<%id%>">\
+        loading comments... <img src="<%loadingImage%>" alt="" /></div>\
+      <ul id="cl<%id%>" class="comment-ul"></ul>\
+      <div id="ca<%id%>">\
+      <p class="add-a-comment">Add a comment\
+        (<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\
+      <div class="comment-markup-box" id="mb<%id%>">\
+        reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \
+        <tt>``code``</tt>, \
+        code blocks: <tt>::</tt> and an indented block after blank line</div>\
+      <form method="post" id="cf<%id%>" class="comment-form" action="">\
+        <textarea name="comment" cols="80"></textarea>\
+        <p class="propose-button">\
+          <a href="#" id="pc<%id%>" class="show-propose-change">\
+            Propose a change ▹\
+          </a>\
+          <a href="#" id="hc<%id%>" class="hide-propose-change">\
+            Propose a change ▿\
+          </a>\
+        </p>\
+        <textarea name="proposal" id="pt<%id%>" cols="80"\
+                  spellcheck="false"></textarea>\
+        <input type="submit" value="Add comment" />\
+        <input type="hidden" name="node" value="<%id%>" />\
+        <input type="hidden" name="parent" value="" />\
+      </form>\
+      </div>\
+    </div>';
+
+  var commentTemplate = '\
+    <div id="cd<%id%>" class="sphinx-comment<%css_class%>">\
+      <div class="vote">\
+        <div class="arrow">\
+          <a href="#" id="uv<%id%>" class="vote" title="vote up">\
+            <img src="<%upArrow%>" />\
+          </a>\
+          <a href="#" id="uu<%id%>" class="un vote" title="vote up">\
+            <img src="<%upArrowPressed%>" />\
+          </a>\
+        </div>\
+        <div class="arrow">\
+          <a href="#" id="dv<%id%>" class="vote" title="vote down">\
+            <img src="<%downArrow%>" id="da<%id%>" />\
+          </a>\
+          <a href="#" id="du<%id%>" class="un vote" title="vote down">\
+            <img src="<%downArrowPressed%>" />\
+          </a>\
+        </div>\
+      </div>\
+      <div class="comment-content">\
+        <p class="tagline comment">\
+          <span class="user-id"><%username%></span>\
+          <span class="rating"><%pretty_rating%></span>\
+          <span class="delta"><%time.delta%></span>\
+        </p>\
+        <div class="comment-text comment"><#text#></div>\
+        <p class="comment-opts comment">\
+          <a href="#" class="reply hidden" id="rl<%id%>">reply ▹</a>\
+          <a href="#" class="close-reply" id="cr<%id%>">reply ▿</a>\
+          <a href="#" id="sp<%id%>" class="show-proposal">proposal ▹</a>\
+          <a href="#" id="hp<%id%>" class="hide-proposal">proposal ▿</a>\
+          <a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\
+          <span id="cm<%id%>" class="moderation hidden">\
+            <a href="#" id="ac<%id%>" class="accept-comment">accept</a>\
+          </span>\
+        </p>\
+        <pre class="proposal" id="pr<%id%>">\
+<#proposal_diff#>\
+        </pre>\
+          <ul class="comment-children" id="cl<%id%>"></ul>\
+        </div>\
+        <div class="clearleft"></div>\
+      </div>\
+    </div>';
+
+  var replyTemplate = '\
+    <li>\
+      <div class="reply-div" id="rd<%id%>">\
+        <form id="rf<%id%>">\
+          <textarea name="comment" cols="80"></textarea>\
+          <input type="submit" value="Add reply" />\
+          <input type="button" value="Cancel" />\
+          <input type="hidden" name="parent" value="<%id%>" />\
+          <input type="hidden" name="node" value="" />\
+        </form>\
+      </div>\
+    </li>';
+
+  $(document).ready(function() {
+    init();
+  });
+})(jQuery);
+
+$(document).ready(function() {
+  // add comment anchors for all paragraphs that are commentable
+  $('.sphinx-has-comment').comment();
+
+  // highlight search words in search results
+  $("div.context").each(function() {
+    var params = $.getQueryParameters();
+    var terms = (params.q) ? params.q[0].split(/\s+/) : [];
+    var result = $(this);
+    $.each(terms, function() {
+      result.highlightText(this.toLowerCase(), 'highlighted');
+    });
+  });
+
+  // directly open comment window if requested
+  var anchor = document.location.hash;
+  if (anchor.substring(0, 9) == '#comment-') {
+    $('#ao' + anchor.substring(9)).click();
+    document.location.hash = '#s' + anchor.substring(9);
+  }
+});
diff --git a/doc/html/api/fabio.html b/doc/html/api/fabio.html
new file mode 100644
index 0000000..a4c1f71
--- /dev/null
+++ b/doc/html/api/fabio.html
@@ -0,0 +1,119 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>FabIO Package — FabIO v0.1.2 documentation</title>
+    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0.1.2',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO v0.1.2 documentation" href="../index.html" />
+    <link rel="up" title="fabio" href="modules.html" />
+    <link rel="prev" title="fabio" href="modules.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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="right" >
+          <a href="modules.html" title="fabio"
+             accesskey="P">previous</a> |</li>
+        <li><a href="../index.html">FabIO v0.1.2 documentation</a> »</li>
+          <li><a href="modules.html" accesskey="U">fabio</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="fabio-package">
+<h1>FabIO Package<a class="headerlink" href="#fabio-package" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="id1">
+<h2><tt class="xref py py-mod docutils literal"><span class="pre">fabio</span></tt> Package<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
+<span class="target" id="module-fabio.__init__"></span></div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">FabIO Package</a><ul>
+<li><a class="reference internal" href="#id1"><tt class="docutils literal"><span class="pre">fabio</span></tt> Package</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="modules.html"
+                        title="previous chapter">fabio</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="../_sources/api/fabio.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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="right" >
+          <a href="modules.html" title="fabio"
+             >previous</a> |</li>
+        <li><a href="../index.html">FabIO v0.1.2 documentation</a> »</li>
+          <li><a href="modules.html" >fabio</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.8.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/api/modules.html b/doc/html/api/modules.html
new file mode 100644
index 0000000..43935c1
--- /dev/null
+++ b/doc/html/api/modules.html
@@ -0,0 +1,2782 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>FabIO Package — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="../index.html" />
+    <link rel="prev" title="Changelog" href="../Changelog.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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="right" >
+          <a href="../Changelog.html" title="Changelog"
+             accesskey="P">previous</a> |</li>
+        <li><a href="../index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="fabio-package">
+<h1>FabIO Package<a class="headerlink" href="#fabio-package" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul class="simple">
+</ul>
+</div>
+<div class="section" id="id1">
+<h2><tt class="xref py py-mod docutils literal"><span class="pre">fabio</span></tt> Package<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
+<span class="target" id="module-fabio.__init__"></span><p>FabIO module</p>
+</div>
+<div class="section" id="module-fabio.fabioimage">
+<span id="fabio-fabioimage-module"></span><h2><a class="reference internal" href="#module-fabio.fabioimage" title="fabio.fabioimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.fabioimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.fabioimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Henning O. Sorensen & Erik Knudsen</dt>
+<dd><p class="first">Center for Fundamental Research: Metal Structures in Four Dimensions
+Risoe National Laboratory
+Frederiksborgvej 399
+DK-4000 Roskilde
+email:erik.knudsen@risoe.dk</p>
+<p class="last">and Jon Wright, Jerome Kieffer: ESRF</p>
+</dd>
+</dl>
+<dl class="class">
+<dt id="fabio.fabioimage.fabioimage">
+<em class="property">class </em><tt class="descclassname">fabio.fabioimage.</tt><tt class="descname">fabioimage</tt><big>(</big><em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
+<p>A common object for images in fable
+Contains a numpy array (.data) and dict of meta data (.header)</p>
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.add">
+<tt class="descname">add</tt><big>(</big><em>other</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.add" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add another Image - warning, does not clip to 16 bit images by default</p>
+</dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.fabioimage.fabioimage.checkData">
+<em class="property">static </em><tt class="descname">checkData</tt><big>(</big><em>data=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.checkData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.checkData" title="Permalink to this definition">¶</a></dt>
+<dd><p>Empty for fabioimage but may be populated by others classes, especially for format accepting only integers</p>
+</dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.fabioimage.fabioimage.checkHeader">
+<em class="property">static </em><tt class="descname">checkHeader</tt><big>(</big><em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.checkHeader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.checkHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Empty for fabioimage but may be populated by others classes</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.fabioimage.fabioimage.classname">
+<tt class="descname">classname</tt><a class="headerlink" href="#fabio.fabioimage.fabioimage.classname" title="Permalink to this definition">¶</a></dt>
+<dd><p>Retrieves the name of the class
+:return: the name of the class</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.convert">
+<tt class="descname">convert</tt><big>(</big><em>dest</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.convert"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.convert" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert a fabioimage object into another fabioimage object (with possible conversions)
+:param dest: destination type “EDF”, “edfimage” or the class itself</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.getclassname">
+<tt class="descname">getclassname</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.getclassname"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.getclassname" title="Permalink to this definition">¶</a></dt>
+<dd><p>Retrieves the name of the class
+:return: the name of the class</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.getframe">
+<tt class="descname">getframe</tt><big>(</big><em>num</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.getframe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.getframe" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the file numbered ‘num’ in the series as a fabioimage</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.getheader">
+<tt class="descname">getheader</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.getheader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.getheader" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns self.header</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.getmax">
+<tt class="descname">getmax</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.getmax"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.getmax" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find max value in self.data, caching for the future</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.getmean">
+<tt class="descname">getmean</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.getmean"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.getmean" title="Permalink to this definition">¶</a></dt>
+<dd><p>return the mean</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.getmin">
+<tt class="descname">getmin</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.getmin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.getmin" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find min value in self.data, caching for the future</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.getstddev">
+<tt class="descname">getstddev</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.getstddev"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.getstddev" title="Permalink to this definition">¶</a></dt>
+<dd><p>return the standard deviation</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.integrate_area">
+<tt class="descname">integrate_area</tt><big>(</big><em>coords</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.integrate_area"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.integrate_area" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sums up a region of interest
+if len(coords) == 4 -> convert coords to slices
+if len(coords) == 2 -> use as slices
+floor -> ? removed as unused in the function.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.load">
+<tt class="descname">load</tt><big>(</big><em>*arg</em>, <em>**kwarg</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.load"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.load" title="Permalink to this definition">¶</a></dt>
+<dd><p>Wrapper for read</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.make_slice">
+<tt class="descname">make_slice</tt><big>(</big><em>coords</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.make_slice"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.make_slice" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert a len(4) set of coords into a len(2)
+tuple (pair) of slice objects
+the latter are immutable, meaning the roi can be cached</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.next">
+<tt class="descname">next</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.next" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the next file in the series as a fabioimage</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.previous">
+<tt class="descname">previous</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.previous"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.previous" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the previous file in the series as a fabioimage</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.read">
+<tt class="descname">read</tt><big>(</big><em>filename</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>To be overridden - fill in self.header and self.data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.readROI">
+<tt class="descname">readROI</tt><big>(</big><em>filename</em>, <em>frame=None</em>, <em>coords=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.readROI"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.readROI" title="Permalink to this definition">¶</a></dt>
+<dd><p>Method reading Region of Interest.
+This implementation is the trivial one, just doing read and crop</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.readheader">
+<tt class="descname">readheader</tt><big>(</big><em>filename</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.readheader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.readheader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Call the _readheader function...</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.rebin">
+<tt class="descname">rebin</tt><big>(</big><em>x_rebin_fact</em>, <em>y_rebin_fact</em>, <em>keep_I=True</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.rebin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.rebin" title="Permalink to this definition">¶</a></dt>
+<dd><p>Rebin the data and adjust dims
+:param x_rebin_fact: x binning factor
+:param y_rebin_fact: y binning factor
+:param keep_I: shall the signal increase ?
+:type x_rebin_fact: int
+:type y_rebin_fact: int
+:type keep_I: boolean</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.resetvals">
+<tt class="descname">resetvals</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.resetvals"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.resetvals" title="Permalink to this definition">¶</a></dt>
+<dd><p>Reset cache - call on changing data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.save">
+<tt class="descname">save</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.save" title="Permalink to this definition">¶</a></dt>
+<dd><p>wrapper for write</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.toPIL16">
+<tt class="descname">toPIL16</tt><big>(</big><em>filename=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.toPIL16"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.toPIL16" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert to Python Imaging Library 16 bit greyscale image</p>
+<p>FIXME - this should be handled by the libraries now</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.update_header">
+<tt class="descname">update_header</tt><big>(</big><em>**kwds</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.update_header"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.update_header" title="Permalink to this definition">¶</a></dt>
+<dd><p>update the header entries
+by default pass in a dict of key, values.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioimage.fabioimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#fabioimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.fabioimage.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>To be overwritten - write the file</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioimage.test">
+<tt class="descclassname">fabio.fabioimage.</tt><tt class="descname">test</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioimage.html#test"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioimage.test" title="Permalink to this definition">¶</a></dt>
+<dd><p>check some basic fabioimage functionality</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.fabioutils">
+<span id="fabio-fabioutils-module"></span><h2><a class="reference internal" href="#module-fabio.fabioutils" title="fabio.fabioutils"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.fabioutils</span></tt></a> Module<a class="headerlink" href="#module-fabio.fabioutils" title="Permalink to this headline">¶</a></h2>
+<p>General purpose utilities functions for fabio</p>
+<dl class="class">
+<dt id="fabio.fabioutils.BZ2File">
+<em class="property">class </em><tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">BZ2File</tt><big>(</big><em>name</em>, <em>mode='r'</em>, <em>buffering=0</em>, <em>compresslevel=9</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#BZ2File"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.BZ2File" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">bz2.BZ2File</span></tt></p>
+<p>Wrapper with lock</p>
+<dl class="method">
+<dt id="fabio.fabioutils.BZ2File.getSize">
+<tt class="descname">getSize</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#BZ2File.getSize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.BZ2File.getSize" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioutils.BZ2File.setSize">
+<tt class="descname">setSize</tt><big>(</big><em>value</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#BZ2File.setSize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.BZ2File.setSize" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.fabioutils.BZ2File.size">
+<tt class="descname">size</tt><a class="headerlink" href="#fabio.fabioutils.BZ2File.size" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.fabioutils.File">
+<em class="property">class </em><tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">File</tt><big>(</big><em>name</em>, <em>mode='rb'</em>, <em>buffering=0</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#File"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.File" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">file</span></tt></p>
+<p>wrapper for “file” with locking</p>
+<dl class="method">
+<dt id="fabio.fabioutils.File.getSize">
+<tt class="descname">getSize</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#File.getSize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.File.getSize" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioutils.File.setSize">
+<tt class="descname">setSize</tt><big>(</big><em>size</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#File.setSize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.File.setSize" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.fabioutils.File.size">
+<tt class="descname">size</tt><a class="headerlink" href="#fabio.fabioutils.File.size" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.fabioutils.FilenameObject">
+<em class="property">class </em><tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">FilenameObject</tt><big>(</big><em>stem=None</em>, <em>num=None</em>, <em>directory=None</em>, <em>format=None</em>, <em>extension=None</em>, <em>postnum=None</em>, <em>digits=4</em>, <em>filename=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#FilenameObject"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabio [...]
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
+<p>The ‘meaning’ of a filename ...</p>
+<dl class="method">
+<dt id="fabio.fabioutils.FilenameObject.deconstruct_filename">
+<tt class="descname">deconstruct_filename</tt><big>(</big><em>filename</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#FilenameObject.deconstruct_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.FilenameObject.deconstruct_filename" title="Permalink to this definition">¶</a></dt>
+<dd><p>Break up a filename to get image type and number</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioutils.FilenameObject.str">
+<tt class="descname">str</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#FilenameObject.str"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.FilenameObject.str" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return a string representation</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioutils.FilenameObject.tostring">
+<tt class="descname">tostring</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#FilenameObject.tostring"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.FilenameObject.tostring" title="Permalink to this definition">¶</a></dt>
+<dd><p>convert yourself to a string</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.fabioutils.GzipFile">
+<em class="property">class </em><tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">GzipFile</tt><big>(</big><em>filename=None</em>, <em>mode=None</em>, <em>compresslevel=9</em>, <em>fileobj=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#GzipFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.GzipFile" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">gzip.GzipFile</span></tt></p>
+<p>Just a wrapper forgzip.GzipFile providing the correct seek capabilities for python 2.5</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.fabioutils.StringIO">
+<em class="property">class </em><tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">StringIO</tt><big>(</big><em>data</em>, <em>fname=None</em>, <em>mode='r'</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#StringIO"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.StringIO" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">StringIO.StringIO</span></tt></p>
+<p>just an interface providing the name and mode property to a StringIO</p>
+<p>BugFix for MacOSX mainly</p>
+<dl class="method">
+<dt id="fabio.fabioutils.StringIO.getSize">
+<tt class="descname">getSize</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#StringIO.getSize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.StringIO.getSize" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.fabioutils.StringIO.setSize">
+<tt class="descname">setSize</tt><big>(</big><em>size</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#StringIO.setSize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.StringIO.setSize" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.fabioutils.StringIO.size">
+<tt class="descname">size</tt><a class="headerlink" href="#fabio.fabioutils.StringIO.size" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.fabioutils.UnknownCompressedFile">
+<em class="property">class </em><tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">UnknownCompressedFile</tt><big>(</big><em>name</em>, <em>mode='rb'</em>, <em>buffering=0</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#UnknownCompressedFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.UnknownCompressedFile" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioutils.File" title="fabio.fabioutils.File"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioutils.File</span></tt></a></p>
+<p>wrapper for “File” with locking</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.construct_filename">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">construct_filename</tt><big>(</big><em>filename</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#construct_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.construct_filename" title="Permalink to this definition">¶</a></dt>
+<dd><p>Try to construct the filename for a given frame</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.deconstruct_filename">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">deconstruct_filename</tt><big>(</big><em>filename</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#deconstruct_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.deconstruct_filename" title="Permalink to this definition">¶</a></dt>
+<dd><p>Function for backward compatibility.
+Deprecated</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.deprecated">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">deprecated</tt><big>(</big><em>func</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#deprecated"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.deprecated" title="Permalink to this definition">¶</a></dt>
+<dd><p>used to deprecate a function/method: prints a lot of warning messages to enforce the modifaction of the code</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.extract_filenumber">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">extract_filenumber</tt><big>(</big><em>name</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#extract_filenumber"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.extract_filenumber" title="Permalink to this definition">¶</a></dt>
+<dd><p>extract file number</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.getnum">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">getnum</tt><big>(</big><em>name</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#getnum"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.getnum" title="Permalink to this definition">¶</a></dt>
+<dd><p># try to figure out a file number
+# guess it starts at the back</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.isAscii">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">isAscii</tt><big>(</big><em>name</em>, <em>listExcluded=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#isAscii"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.isAscii" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>name</strong> – string to check</li>
+<li><strong>listExcluded</strong> – list of char or string excluded.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">True of False whether  name is pure ascii or not</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.jump_filename">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">jump_filename</tt><big>(</big><em>name</em>, <em>num</em>, <em>padding=True</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#jump_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.jump_filename" title="Permalink to this definition">¶</a></dt>
+<dd><p>jump to number</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.next_filename">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">next_filename</tt><big>(</big><em>name</em>, <em>padding=True</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#next_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.next_filename" title="Permalink to this definition">¶</a></dt>
+<dd><p>increment number</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.nice_int">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">nice_int</tt><big>(</big><em>s</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#nice_int"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.nice_int" title="Permalink to this definition">¶</a></dt>
+<dd><p>Workaround that int(‘1.0’) raises an exception</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>s</strong> – string to be converted to integer</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.numstem">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">numstem</tt><big>(</big><em>name</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#numstem"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.numstem" title="Permalink to this definition">¶</a></dt>
+<dd><p>cant see how to do without reversing strings
+Match 1 or more digits going backwards from the end of the string</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.pad">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">pad</tt><big>(</big><em>mystr</em>, <em>pattern=' '</em>, <em>size=80</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#pad"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.pad" title="Permalink to this definition">¶</a></dt>
+<dd><p>Performs the padding of the string to the right size with the right pattern</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.previous_filename">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">previous_filename</tt><big>(</big><em>name</em>, <em>padding=True</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#previous_filename"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.previous_filename" title="Permalink to this definition">¶</a></dt>
+<dd><p>decrement number</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.fabioutils.toAscii">
+<tt class="descclassname">fabio.fabioutils.</tt><tt class="descname">toAscii</tt><big>(</big><em>name</em>, <em>excluded=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fabioutils.html#toAscii"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fabioutils.toAscii" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>name</strong> – string to check</li>
+<li><strong>excluded</strong> – tuple of char or string excluded (not list: they are mutable).</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">the name with all non valid char removed</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.file_series">
+<span id="fabio-file-series-module"></span><h2><a class="reference internal" href="#module-fabio.file_series" title="fabio.file_series"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.file_series</span></tt></a> Module<a class="headerlink" href="#module-fabio.file_series" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="authors">
+<h3>Authors:<a class="headerlink" href="#authors" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Henning O. Sorensen & Erik Knudsen
+Center for Fundamental Research: Metal Structures in Four Dimensions
+Risoe National Laboratory
+Frederiksborgvej 399
+DK-4000 Roskilde
+email:erik.knudsen@risoe.dk</li>
+<li>Jon Wright, ESRF</li>
+</ul>
+<dl class="class">
+<dt id="fabio.file_series.file_series">
+<em class="property">class </em><tt class="descclassname">fabio.file_series.</tt><tt class="descname">file_series</tt><big>(</big><em>list_of_strings</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">list</span></tt></p>
+<p>Represents a series of files to iterate
+has an idea of a current position to do next and prev</p>
+<dl class="docutils">
+<dt>You also get from the list python superclass:</dt>
+<dd>append
+count
+extend
+insert
+pop
+remove
+reverse
+sort</dd>
+</dl>
+<dl class="method">
+<dt id="fabio.file_series.file_series.current">
+<tt class="descname">current</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.current"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.current" title="Permalink to this definition">¶</a></dt>
+<dd><p>Current position in a sequence</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.current_image">
+<tt class="descname">current_image</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.current_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.current_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>Current image in sequence</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">fabioimage</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.current_object">
+<tt class="descname">current_object</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.current_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.current_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>Current image in sequence</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">file_object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.first">
+<tt class="descname">first</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.first"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.first" title="Permalink to this definition">¶</a></dt>
+<dd><p>First image in series</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.first_image">
+<tt class="descname">first_image</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.first_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.first_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>First image in a sequence</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">fabioimage</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.first_object">
+<tt class="descname">first_object</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.first_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.first_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>First image in a sequence</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">file_object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.jump">
+<tt class="descname">jump</tt><big>(</big><em>num</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.jump"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.jump" title="Permalink to this definition">¶</a></dt>
+<dd><p>Goto a position in sequence</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.jump_image">
+<tt class="descname">jump_image</tt><big>(</big><em>num</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.jump_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.jump_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>Jump to and read image</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">fabioimage</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.jump_object">
+<tt class="descname">jump_object</tt><big>(</big><em>num</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.jump_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.jump_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>Jump to and read image</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">file_object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.last">
+<tt class="descname">last</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.last"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.last" title="Permalink to this definition">¶</a></dt>
+<dd><p>Last in series</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.last_image">
+<tt class="descname">last_image</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.last_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.last_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>Last image in a sequence</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">fabioimage</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.last_object">
+<tt class="descname">last_object</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.last_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.last_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>Last image in a sequence</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">file_object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.len">
+<tt class="descname">len</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.len"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.len" title="Permalink to this definition">¶</a></dt>
+<dd><p>Number of files</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.next">
+<tt class="descname">next</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.next" title="Permalink to this definition">¶</a></dt>
+<dd><p>Next in a sequence</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.next_image">
+<tt class="descname">next_image</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.next_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.next_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the next image</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">fabioimage</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.next_object">
+<tt class="descname">next_object</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.next_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.next_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the next image</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">file_object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.previous">
+<tt class="descname">previous</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.previous"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.previous" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prev in a sequence</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.previous_image">
+<tt class="descname">previous_image</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.previous_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.previous_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the previous image</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">fabioimage</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.file_series.previous_object">
+<tt class="descname">previous_object</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#file_series.previous_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.file_series.previous_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the previous image</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">file_object</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.file_series.filename_series">
+<em class="property">class </em><tt class="descclassname">fabio.file_series.</tt><tt class="descname">filename_series</tt><big>(</big><em>filename</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series" title="Permalink to this definition">¶</a></dt>
+<dd><p>Much like the others, but created from a string filename</p>
+<dl class="method">
+<dt id="fabio.file_series.filename_series.current">
+<tt class="descname">current</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.current"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.current" title="Permalink to this definition">¶</a></dt>
+<dd><p>return current filename string</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.current_image">
+<tt class="descname">current_image</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.current_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.current_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the current image as a fabioimage</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.current_object">
+<tt class="descname">current_object</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.current_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.current_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the current filename as a fabio.FilenameObject</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.jump">
+<tt class="descname">jump</tt><big>(</big><em>num</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.jump"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.jump" title="Permalink to this definition">¶</a></dt>
+<dd><p>jump to a specific number</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.jump_image">
+<tt class="descname">jump_image</tt><big>(</big><em>num</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.jump_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.jump_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the image number as a fabioimage</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.jump_object">
+<tt class="descname">jump_object</tt><big>(</big><em>num</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.jump_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.jump_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the filename num as a fabio.FilenameObject</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.next">
+<tt class="descname">next</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.next" title="Permalink to this definition">¶</a></dt>
+<dd><p>increment number</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.next_image">
+<tt class="descname">next_image</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.next_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.next_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the next image as a fabioimage</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.next_object">
+<tt class="descname">next_object</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.next_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.next_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the next filename as a fabio.FilenameObject</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.prev_image">
+<tt class="descname">prev_image</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.prev_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.prev_image" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the previos image as a fabioimage</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.previous">
+<tt class="descname">previous</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.previous"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.previous" title="Permalink to this definition">¶</a></dt>
+<dd><p>decrement number</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.file_series.filename_series.previous_object">
+<tt class="descname">previous_object</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#filename_series.previous_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.filename_series.previous_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the previous filename as a fabio.FilenameObject</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.file_series.new_file_series">
+<tt class="descclassname">fabio.file_series.</tt><tt class="descname">new_file_series</tt><big>(</big><em>first_object</em>, <em>nimages=0</em>, <em>step=1</em>, <em>traceback=False</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#new_file_series"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.new_file_series" title="Permalink to this definition">¶</a></dt>
+<dd><p>A generator function that creates a file series starting from a a fabioimage.
+Iterates through all images in a file (if more than 1), then proceeds to
+the next file as determined by fabio.next_filename.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>first_object</strong> – the starting fabioimage, which will be the first one yielded
+in the sequence</li>
+<li><strong>nimages</strong> – the maximum number of images to consider
+step: step size, will yield the first and every step’th image until nimages
+is reached.  (e.g. nimages = 5, step = 2 will yield 3 images (0, 2, 4)</li>
+<li><strong>traceback</strong> – if True causes it to print a traceback in the event of an
+exception (missing image, etc.).  Otherwise the calling routine can handle
+the exception as it chooses</li>
+<li><strong>yields</strong> – the next fabioimage in the series.
+In the event there is an exception, it yields the sys.exec_info for the
+exception instead.  sys.exec_info is a tuple:
+( exceptionType, exceptionValue, exceptionTraceback )
+from which all the exception information can be obtained.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p>Suggested usage:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">for</span> <span class="n">obj</span> <span class="ow">in</span> <span class="n">new_file_series</span><span class="p">(</span> <span class="o">...</span> <span class="p">):</span>
+  <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">fabio</span><span class="o">.</span><span class="n">fabioimage</span><span class="o">.</span><span class="n">fabioimage</span> <span class="p">):</span>
+    <span class="c"># deal with errors like missing images, non readable files, etc</span>
+    <span class="c"># e.g.</span>
+    <span class="n">traceback</span><span class="o">.</span><span class="n">print_exception</span><span class="p">(</span><span class="n">obj</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">obj</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">obj</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
+</pre></div>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.file_series.new_file_series0">
+<tt class="descclassname">fabio.file_series.</tt><tt class="descname">new_file_series0</tt><big>(</big><em>first_object</em>, <em>first=None</em>, <em>last=None</em>, <em>step=1</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#new_file_series0"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.new_file_series0" title="Permalink to this definition">¶</a></dt>
+<dd><p>Created from a fabio image
+first and last are file numbers</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.file_series.numbered_file_series">
+<em class="property">class </em><tt class="descclassname">fabio.file_series.</tt><tt class="descname">numbered_file_series</tt><big>(</big><em>stem</em>, <em>first</em>, <em>last</em>, <em>extension</em>, <em>digits=4</em>, <em>padding='Y'</em>, <em>step=1</em><big>)</big><a class="reference internal" href="../_modules/fabio/file_series.html#numbered_file_series"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.file_series.numbered_file_series" title="Per [...]
+<dd><p>Bases: <a class="reference internal" href="#fabio.file_series.file_series" title="fabio.file_series.file_series"><tt class="xref py py-class docutils literal"><span class="pre">fabio.file_series.file_series</span></tt></a></p>
+<p>mydata0001.edf = “mydata” + 0001 + ”.edf”
+mydata0002.edf = “mydata” + 0002 + ”.edf”
+mydata0003.edf = “mydata” + 0003 + ”.edf”</p>
+</dd></dl>
+
+</div>
+</div>
+<div class="section" id="module-fabio.openimage">
+<span id="fabio-openimage-module"></span><h2><a class="reference internal" href="#module-fabio.openimage" title="fabio.openimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.openimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.openimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Henning O. Sorensen & Erik Knudsen</dt>
+<dd>Center for Fundamental Research: Metal Structures in Four Dimensions
+Risoe National Laboratory
+Frederiksborgvej 399
+DK-4000 Roskilde
+email:henning.sorensen@risoe.dk</dd>
+</dl>
+<p>mods for fabio by JPW</p>
+<dl class="function">
+<dt id="fabio.openimage.do_magic">
+<tt class="descclassname">fabio.openimage.</tt><tt class="descname">do_magic</tt><big>(</big><em>byts</em><big>)</big><a class="reference internal" href="../_modules/fabio/openimage.html#do_magic"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.openimage.do_magic" title="Permalink to this definition">¶</a></dt>
+<dd><p>Try to interpret the bytes starting the file as a magic number</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.openimage.openheader">
+<tt class="descclassname">fabio.openimage.</tt><tt class="descname">openheader</tt><big>(</big><em>filename</em><big>)</big><a class="reference internal" href="../_modules/fabio/openimage.html#openheader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.openimage.openheader" title="Permalink to this definition">¶</a></dt>
+<dd><p>return only the header</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.openimage.openimage">
+<tt class="descclassname">fabio.openimage.</tt><tt class="descname">openimage</tt><big>(</big><em>filename</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/openimage.html#openimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.openimage.openimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Try to open an image</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.adscimage">
+<span id="fabio-adscimage-module"></span><h2><a class="reference internal" href="#module-fabio.adscimage" title="fabio.adscimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.adscimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.adscimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Henning O. Sorensen & Erik Knudsen</dt>
+<dd>Center for Fundamental Research: Metal Structures in Four Dimensions
+Risoe National Laboratory
+Frederiksborgvej 399
+DK-4000 Roskilde
+email:erik.knudsen@risoe.dk</dd>
+</dl>
+<ul class="simple">
+<li>mods for fabio by JPW</li>
+</ul>
+<dl class="class">
+<dt id="fabio.adscimage.adscimage">
+<em class="property">class </em><tt class="descclassname">fabio.adscimage.</tt><tt class="descname">adscimage</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../_modules/fabio/adscimage.html#adscimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.adscimage.adscimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read an image in ADSC format (quite similar to edf?)</p>
+<dl class="method">
+<dt id="fabio.adscimage.adscimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/adscimage.html#adscimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.adscimage.adscimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>read in the file</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.adscimage.adscimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/adscimage.html#adscimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.adscimage.adscimage.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write adsc format</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.adscimage.test">
+<tt class="descclassname">fabio.adscimage.</tt><tt class="descname">test</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/adscimage.html#test"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.adscimage.test" title="Permalink to this definition">¶</a></dt>
+<dd><p>testcase</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.binaryimage">
+<span id="fabio-binaryimage-module"></span><h2><a class="reference internal" href="#module-fabio.binaryimage" title="fabio.binaryimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.binaryimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.binaryimage" title="Permalink to this headline">¶</a></h2>
+<p>Authors: Gael Goret, Jerome Kieffer, ESRF, France
+Emails: <a class="reference external" href="mailto:gael.goret%40esrf.fr">gael<span>.</span>goret<span>@</span>esrf<span>.</span>fr</a>, <a class="reference external" href="mailto:jerome.kieffer%40esrf.fr">jerome<span>.</span>kieffer<span>@</span>esrf<span>.</span>fr</a></p>
+<blockquote>
+<div>Brian Richard Pauw <<a class="reference external" href="mailto:brian%40stack.nl">brian<span>@</span>stack<span>.</span>nl</a>></div></blockquote>
+<p>Binary files images are simple none-compressed 2D images only defined by their :
+data-type, dimensions, byte order and offset</p>
+<p>This simple library has been made for manipulating exotic/unknown files format.</p>
+<dl class="class">
+<dt id="fabio.binaryimage.binaryimage">
+<em class="property">class </em><tt class="descclassname">fabio.binaryimage.</tt><tt class="descname">binaryimage</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../_modules/fabio/binaryimage.html#binaryimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.binaryimage.binaryimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>This simple library has been made for manipulating exotic/unknown files format.</p>
+<p>Binary files images are simple none-compressed 2D images only defined by their :
+data-type, dimensions, byte order and offset</p>
+<p>if offset is set to a negative value, the image is read using the last data but n
+data in the file, skipping any header.</p>
+<dl class="method">
+<dt id="fabio.binaryimage.binaryimage.estimate_offset_value">
+<tt class="descname">estimate_offset_value</tt><big>(</big><em>fname</em>, <em>dim1</em>, <em>dim2</em>, <em>bytecode='int32'</em><big>)</big><a class="reference internal" href="../_modules/fabio/binaryimage.html#binaryimage.estimate_offset_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.binaryimage.binaryimage.estimate_offset_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Estimates the size of a file</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.binaryimage.binaryimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>dim1</em>, <em>dim2</em>, <em>offset=0</em>, <em>bytecode='int32'</em>, <em>endian='<'</em><big>)</big><a class="reference internal" href="../_modules/fabio/binaryimage.html#binaryimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.binaryimage.binaryimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read a binary image</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>fname</strong> (<em>string</em>) – file name</li>
+<li><strong>dim1</strong> – image dimensions (Fast index)</li>
+<li><strong>dim2</strong> – image dimensions (Slow index)</li>
+<li><strong>offset</strong> – starting position of the data-block. If negative, starts at the end.</li>
+<li><strong>bytecode</strong> – can be “int8”,”int16”,”int32”,”int64”,”uint8”,”uint16”,”uint32”,”uint64”,”float32”,”float64”,...</li>
+<li><strong>endian</strong> – among short or long endian (“<” or “>”)</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.binaryimage.binaryimage.swap_needed">
+<em class="property">static </em><tt class="descname">swap_needed</tt><big>(</big><em>endian</em><big>)</big><a class="reference internal" href="../_modules/fabio/binaryimage.html#binaryimage.swap_needed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.binaryimage.binaryimage.swap_needed" title="Permalink to this definition">¶</a></dt>
+<dd><p>Decide if we need to byteswap</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.binaryimage.binaryimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/binaryimage.html#binaryimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.binaryimage.binaryimage.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.bruker100image">
+<span id="fabio-bruker100image-module"></span><h2><a class="reference internal" href="#module-fabio.bruker100image" title="fabio.bruker100image"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.bruker100image</span></tt></a> Module<a class="headerlink" href="#module-fabio.bruker100image" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="fabio.bruker100image.bruker100image">
+<em class="property">class </em><tt class="descclassname">fabio.bruker100image.</tt><tt class="descname">bruker100image</tt><big>(</big><em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/bruker100image.html#bruker100image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.bruker100image.bruker100image" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.brukerimage.brukerimage" title="fabio.brukerimage.brukerimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.brukerimage.brukerimage</span></tt></a></p>
+<dl class="method">
+<dt id="fabio.bruker100image.bruker100image.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/bruker100image.html#bruker100image.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.bruker100image.bruker100image.read" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.bruker100image.bruker100image.toPIL16">
+<tt class="descname">toPIL16</tt><big>(</big><em>filename=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/bruker100image.html#bruker100image.toPIL16"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.bruker100image.bruker100image.toPIL16" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.brukerimage">
+<span id="fabio-brukerimage-module"></span><h2><a class="reference internal" href="#module-fabio.brukerimage" title="fabio.brukerimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.brukerimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.brukerimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Henning O. Sorensen & Erik Knudsen</dt>
+<dd>Center for Fundamental Research: Metal Structures in Four Dimensions
+Risoe National Laboratory
+Frederiksborgvej 399
+DK-4000 Roskilde
+email:erik.knudsen@risoe.dk</dd>
+<dt>Based on: openbruker,readbruker, readbrukerheader functions in the opendata</dt>
+<dd>module of ImageD11 written by Jon Wright, ESRF, Grenoble, France</dd>
+</dl>
+<p>Writer by Jérôme Kieffer, ESRF, Grenoble, France</p>
+<dl class="class">
+<dt id="fabio.brukerimage.brukerimage">
+<em class="property">class </em><tt class="descclassname">fabio.brukerimage.</tt><tt class="descname">brukerimage</tt><big>(</big><em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/brukerimage.html#brukerimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.brukerimage.brukerimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read and eventually write ID11 bruker (eg smart6500) images</p>
+<p>TODO: int32 -> float32 conversion according to the “linear” keyword.
+This is done and works but we need to check with other program that we
+are appliing the right formula and not the reciprocal one.</p>
+<dl class="attribute">
+<dt id="fabio.brukerimage.brukerimage.HEADERS_KEYS">
+<tt class="descname">HEADERS_KEYS</tt><em class="property"> = ['FORMAT', 'VERSION', 'HDRBLKS', 'TYPE', 'SITE', 'MODEL', 'USER', 'SAMPLE', 'SETNAME', 'RUN', 'SAMPNUM', 'TITLE', 'NCOUNTS', 'NOVERFL', 'MINIMUM', 'MAXIMUM', 'NONTIME', 'NLATE', 'FILENAM', 'CREATED', 'CUMULAT', 'ELAPSDR', 'ELAPSDA', 'OSCILLA', 'NSTEPS', 'RANGE', 'START', 'INCREME', 'NUMBER', 'NFRAMES', 'ANGLES', 'NOVER64', 'NPIXELB', 'NROWS', 'NCOLS', 'WORDORD', 'LONGORD', 'TARGET', 'SOURCEK', 'SOURCEM', 'FILTER', 'CELL', 'MAT [...]
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.brukerimage.brukerimage.SPACER">
+<tt class="descname">SPACER</tt><em class="property"> = '\x1a\x04'</em><a class="headerlink" href="#fabio.brukerimage.brukerimage.SPACER" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.brukerimage.brukerimage.basic_translate">
+<tt class="descname">basic_translate</tt><big>(</big><em>fname=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/brukerimage.html#brukerimage.basic_translate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.brukerimage.brukerimage.basic_translate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Does some basic population of the headers so that the writing is possible</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.brukerimage.brukerimage.bpp_to_numpy">
+<tt class="descname">bpp_to_numpy</tt><em class="property"> = {1: <type 'numpy.uint8'>, 2: <type 'numpy.uint16'>, 4: <type 'numpy.uint32'>}</em><a class="headerlink" href="#fabio.brukerimage.brukerimage.bpp_to_numpy" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.brukerimage.brukerimage.calc_bpp">
+<tt class="descname">calc_bpp</tt><big>(</big><em>data=None</em>, <em>max_entry=4096</em><big>)</big><a class="reference internal" href="../_modules/fabio/brukerimage.html#brukerimage.calc_bpp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.brukerimage.brukerimage.calc_bpp" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculate the number of byte per pixel to get an optimal overflow table.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">byte per pixel</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.brukerimage.brukerimage.gen_header">
+<tt class="descname">gen_header</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/brukerimage.html#brukerimage.gen_header"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.brukerimage.brukerimage.gen_header" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generate headers (with some magic and guesses)
+:param format can be 86 or 100</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.brukerimage.brukerimage.gen_overflow">
+<tt class="descname">gen_overflow</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/brukerimage.html#brukerimage.gen_overflow"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.brukerimage.brukerimage.gen_overflow" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generate an overflow table</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.brukerimage.brukerimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/brukerimage.html#brukerimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.brukerimage.brukerimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read in and unpack the pixels (including overflow table</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.brukerimage.brukerimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/brukerimage.html#brukerimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.brukerimage.brukerimage.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write a bruker image</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.brukerimage.test">
+<tt class="descclassname">fabio.brukerimage.</tt><tt class="descname">test</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/brukerimage.html#test"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.brukerimage.test" title="Permalink to this definition">¶</a></dt>
+<dd><p>a testcase</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.cbfimage">
+<span id="fabio-cbfimage-module"></span><h2><a class="reference internal" href="#module-fabio.cbfimage" title="fabio.cbfimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.cbfimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.cbfimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Jérôme Kieffer, ESRF</dt>
+<dd>email:jerome.kieffer@esrf.fr</dd>
+</dl>
+<p>Cif Binary Files images are 2D images written by the Pilatus detector and others.
+They use a modified (simplified) byte-offset algorithm.</p>
+<p>CIF is a library for manipulating Crystallographic information files and tries
+to conform to the specification of the IUCR</p>
+<dl class="class">
+<dt id="fabio.cbfimage.CIF">
+<em class="property">class </em><tt class="descclassname">fabio.cbfimage.</tt><tt class="descname">CIF</tt><big>(</big><em>_strFilename=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">dict</span></tt></p>
+<p>This is the CIF class, it represents the CIF dictionary;
+and as a a python dictionary thus inherits from the dict built in class.</p>
+<dl class="attribute">
+<dt id="fabio.cbfimage.CIF.BINARY_MARKER">
+<tt class="descname">BINARY_MARKER</tt><em class="property"> = '--CIF-BINARY-FORMAT-SECTION--'</em><a class="headerlink" href="#fabio.cbfimage.CIF.BINARY_MARKER" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.cbfimage.CIF.BLANK">
+<tt class="descname">BLANK</tt><em class="property"> = [' ', '\t', '\r', '\n', '\r\n', '\n\r']</em><a class="headerlink" href="#fabio.cbfimage.CIF.BLANK" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.cbfimage.CIF.EOL">
+<tt class="descname">EOL</tt><em class="property"> = ['\r', '\n', '\r\n', '\n\r']</em><a class="headerlink" href="#fabio.cbfimage.CIF.EOL" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.cbfimage.CIF.LoopHasKey">
+<em class="property">static </em><tt class="descname">LoopHasKey</tt><big>(</big><em>loop</em>, <em>key</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.LoopHasKey"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.LoopHasKey" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns True if the key (string) exist in the array called loop</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.cbfimage.CIF.START_COMMENT">
+<tt class="descname">START_COMMENT</tt><em class="property"> = ['"', "'"]</em><a class="headerlink" href="#fabio.cbfimage.CIF.START_COMMENT" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.CIF.exists">
+<tt class="descname">exists</tt><big>(</big><em>sKey</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.exists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.exists" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if the key exists in the CIF and is non empty.
+:param sKey: CIF key
+:type sKey: string
+:param cif: CIF dictionary
+:return: True if the key exists in the CIF dictionary and is non empty
+:rtype: boolean</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.CIF.existsInLoop">
+<tt class="descname">existsInLoop</tt><big>(</big><em>sKey</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.existsInLoop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.existsInLoop" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if the key exists in the CIF dictionary.
+:param sKey: CIF key
+:type sKey: string
+:param cif: CIF dictionary
+:return: True if the key exists in the CIF dictionary and is non empty
+:rtype: boolean</p>
+</dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.cbfimage.CIF.isAscii">
+<em class="property">static </em><tt class="descname">isAscii</tt><big>(</big><em>_strIn</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.isAscii"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.isAscii" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if all characters in a string are ascii,</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>_strIn</strong> (<em>python string</em>) – input string</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">boolean</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">boolean</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.CIF.loadCHIPLOT">
+<tt class="descname">loadCHIPLOT</tt><big>(</big><em>_strFilename</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.loadCHIPLOT"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.loadCHIPLOT" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load the powder diffraction CHIPLOT file and returns the
+pd_CIF dictionary in the object</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>_strFilename</strong> (<em>string</em>) – the name of the file to open</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the CIF object corresponding to the powder diffraction</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">dictionary</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.CIF.loadCIF">
+<tt class="descname">loadCIF</tt><big>(</big><em>_strFilename</em>, <em>_bKeepComment=False</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.loadCIF"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.loadCIF" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load the CIF file and populates the CIF dictionary into the object
+:param _strFilename: the name of the file to open
+:type  _strFilename: string
+:param _strFilename: the name of the file to open
+:type  _strFilename: string
+:return: None</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.CIF.pop">
+<tt class="descname">pop</tt><big>(</big><em>key</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.pop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.pop" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.CIF.popitem">
+<tt class="descname">popitem</tt><big>(</big><em>key</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.popitem"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.popitem" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.CIF.readCIF">
+<tt class="descname">readCIF</tt><big>(</big><em>_strFilename</em>, <em>_bKeepComment=False</em><big>)</big><a class="headerlink" href="#fabio.cbfimage.CIF.readCIF" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load the CIF file and populates the CIF dictionary into the object
+:param _strFilename: the name of the file to open
+:type  _strFilename: string
+:param _strFilename: the name of the file to open
+:type  _strFilename: string
+:return: None</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.CIF.saveCIF">
+<tt class="descname">saveCIF</tt><big>(</big><em>_strFilename='test.cif'</em>, <em>linesep='n'</em>, <em>binary=False</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.saveCIF"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.saveCIF" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms the CIF object in string then write it into the given file
+:param _strFilename: the of the file to be written
+:param linesep: line separation used (to force compatibility with windows/unix)
+:param binary: Shall we write the data as binary (True only for imageCIF/CBF)
+:type param: string</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.CIF.tostring">
+<tt class="descname">tostring</tt><big>(</big><em>_strFilename=None</em>, <em>linesep='n'</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#CIF.tostring"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.CIF.tostring" title="Permalink to this definition">¶</a></dt>
+<dd><p>Converts a cif dictionnary to a string according to the CIF syntax</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>_strFilename</strong> (<em>string</em>) – the name of the filename to be appended in the header of the CIF file</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a sting that corresponds to the content of the CIF - file.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.cbfimage.cbfimage">
+<em class="property">class </em><tt class="descclassname">fabio.cbfimage.</tt><tt class="descname">cbfimage</tt><big>(</big><em>data=None</em>, <em>header=None</em>, <em>fname=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#cbfimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.cbfimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read the Cif Binary File data format</p>
+<dl class="staticmethod">
+<dt id="fabio.cbfimage.cbfimage.checkData">
+<em class="property">static </em><tt class="descname">checkData</tt><big>(</big><em>data=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#cbfimage.checkData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.cbfimage.checkData" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.cbfimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#cbfimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.cbfimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read in header into self.header and
+the data   into self.data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.cbfimage.cbfimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/cbfimage.html#cbfimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.cbfimage.cbfimage.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>write the file in CBF format
+:param fname: name of the file
+:type: string</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.dm3image">
+<span id="fabio-dm3image-module"></span><h2><a class="reference internal" href="#module-fabio.dm3image" title="fabio.dm3image"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.dm3image</span></tt></a> Module<a class="headerlink" href="#module-fabio.dm3image" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Henning O. Sorensen & Erik Knudsen</dt>
+<dd><blockquote class="first">
+<div>Center for Fundamental Research: Metal Structures in Four Dimensions
+Risoe National Laboratory
+Frederiksborgvej 399
+DK-4000 Roskilde
+email:erik.knudsen@risoe.dk</div></blockquote>
+<ul class="last simple">
+<li>Jon Wright, ESRF</li>
+</ul>
+</dd>
+</dl>
+<dl class="class">
+<dt id="fabio.dm3image.dm3image">
+<em class="property">class </em><tt class="descclassname">fabio.dm3image.</tt><tt class="descname">dm3image</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../_modules/fabio/dm3image.html#dm3image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.dm3image.dm3image" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read and try to write the dm3 data format</p>
+<dl class="method">
+<dt id="fabio.dm3image.dm3image.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/dm3image.html#dm3image.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.dm3image.dm3image.read" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.dm3image.dm3image.read_data">
+<tt class="descname">read_data</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/dm3image.html#dm3image.read_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.dm3image.dm3image.read_data" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.dm3image.dm3image.read_tag_entry">
+<tt class="descname">read_tag_entry</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/dm3image.html#dm3image.read_tag_entry"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.dm3image.dm3image.read_tag_entry" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.dm3image.dm3image.read_tag_group">
+<tt class="descname">read_tag_group</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/dm3image.html#dm3image.read_tag_group"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.dm3image.dm3image.read_tag_group" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.dm3image.dm3image.read_tag_type">
+<tt class="descname">read_tag_type</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/dm3image.html#dm3image.read_tag_type"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.dm3image.dm3image.read_tag_type" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.dm3image.dm3image.readbytes">
+<tt class="descname">readbytes</tt><big>(</big><em>bytes_to_read</em>, <em>format</em>, <em>swap=True</em><big>)</big><a class="reference internal" href="../_modules/fabio/dm3image.html#dm3image.readbytes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.dm3image.dm3image.readbytes" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.edfimage">
+<span id="fabio-edfimage-module"></span><h2><a class="reference internal" href="#module-fabio.edfimage" title="fabio.edfimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.edfimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.edfimage" title="Permalink to this headline">¶</a></h2>
+<p>License: GPLv2+</p>
+<div class="section" id="id2">
+<h3>Authors:<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Henning O. Sorensen & Erik Knudsen:
+Center for Fundamental Research: Metal Structures in Four Dimensions;
+Risoe National Laboratory;
+Frederiksborgvej 399;
+DK-4000 Roskilde;
+email:erik.knudsen@risoe.dk</li>
+<li>Jon Wright & Jérôme Kieffer:
+European Synchrotron Radiation Facility;
+Grenoble (France)</li>
+</ul>
+<dl class="class">
+<dt id="fabio.edfimage.Frame">
+<em class="property">class </em><tt class="descclassname">fabio.edfimage.</tt><tt class="descname">Frame</tt><big>(</big><em>data=None</em>, <em>header=None</em>, <em>header_keys=None</em>, <em>number=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#Frame"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.Frame" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
+<p>A class representing a single frame in an EDF file</p>
+<dl class="attribute">
+<dt id="fabio.edfimage.Frame.bytecode">
+<tt class="descname">bytecode</tt><a class="headerlink" href="#fabio.edfimage.Frame.bytecode" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.Frame.data">
+<tt class="descname">data</tt><a class="headerlink" href="#fabio.edfimage.Frame.data" title="Permalink to this definition">¶</a></dt>
+<dd><p>Unpack a binary blob according to the specification given in the header</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">dataset as numpy.ndarray</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.Frame.getByteCode">
+<tt class="descname">getByteCode</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#Frame.getByteCode"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.Frame.getByteCode" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.Frame.getData">
+<tt class="descname">getData</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#Frame.getData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.Frame.getData" title="Permalink to this definition">¶</a></dt>
+<dd><p>Unpack a binary blob according to the specification given in the header</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">dataset as numpy.ndarray</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.Frame.getEdfBlock">
+<tt class="descname">getEdfBlock</tt><big>(</big><em>force_type=None</em>, <em>fit2dMode=False</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#Frame.getEdfBlock"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.Frame.getEdfBlock" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>force_type</strong> (<em>string or numpy.dtype</em>) – type of the dataset to be enforced like “float64” or “uint16”</li>
+<li><strong>fit2dMode</strong> (<em>boolean</em>) – enforce compatibility with fit2d and starts countimg number of images at 1</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">ascii header block</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">python string with the concatenation of the ascii header and the binary data block</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.Frame.parseheader">
+<tt class="descname">parseheader</tt><big>(</big><em>block</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#Frame.parseheader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.Frame.parseheader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parse the header in some EDF format from an already open file</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>block</strong> (<em>string, should be full ascii</em>) – string representing the header block</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">size of the binary blob</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.Frame.setByteCode">
+<tt class="descname">setByteCode</tt><big>(</big><em>_iVal</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#Frame.setByteCode"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.Frame.setByteCode" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.Frame.setData">
+<tt class="descname">setData</tt><big>(</big><em>npa=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#Frame.setData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.Frame.setData" title="Permalink to this definition">¶</a></dt>
+<dd><p>Setter for data in edf frame</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.Frame.swap_needed">
+<tt class="descname">swap_needed</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#Frame.swap_needed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.Frame.swap_needed" title="Permalink to this definition">¶</a></dt>
+<dd><p>Decide if we need to byteswap</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.edfimage.edfimage">
+<em class="property">class </em><tt class="descclassname">fabio.edfimage.</tt><tt class="descname">edfimage</tt><big>(</big><em>data=None</em>, <em>header=None</em>, <em>header_keys=None</em>, <em>frames=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read and try to write the ESRF edf data format</p>
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.appendFrame">
+<tt class="descname">appendFrame</tt><big>(</big><em>frame=None</em>, <em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.appendFrame"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.appendFrame" title="Permalink to this definition">¶</a></dt>
+<dd><p>Method used add a frame to an EDF file
+:param frame: frame to append to edf image
+:type frame: instance of Frame
+:return: None</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.bpp">
+<tt class="descname">bpp</tt><a class="headerlink" href="#fabio.edfimage.edfimage.bpp" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.bytecode">
+<tt class="descname">bytecode</tt><a class="headerlink" href="#fabio.edfimage.edfimage.bytecode" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.capsHeader">
+<tt class="descname">capsHeader</tt><a class="headerlink" href="#fabio.edfimage.edfimage.capsHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>property: capsHeader of EDF file, i.e. the keys of the header in UPPER case.</p>
+</dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.edfimage.edfimage.checkHeader">
+<em class="property">static </em><tt class="descname">checkHeader</tt><big>(</big><em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.checkHeader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.checkHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Empty for fabioimage but may be populated by others classes</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.data">
+<tt class="descname">data</tt><a class="headerlink" href="#fabio.edfimage.edfimage.data" title="Permalink to this definition">¶</a></dt>
+<dd><p>property: data of EDF file</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.delCapsHeader">
+<tt class="descname">delCapsHeader</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.delCapsHeader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.delCapsHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>deleter for edf capsHeader</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.delData">
+<tt class="descname">delData</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.delData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.delData" title="Permalink to this definition">¶</a></dt>
+<dd><p>deleter for edf Data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.delHeader">
+<tt class="descname">delHeader</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.delHeader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.delHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Deleter for edf header</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.delHeaderKeys">
+<tt class="descname">delHeaderKeys</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.delHeaderKeys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.delHeaderKeys" title="Permalink to this definition">¶</a></dt>
+<dd><p>Deleter for edf header_keys</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.deleteFrame">
+<tt class="descname">deleteFrame</tt><big>(</big><em>frameNb=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.deleteFrame"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.deleteFrame" title="Permalink to this definition">¶</a></dt>
+<dd><p>Method used to remove a frame from an EDF image. by default the last one is removed.
+:param frameNb: frame number to remove, by  default the last.
+:type frameNb: integer
+:return: None</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.dim1">
+<tt class="descname">dim1</tt><a class="headerlink" href="#fabio.edfimage.edfimage.dim1" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.dim2">
+<tt class="descname">dim2</tt><a class="headerlink" href="#fabio.edfimage.edfimage.dim2" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.dims">
+<tt class="descname">dims</tt><a class="headerlink" href="#fabio.edfimage.edfimage.dims" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.fastReadData">
+<tt class="descname">fastReadData</tt><big>(</big><em>filename=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.fastReadData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.fastReadData" title="Permalink to this definition">¶</a></dt>
+<dd><p>This is a special method that will read and return the data from another file ...
+The aim is performances, ... but only supports uncompressed files.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">data from another file using positions from current edfimage</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.fastReadROI">
+<tt class="descname">fastReadROI</tt><big>(</big><em>filename</em>, <em>coords=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.fastReadROI"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.fastReadROI" title="Permalink to this definition">¶</a></dt>
+<dd><p>Method reading Region of Interest of another file  based on metadata available in current edfimage.
+The aim is performances, ... but only supports uncompressed files.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">ROI-data from another file using positions from current edfimage</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">numpy 2darray</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getBpp">
+<tt class="descname">getBpp</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getBpp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getBpp" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getByteCode">
+<tt class="descname">getByteCode</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getByteCode"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getByteCode" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getCapsHeader">
+<tt class="descname">getCapsHeader</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getCapsHeader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getCapsHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>getter for edf headers keys in upper case
+:return: data for current frame
+:rtype: dict</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getData">
+<tt class="descname">getData</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getData" title="Permalink to this definition">¶</a></dt>
+<dd><p>getter for edf Data
+:return: data for current frame
+:rtype: numpy.ndarray</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getDim1">
+<tt class="descname">getDim1</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getDim1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getDim1" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getDim2">
+<tt class="descname">getDim2</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getDim2"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getDim2" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getDims">
+<tt class="descname">getDims</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getDims"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getDims" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getHeader">
+<tt class="descname">getHeader</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getHeader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Getter for the headers. used by the property header,</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getHeaderKeys">
+<tt class="descname">getHeaderKeys</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getHeaderKeys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getHeaderKeys" title="Permalink to this definition">¶</a></dt>
+<dd><p>Getter for edf header_keys</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getNbFrames">
+<tt class="descname">getNbFrames</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getNbFrames"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getNbFrames" title="Permalink to this definition">¶</a></dt>
+<dd><p>Getter for number of frames</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.getframe">
+<tt class="descname">getframe</tt><big>(</big><em>num</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.getframe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.getframe" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the file numbered ‘num’ in the series as a fabioimage</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.header">
+<tt class="descname">header</tt><a class="headerlink" href="#fabio.edfimage.edfimage.header" title="Permalink to this definition">¶</a></dt>
+<dd><p>property: header of EDF file</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.header_keys">
+<tt class="descname">header_keys</tt><a class="headerlink" href="#fabio.edfimage.edfimage.header_keys" title="Permalink to this definition">¶</a></dt>
+<dd><p>property: header_keys of EDF file</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.next">
+<tt class="descname">next</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.next" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the next file in the series as a fabioimage</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="fabio.edfimage.edfimage.nframes">
+<tt class="descname">nframes</tt><a class="headerlink" href="#fabio.edfimage.edfimage.nframes" title="Permalink to this definition">¶</a></dt>
+<dd><p>Getter for number of frames</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.previous">
+<tt class="descname">previous</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.previous"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.previous" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the previous file in the series as a fabioimage</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read in header into self.header and
+the data   into self.data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.setBpp">
+<tt class="descname">setBpp</tt><big>(</big><em>_iVal</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.setBpp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.setBpp" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.setByteCode">
+<tt class="descname">setByteCode</tt><big>(</big><em>_iVal</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.setByteCode"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.setByteCode" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.setCapsHeader">
+<tt class="descname">setCapsHeader</tt><big>(</big><em>_data</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.setCapsHeader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.setCapsHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Enforces the propagation of the header_keys to the list of frames
+:param _data: numpy array representing data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.setData">
+<tt class="descname">setData</tt><big>(</big><em>_data</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.setData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.setData" title="Permalink to this definition">¶</a></dt>
+<dd><p>Enforces the propagation of the data to the list of frames
+:param _data: numpy array representing data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.setDim1">
+<tt class="descname">setDim1</tt><big>(</big><em>_iVal</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.setDim1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.setDim1" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.setDim2">
+<tt class="descname">setDim2</tt><big>(</big><em>_iVal</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.setDim2"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.setDim2" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.setHeader">
+<tt class="descname">setHeader</tt><big>(</big><em>_dictHeader</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.setHeader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.setHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Enforces the propagation of the header to the list of frames</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.setHeaderKeys">
+<tt class="descname">setHeaderKeys</tt><big>(</big><em>_listtHeader</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.setHeaderKeys"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.setHeaderKeys" title="Permalink to this definition">¶</a></dt>
+<dd><p>Enforces the propagation of the header_keys to the list of frames
+:param _listtHeader: list of the (ordered) keys in the header
+:type _listtHeader: python list</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.setNbFrames">
+<tt class="descname">setNbFrames</tt><big>(</big><em>val</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.setNbFrames"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.setNbFrames" title="Permalink to this definition">¶</a></dt>
+<dd><p>Setter for number of frames ... should do nothing. Here just to avoid bugs</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.swap_needed">
+<tt class="descname">swap_needed</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.swap_needed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.swap_needed" title="Permalink to this definition">¶</a></dt>
+<dd><p>Decide if we need to byteswap</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.unpack">
+<tt class="descname">unpack</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.unpack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.unpack" title="Permalink to this definition">¶</a></dt>
+<dd><p>Unpack a binary blob according to the specification given in the header and return the dataset</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">dataset as numpy.ndarray</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.edfimage.edfimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em>, <em>force_type=None</em>, <em>fit2dMode=False</em><big>)</big><a class="reference internal" href="../_modules/fabio/edfimage.html#edfimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.edfimage.edfimage.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Try to write a file
+check we can write zipped also
+mimics that fabian was writing uint16 (we sometimes want floats)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>force_type</strong> – can be numpy.uint16 or simply “float”</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">None</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+<div class="section" id="module-fabio.fit2dmaskimage">
+<span id="fabio-fit2dmaskimage-module"></span><h2><a class="reference internal" href="#module-fabio.fit2dmaskimage" title="fabio.fit2dmaskimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.fit2dmaskimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.fit2dmaskimage" title="Permalink to this headline">¶</a></h2>
+<p>Author: Andy Hammersley, ESRF
+Translation into python/fabio: Jon Wright, ESRF</p>
+<dl class="class">
+<dt id="fabio.fit2dmaskimage.fit2dmaskimage">
+<em class="property">class </em><tt class="descclassname">fabio.fit2dmaskimage.</tt><tt class="descname">fit2dmaskimage</tt><big>(</big><em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fit2dmaskimage.html#fit2dmaskimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fit2dmaskimage.fit2dmaskimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read and try to write Andy Hammersley’s mask format</p>
+<dl class="staticmethod">
+<dt id="fabio.fit2dmaskimage.fit2dmaskimage.checkData">
+<em class="property">static </em><tt class="descname">checkData</tt><big>(</big><em>data=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fit2dmaskimage.html#fit2dmaskimage.checkData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fit2dmaskimage.fit2dmaskimage.checkData" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.fit2dmaskimage.fit2dmaskimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fit2dmaskimage.html#fit2dmaskimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fit2dmaskimage.fit2dmaskimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read in header into self.header and
+the data   into self.data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.fit2dmaskimage.fit2dmaskimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/fit2dmaskimage.html#fit2dmaskimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fit2dmaskimage.fit2dmaskimage.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Try to write a file
+check we can write zipped also
+mimics that fabian was writing uint16 (we sometimes want floats)</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.fit2dspreadsheetimage">
+<span id="fabio-fit2dspreadsheetimage-module"></span><h2><a class="reference internal" href="#module-fabio.fit2dspreadsheetimage" title="fabio.fit2dspreadsheetimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.fit2dspreadsheetimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.fit2dspreadsheetimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Read the fit2d ascii image output</dt>
+<dd><ul class="first last simple">
+<li>Jon Wright, ESRF</li>
+</ul>
+</dd>
+</dl>
+<dl class="class">
+<dt id="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage">
+<em class="property">class </em><tt class="descclassname">fabio.fit2dspreadsheetimage.</tt><tt class="descname">fit2dspreadsheetimage</tt><big>(</big><em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fit2dspreadsheetimage.html#fit2dspreadsheetimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fit2dspreadsheetimage.fit2dspreadsheetimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read a fit2d ascii format</p>
+<dl class="method">
+<dt id="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/fit2dspreadsheetimage.html#fit2dspreadsheetimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read in header into self.header and
+the data   into self.data</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.GEimage">
+<span id="fabio-geimage-module"></span><h2><a class="reference internal" href="#module-fabio.GEimage" title="fabio.GEimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.GEimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.GEimage" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="fabio.GEimage.GEimage">
+<em class="property">class </em><tt class="descclassname">fabio.GEimage.</tt><tt class="descname">GEimage</tt><big>(</big><em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/GEimage.html#GEimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.GEimage.GEimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<dl class="method">
+<dt id="fabio.GEimage.GEimage.getframe">
+<tt class="descname">getframe</tt><big>(</big><em>num</em><big>)</big><a class="reference internal" href="../_modules/fabio/GEimage.html#GEimage.getframe"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.GEimage.GEimage.getframe" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a frame as a new fabioimage object</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.GEimage.GEimage.next">
+<tt class="descname">next</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/GEimage.html#GEimage.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.GEimage.GEimage.next" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the next image in a series as a fabio image</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.GEimage.GEimage.previous">
+<tt class="descname">previous</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/GEimage.html#GEimage.previous"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.GEimage.GEimage.previous" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the previous image in a series as a fabio image</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.GEimage.GEimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/GEimage.html#GEimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.GEimage.GEimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read in header into self.header and
+the data   into self.data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.GEimage.GEimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em>, <em>force_type=<type 'numpy.uint16'></em><big>)</big><a class="reference internal" href="../_modules/fabio/GEimage.html#GEimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.GEimage.GEimage.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Not yet implemented</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.GEimage.demo">
+<tt class="descclassname">fabio.GEimage.</tt><tt class="descname">demo</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/GEimage.html#demo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.GEimage.demo" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="section" id="module-fabio.HiPiCimage">
+<span id="fabio-hipicimage-module"></span><h2><a class="reference internal" href="#module-fabio.HiPiCimage" title="fabio.HiPiCimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.HiPiCimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.HiPiCimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Henning O. Sorensen & Erik Knudsen</dt>
+<dd><blockquote class="first">
+<div>Center for Fundamental Research: Metal Structures in Four Dimensions
+Risoe National Laboratory
+Frederiksborgvej 399
+DK-4000 Roskilde
+email:erik.knudsen@risoe.dk</div></blockquote>
+<ul class="last simple">
+<li>Jon Wright, ESRF</li>
+</ul>
+</dd>
+</dl>
+<p>Information about the file format from Masakatzu Kobayashi is highly appreciated</p>
+<dl class="class">
+<dt id="fabio.HiPiCimage.HiPiCimage">
+<em class="property">class </em><tt class="descclassname">fabio.HiPiCimage.</tt><tt class="descname">HiPiCimage</tt><big>(</big><em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/HiPiCimage.html#HiPiCimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.HiPiCimage.HiPiCimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read HiPic images e.g. collected with a Hamamatsu CCD camera</p>
+<dl class="method">
+<dt id="fabio.HiPiCimage.HiPiCimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/HiPiCimage.html#HiPiCimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.HiPiCimage.HiPiCimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read in header into self.header and
+the data   into self.data</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.kcdimage">
+<span id="fabio-kcdimage-module"></span><h2><a class="reference internal" href="#module-fabio.kcdimage" title="fabio.kcdimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.kcdimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.kcdimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Jerome Kieffer, ESRF </dt>
+<dd>email:jerome.kieffer@esrf.fr</dd>
+</dl>
+<p>kcd images are 2D images written by the old KappaCCD diffractometer built by Nonius in the 1990’s
+Based on the edfimage.py parser.</p>
+<dl class="class">
+<dt id="fabio.kcdimage.kcdimage">
+<em class="property">class </em><tt class="descclassname">fabio.kcdimage.</tt><tt class="descname">kcdimage</tt><big>(</big><em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/kcdimage.html#kcdimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.kcdimage.kcdimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read the Nonius kcd data format</p>
+<dl class="staticmethod">
+<dt id="fabio.kcdimage.kcdimage.checkData">
+<em class="property">static </em><tt class="descname">checkData</tt><big>(</big><em>data=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/kcdimage.html#kcdimage.checkData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.kcdimage.kcdimage.checkData" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.kcdimage.kcdimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/kcdimage.html#kcdimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.kcdimage.kcdimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read in header into self.header and
+the data   into self.data</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.mar345image">
+<span id="fabio-mar345image-module"></span><h2><a class="reference internal" href="#module-fabio.mar345image" title="fabio.mar345image"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.mar345image</span></tt></a> Module<a class="headerlink" href="#module-fabio.mar345image" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="id3">
+<h3>Authors:<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Henning O. Sorensen & Erik Knudsen:
+Center for Fundamental Research: Metal Structures in Four Dimensions;
+Risoe National Laboratory;
+Frederiksborgvej 399;
+DK-4000 Roskilde;
+email:erik.knudsen@risoe.dk</li>
+<li>Jon Wright, Jérôme Kieffer & Gaël Goret:
+European Synchrotron Radiation Facility;
+Grenoble (France)</li>
+</ul>
+<dl class="class">
+<dt id="fabio.mar345image.mar345image">
+<em class="property">class </em><tt class="descclassname">fabio.mar345image.</tt><tt class="descname">mar345image</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../_modules/fabio/mar345image.html#mar345image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.mar345image.mar345image" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<dl class="staticmethod">
+<dt id="fabio.mar345image.mar345image.checkData">
+<em class="property">static </em><tt class="descname">checkData</tt><big>(</big><em>data=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/mar345image.html#mar345image.checkData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.mar345image.mar345image.checkData" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.mar345image.mar345image.nb_overflow_pixels">
+<tt class="descname">nb_overflow_pixels</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/mar345image.html#mar345image.nb_overflow_pixels"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.mar345image.mar345image.nb_overflow_pixels" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.mar345image.mar345image.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/mar345image.html#mar345image.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.mar345image.mar345image.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read a mar345 image</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.mar345image.mar345image.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/mar345image.html#mar345image.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.mar345image.mar345image.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Try to write mar345 file. This is still in beta version.
+It uses CCP4 (LGPL) PCK1 algo from JPA</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+<div class="section" id="module-fabio.marccdimage">
+<span id="fabio-marccdimage-module"></span><h2><a class="reference internal" href="#module-fabio.marccdimage" title="fabio.marccdimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.marccdimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.marccdimage" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="id4">
+<h3>Authors:<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Henning O. Sorensen & Erik Knudsen:
+Center for Fundamental Research: Metal Structures in Four Dimensions;
+Risoe National Laboratory;
+Frederiksborgvej 399;
+DK-4000 Roskilde;
+email:erik.knudsen@risoe.dk</li>
+<li>Jon Wright:
+European Synchrotron Radiation Facility;
+Grenoble (France)</li>
+</ul>
+<p>marccdimage can read MarCCD and MarMosaic images including header info.</p>
+<p>JPW : Use a parser in case of typos (sorry?)</p>
+<dl class="function">
+<dt id="fabio.marccdimage.interpret_header">
+<tt class="descclassname">fabio.marccdimage.</tt><tt class="descname">interpret_header</tt><big>(</big><em>header</em>, <em>fmt</em>, <em>names</em><big>)</big><a class="reference internal" href="../_modules/fabio/marccdimage.html#interpret_header"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.marccdimage.interpret_header" title="Permalink to this definition">¶</a></dt>
+<dd><p>given a format and header interpret it</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.marccdimage.make_format">
+<tt class="descclassname">fabio.marccdimage.</tt><tt class="descname">make_format</tt><big>(</big><em>c_def_string</em><big>)</big><a class="reference internal" href="../_modules/fabio/marccdimage.html#make_format"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.marccdimage.make_format" title="Permalink to this definition">¶</a></dt>
+<dd><p>Reads the header definition in c and makes the format 
+string to pass to struct.unpack</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.marccdimage.marccdimage">
+<em class="property">class </em><tt class="descclassname">fabio.marccdimage.</tt><tt class="descname">marccdimage</tt><big>(</big><em>*args</em>, <em>**kwds</em><big>)</big><a class="reference internal" href="../_modules/fabio/marccdimage.html#marccdimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.marccdimage.marccdimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.tifimage.tifimage" title="fabio.tifimage.tifimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.tifimage.tifimage</span></tt></a></p>
+<p>Read in data in mar ccd format, also 
+MarMosaic images, including header info</p>
+</dd></dl>
+
+</div>
+</div>
+<div class="section" id="module-fabio.OXDimage">
+<span id="fabio-oxdimage-module"></span><h2><a class="reference internal" href="#module-fabio.OXDimage" title="fabio.OXDimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.OXDimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.OXDimage" title="Permalink to this headline">¶</a></h2>
+<p>Reads Oxford Diffraction Sapphire 3 images</p>
+<div class="section" id="id5">
+<h3>Authors:<a class="headerlink" href="#id5" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Henning O. Sorensen & Erik Knudsen:
+Center for Fundamental Research: Metal Structures in Four Dimensions;
+Risoe National Laboratory;
+Frederiksborgvej 399;
+DK-4000 Roskilde;
+email:erik.knudsen@risoe.dk</li>
+<li>Jon Wright, Jérôme Kieffer & Gaël Goret:
+European Synchrotron Radiation Facility;
+Grenoble (France)</li>
+</ul>
+<dl class="class">
+<dt id="fabio.OXDimage.OXDimage">
+<em class="property">class </em><tt class="descclassname">fabio.OXDimage.</tt><tt class="descname">OXDimage</tt><big>(</big><em>data=None</em>, <em>header=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/OXDimage.html#OXDimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.OXDimage.OXDimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Oxford Diffraction Sapphire 3 images reader/writer class</p>
+<dl class="staticmethod">
+<dt id="fabio.OXDimage.OXDimage.checkData">
+<em class="property">static </em><tt class="descname">checkData</tt><big>(</big><em>data=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/OXDimage.html#OXDimage.checkData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.OXDimage.OXDimage.checkData" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.OXDimage.OXDimage.getCompressionRatio">
+<tt class="descname">getCompressionRatio</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/OXDimage.html#OXDimage.getCompressionRatio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.OXDimage.OXDimage.getCompressionRatio" title="Permalink to this definition">¶</a></dt>
+<dd><p>calculate the compression factor obtained vs raw data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.OXDimage.OXDimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/OXDimage.html#OXDimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.OXDimage.OXDimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read in header into self.header and
+the data   into self.data</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.OXDimage.OXDimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/OXDimage.html#OXDimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.OXDimage.OXDimage.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write Oxford diffraction images: this is still beta
+:param fname: output filename</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.OXDimage.Section">
+<em class="property">class </em><tt class="descclassname">fabio.OXDimage.</tt><tt class="descname">Section</tt><big>(</big><em>size</em>, <em>dictHeader</em><big>)</big><a class="reference internal" href="../_modules/fabio/OXDimage.html#Section"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.OXDimage.Section" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
+<p>Small helper class for writing binary headers</p>
+<dl class="method">
+<dt id="fabio.OXDimage.Section.getSize">
+<tt class="descname">getSize</tt><big>(</big><em>dtype</em><big>)</big><a class="reference internal" href="../_modules/fabio/OXDimage.html#Section.getSize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.OXDimage.Section.getSize" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.OXDimage.Section.setData">
+<tt class="descname">setData</tt><big>(</big><em>key</em>, <em>offset</em>, <em>dtype</em>, <em>default=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/OXDimage.html#Section.setData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.OXDimage.Section.setData" title="Permalink to this definition">¶</a></dt>
+<dd><table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
+<li><strong>offset</strong> – int, starting position in the section</li>
+<li><strong>key</strong> – name of the header key</li>
+<li><strong>dtype</strong> – type of the data to insert (defines the size!)</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+<div class="section" id="module-fabio.pilatusimage">
+<span id="fabio-pilatusimage-module"></span><h2><a class="reference internal" href="#module-fabio.pilatusimage" title="fabio.pilatusimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.pilatusimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.pilatusimage" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="id6">
+<h3>Authors:<a class="headerlink" href="#id6" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Henning O. Sorensen & Erik Knudsen:
+Center for Fundamental Research: Metal Structures in Four Dimensions;
+Risoe National Laboratory;
+Frederiksborgvej 399;
+DK-4000 Roskilde;
+email:erik.knudsen@risoe.dk</li>
+<li>Jon Wright:
+European Synchrotron Radiation Facility;
+Grenoble (France)</li>
+</ul>
+<dl class="class">
+<dt id="fabio.pilatusimage.pilatusimage">
+<em class="property">class </em><tt class="descclassname">fabio.pilatusimage.</tt><tt class="descname">pilatusimage</tt><big>(</big><em>*args</em>, <em>**kwds</em><big>)</big><a class="reference internal" href="../_modules/fabio/pilatusimage.html#pilatusimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pilatusimage.pilatusimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.tifimage.tifimage" title="fabio.tifimage.tifimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.tifimage.tifimage</span></tt></a></p>
+<p>Read in Pilatus format, also 
+pilatus images, including header info</p>
+</dd></dl>
+
+</div>
+</div>
+<div class="section" id="module-fabio.pnmimage">
+<span id="fabio-pnmimage-module"></span><h2><a class="reference internal" href="#module-fabio.pnmimage" title="fabio.pnmimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.pnmimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.pnmimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Henning O. Sorensen & Erik Knudsen</dt>
+<dd>Center for Fundamental Research: Metal Structures in Four Dimensions
+Risoe National Laboratory
+Frederiksborgvej 399
+DK-4000 Roskilde
+email:henning.sorensen@risoe.dk</dd>
+</dl>
+<dl class="class">
+<dt id="fabio.pnmimage.pnmimage">
+<em class="property">class </em><tt class="descclassname">fabio.pnmimage.</tt><tt class="descname">pnmimage</tt><big>(</big><em>*arg</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<dl class="staticmethod">
+<dt id="fabio.pnmimage.pnmimage.P1dec">
+<em class="property">static </em><tt class="descname">P1dec</tt><big>(</big><em>buf</em>, <em>bytecode</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.P1dec"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.P1dec" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.pnmimage.pnmimage.P2dec">
+<em class="property">static </em><tt class="descname">P2dec</tt><big>(</big><em>buf</em>, <em>bytecode</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.P2dec"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.P2dec" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.pnmimage.pnmimage.P3dec">
+<em class="property">static </em><tt class="descname">P3dec</tt><big>(</big><em>buf</em>, <em>bytecode</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.P3dec"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.P3dec" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.pnmimage.pnmimage.P4dec">
+<em class="property">static </em><tt class="descname">P4dec</tt><big>(</big><em>buf</em>, <em>bytecode</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.P4dec"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.P4dec" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.pnmimage.pnmimage.P5dec">
+<em class="property">static </em><tt class="descname">P5dec</tt><big>(</big><em>buf</em>, <em>bytecode</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.P5dec"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.P5dec" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.pnmimage.pnmimage.P6dec">
+<em class="property">static </em><tt class="descname">P6dec</tt><big>(</big><em>buf</em>, <em>bytecode</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.P6dec"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.P6dec" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.pnmimage.pnmimage.P7dec">
+<em class="property">static </em><tt class="descname">P7dec</tt><big>(</big><em>buf</em>, <em>bytecode</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.P7dec"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.P7dec" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="staticmethod">
+<dt id="fabio.pnmimage.pnmimage.checkData">
+<em class="property">static </em><tt class="descname">checkData</tt><big>(</big><em>data=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.checkData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.checkData" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.pnmimage.pnmimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>try to read PNM images
+:param fname: name of the file
+:param frame: not relevant here! PNM is always single framed</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.pnmimage.pnmimage.write">
+<tt class="descname">write</tt><big>(</big><em>filename</em><big>)</big><a class="reference internal" href="../_modules/fabio/pnmimage.html#pnmimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.pnmimage.pnmimage.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.tifimage">
+<span id="fabio-tifimage-module"></span><h2><a class="reference internal" href="#module-fabio.tifimage" title="fabio.tifimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.tifimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.tifimage" title="Permalink to this headline">¶</a></h2>
+<p>FabIO class for dealing with TIFF images. 
+In facts wraps TiffIO from V. Armando Solé (available in PyMca) or falls back to PIL</p>
+<div class="section" id="id7">
+<h3>Authors:<a class="headerlink" href="#id7" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Henning O. Sorensen & Erik Knudsen:
+Center for Fundamental Research: Metal Structures in Four Dimensions;
+Risoe National Laboratory;
+Frederiksborgvej 399;
+DK-4000 Roskilde;
+email:erik.knudsen@risoe.dk</li>
+<li>Jérôme Kieffer:
+European Synchrotron Radiation Facility;
+Grenoble (France)</li>
+</ul>
+<p>License: GPLv3+</p>
+<dl class="class">
+<dt id="fabio.tifimage.Image_File_Directory">
+<em class="property">class </em><tt class="descclassname">fabio.tifimage.</tt><tt class="descname">Image_File_Directory</tt><big>(</big><em>instring=None</em>, <em>offset=-1</em><big>)</big><a class="reference internal" href="../_modules/fabio/tifimage.html#Image_File_Directory"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.tifimage.Image_File_Directory" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
+<dl class="method">
+<dt id="fabio.tifimage.Image_File_Directory.unpack">
+<tt class="descname">unpack</tt><big>(</big><em>instring</em>, <em>offset=-1</em><big>)</big><a class="reference internal" href="../_modules/fabio/tifimage.html#Image_File_Directory.unpack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.tifimage.Image_File_Directory.unpack" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.tifimage.Image_File_Directory_entry">
+<em class="property">class </em><tt class="descclassname">fabio.tifimage.</tt><tt class="descname">Image_File_Directory_entry</tt><big>(</big><em>tag=0</em>, <em>tag_type=0</em>, <em>count=0</em>, <em>offset=0</em><big>)</big><a class="reference internal" href="../_modules/fabio/tifimage.html#Image_File_Directory_entry"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.tifimage.Image_File_Directory_entry" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
+<dl class="method">
+<dt id="fabio.tifimage.Image_File_Directory_entry.extract_data">
+<tt class="descname">extract_data</tt><big>(</big><em>full_string</em><big>)</big><a class="reference internal" href="../_modules/fabio/tifimage.html#Image_File_Directory_entry.extract_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.tifimage.Image_File_Directory_entry.extract_data" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.tifimage.Image_File_Directory_entry.unpack">
+<tt class="descname">unpack</tt><big>(</big><em>strInput</em><big>)</big><a class="reference internal" href="../_modules/fabio/tifimage.html#Image_File_Directory_entry.unpack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.tifimage.Image_File_Directory_entry.unpack" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.tifimage.Tiff_header">
+<em class="property">class </em><tt class="descclassname">fabio.tifimage.</tt><tt class="descname">Tiff_header</tt><big>(</big><em>string</em><big>)</big><a class="reference internal" href="../_modules/fabio/tifimage.html#Tiff_header"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.tifimage.Tiff_header" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.tifimage.tifimage">
+<em class="property">class </em><tt class="descclassname">fabio.tifimage.</tt><tt class="descname">tifimage</tt><big>(</big><em>*args</em>, <em>**kwds</em><big>)</big><a class="reference internal" href="../_modules/fabio/tifimage.html#tifimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.tifimage.tifimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Images in TIF format
+Wraps TiffIO</p>
+<dl class="method">
+<dt id="fabio.tifimage.tifimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/tifimage.html#tifimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.tifimage.tifimage.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Wrapper for TiffIO.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="fabio.tifimage.tifimage.write">
+<tt class="descname">write</tt><big>(</big><em>fname</em><big>)</big><a class="reference internal" href="../_modules/fabio/tifimage.html#tifimage.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.tifimage.tifimage.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Overrides the fabioimage.write method and provides a simple TIFF image writer.
+:param fname: name of the file to save the image to
+@tag_type fname: string or unicode (file?)...</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+<div class="section" id="module-fabio.xsdimage">
+<span id="fabio-xsdimage-module"></span><h2><a class="reference internal" href="#module-fabio.xsdimage" title="fabio.xsdimage"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.xsdimage</span></tt></a> Module<a class="headerlink" href="#module-fabio.xsdimage" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Jérôme Kieffer, ESRF </dt>
+<dd>email:jerome.kieffer@esrf.fr</dd>
+</dl>
+<p>XSDimge are XML files containing numpy arrays</p>
+<dl class="class">
+<dt id="fabio.xsdimage.xsdimage">
+<em class="property">class </em><tt class="descclassname">fabio.xsdimage.</tt><tt class="descname">xsdimage</tt><big>(</big><em>data=None</em>, <em>header=None</em>, <em>fname=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/xsdimage.html#xsdimage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.xsdimage.xsdimage" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.fabioimage.fabioimage" title="fabio.fabioimage.fabioimage"><tt class="xref py py-class docutils literal"><span class="pre">fabio.fabioimage.fabioimage</span></tt></a></p>
+<p>Read the XSDataImage XML File data format</p>
+<dl class="method">
+<dt id="fabio.xsdimage.xsdimage.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/xsdimage.html#xsdimage.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.xsdimage.xsdimage.read" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.compression">
+<span id="fabio-compression-module"></span><h2><a class="reference internal" href="#module-fabio.compression" title="fabio.compression"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.compression</span></tt></a> Module<a class="headerlink" href="#module-fabio.compression" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Jérôme Kieffer, ESRF</dt>
+<dd>email:jerome.kieffer@esrf.fr</dd>
+</dl>
+<p>FabIO library containing compression and decompression algorithm for various</p>
+<dl class="function">
+<dt id="fabio.compression.compByteOffet_numpy">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">compByteOffet_numpy</tt><big>(</big><em>data</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#compByteOffet_numpy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.compByteOffet_numpy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compress a dataset into a string using the byte_offet algorithm</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>data</strong> – ndarray</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">string/bytes with compressed data</td>
+</tr>
+</tbody>
+</table>
+<p>test = numpy.array([0,1,2,127,0,1,2,128,0,1,2,32767,0,1,2,32768,0,1,2,2147483647,0,1,2,2147483648,0,1,2,128,129,130,32767,32768,128,129,130,32768,2147483647,2147483648])</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.compPCK">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">compPCK</tt><big>(</big><em>data</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#compPCK"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.compPCK" title="Permalink to this definition">¶</a></dt>
+<dd><p>Modified CCP4  pck compressor used in MAR345 images</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>data</strong> – numpy.ndarray (square array)</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">compressed stream</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.compTY1">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">compTY1</tt><big>(</big><em>data</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#compTY1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.compTY1" title="Permalink to this definition">¶</a></dt>
+<dd><p>Modified byte offset compressor used in Oxford Diffraction images</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>data</strong> – numpy.ndarray with the input data (integers!)</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">3-tuple of strings: raw_8,raw_16,raw_32 containing raw data with integer of the given size</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decByteOffet_cython">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decByteOffet_cython</tt><big>(</big><em>stream</em>, <em>size=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#decByteOffet_cython"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.decByteOffet_cython" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="docutils">
+<dt>Analyze a stream of char with any length of exception:</dt>
+<dd>2, 4, or 8 bytes integers</dd>
+</dl>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>stream</strong> – string representing the compressed data</li>
+<li><strong>size</strong> – the size of the output array (of longInts)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">1D-ndarray</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decByteOffet_numpy">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decByteOffet_numpy</tt><big>(</big><em>stream</em>, <em>size=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#decByteOffet_numpy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.decByteOffet_numpy" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="docutils">
+<dt>Analyze a stream of char with any length of exception:</dt>
+<dd>2, 4, or 8 bytes integers</dd>
+</dl>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>stream</strong> – string representing the compressed data</li>
+<li><strong>size</strong> – the size of the output array (of longInts)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">1D-ndarray</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decByteOffet_python">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decByteOffet_python</tt><big>(</big><em>stream</em>, <em>size</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#decByteOffet_python"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.decByteOffet_python" title="Permalink to this definition">¶</a></dt>
+<dd><p>Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>stream</strong> – string representing the compressed data</li>
+<li><strong>size</strong> – the size of the output array (of longInts)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">1D-ndarray</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decByteOffet_weave">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decByteOffet_weave</tt><big>(</big><em>stream</em>, <em>size</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#decByteOffet_weave"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.decByteOffet_weave" title="Permalink to this definition">¶</a></dt>
+<dd><p>Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>stream</strong> – string representing the compressed data</li>
+<li><strong>size</strong> – the size of the output array (of longInts)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">1D-ndarray</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decBzip2">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decBzip2</tt><big>(</big><em>stream</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#decBzip2"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.decBzip2" title="Permalink to this definition">¶</a></dt>
+<dd><p>Decompress a chunk of data using the bzip2 algorithm from Python</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decGzip">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decGzip</tt><big>(</big><em>stream</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#decGzip"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.decGzip" title="Permalink to this definition">¶</a></dt>
+<dd><p>Decompress a chunk of data using the gzip algorithm from Python or alternatives if possible</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decKM4CCD">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decKM4CCD</tt><big>(</big><em>raw_8</em>, <em>raw_16=None</em>, <em>raw_32=None</em><big>)</big><a class="headerlink" href="#fabio.compression.decKM4CCD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Modified byte offset decompressor used in Oxford Diffraction images</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>raw_8</strong> – strings containing raw data with integer 8 bits</li>
+<li><strong>raw_16</strong> – strings containing raw data with integer 16 bits</li>
+<li><strong>raw_32</strong> – strings containing raw data with integer 32 bits</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">numpy.ndarray</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decPCK">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decPCK</tt><big>(</big><em>stream</em>, <em>dim1=None</em>, <em>dim2=None</em>, <em>overflowPix=None</em>, <em>version=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#decPCK"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.decPCK" title="Permalink to this definition">¶</a></dt>
+<dd><p>Modified CCP4  pck decompressor used in MAR345 images</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>stream</strong> – string or file</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">numpy.ndarray (square array)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decTY1">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decTY1</tt><big>(</big><em>raw_8</em>, <em>raw_16=None</em>, <em>raw_32=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#decTY1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.decTY1" title="Permalink to this definition">¶</a></dt>
+<dd><p>Modified byte offset decompressor used in Oxford Diffraction images</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>raw_8</strong> – strings containing raw data with integer 8 bits</li>
+<li><strong>raw_16</strong> – strings containing raw data with integer 16 bits</li>
+<li><strong>raw_32</strong> – strings containing raw data with integer 32 bits</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">numpy.ndarray</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.decZlib">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">decZlib</tt><big>(</big><em>stream</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#decZlib"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.decZlib" title="Permalink to this definition">¶</a></dt>
+<dd><p>Decompress a chunk of data using the zlib algorithm from Python</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.endianness">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">endianness</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#endianness"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.endianness" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the native endianness of the system</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.compression.md5sum">
+<tt class="descclassname">fabio.compression.</tt><tt class="descname">md5sum</tt><big>(</big><em>blob</em><big>)</big><a class="reference internal" href="../_modules/fabio/compression.html#md5sum"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.compression.md5sum" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns the md5sum of an object...</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.converters">
+<span id="fabio-converters-module"></span><h2><a class="reference internal" href="#module-fabio.converters" title="fabio.converters"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.converters</span></tt></a> Module<a class="headerlink" href="#module-fabio.converters" title="Permalink to this headline">¶</a></h2>
+<p>Converter module. 
+This is for the moment empty (populated only with almost pass through anonymous functions)
+but aims to be populated with more sofisticated translators ...</p>
+<dl class="function">
+<dt id="fabio.converters.convert_data">
+<tt class="descclassname">fabio.converters.</tt><tt class="descname">convert_data</tt><big>(</big><em>inp</em>, <em>outp</em>, <em>data</em><big>)</big><a class="reference internal" href="../_modules/fabio/converters.html#convert_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.converters.convert_data" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return data converted to the output format ... over-simplistic implementation for the moment ...
+:param inp,outp: input/output format like “cbfimage”
+:param data(ndarray): the actual dataset to be transformed</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.converters.convert_data_integer">
+<tt class="descclassname">fabio.converters.</tt><tt class="descname">convert_data_integer</tt><big>(</big><em>data</em><big>)</big><a class="reference internal" href="../_modules/fabio/converters.html#convert_data_integer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.converters.convert_data_integer" title="Permalink to this definition">¶</a></dt>
+<dd><p>convert data to integer</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="fabio.converters.convert_header">
+<tt class="descclassname">fabio.converters.</tt><tt class="descname">convert_header</tt><big>(</big><em>inp</em>, <em>outp</em>, <em>header</em><big>)</big><a class="reference internal" href="../_modules/fabio/converters.html#convert_header"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.converters.convert_header" title="Permalink to this definition">¶</a></dt>
+<dd><p>return header converted to the output format
+:param inp,outp: input/output format like “cbfimage”
+:param header(dict):the actual set of headers to be transformed</p>
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.datIO">
+<span id="fabio-datio-module"></span><h2><a class="reference internal" href="#module-fabio.datIO" title="fabio.datIO"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.datIO</span></tt></a> Module<a class="headerlink" href="#module-fabio.datIO" title="Permalink to this headline">¶</a></h2>
+<dl class="docutils">
+<dt>Authors: Henning O. Sorensen & Erik Knudsen</dt>
+<dd><p class="first">Center for Fundamental Research: Metal Structures in Four Dimensions
+Risoe National Laboratory
+Frederiksborgvej 399
+DK-4000 Roskilde
+email:erik.knudsen@risoe.dk</p>
+<p class="last">and Jon Wright, ESRF</p>
+</dd>
+</dl>
+<dl class="class">
+<dt id="fabio.datIO.columnfile">
+<em class="property">class </em><tt class="descclassname">fabio.datIO.</tt><tt class="descname">columnfile</tt><big>(</big><em>data=None</em>, <em>clabels=None</em>, <em>rlabels=None</em>, <em>fname=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/datIO.html#columnfile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.datIO.columnfile" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#fabio.datIO.fabiodata" title="fabio.datIO.fabiodata"><tt class="xref py py-class docutils literal"><span class="pre">fabio.datIO.fabiodata</span></tt></a></p>
+<p>Concrete fabiodata class</p>
+<dl class="method">
+<dt id="fabio.datIO.columnfile.read">
+<tt class="descname">read</tt><big>(</big><em>fname</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/datIO.html#columnfile.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.datIO.columnfile.read" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="fabio.datIO.fabiodata">
+<em class="property">class </em><tt class="descclassname">fabio.datIO.</tt><tt class="descname">fabiodata</tt><big>(</big><em>data=None</em>, <em>clabels=None</em>, <em>rlabels=None</em>, <em>fname=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/datIO.html#fabiodata"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.datIO.fabiodata" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
+<p>A common class for dataIO in fable
+Contains a 2d numpy array for keeping data, and two lists (clabels and rlabels)
+containing labels for columns and rows respectively</p>
+<dl class="method">
+<dt id="fabio.datIO.fabiodata.read">
+<tt class="descname">read</tt><big>(</big><em>fname=None</em>, <em>frame=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/datIO.html#fabiodata.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.datIO.fabiodata.read" title="Permalink to this definition">¶</a></dt>
+<dd><p>To be overridden by format specific subclasses</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.TiffIO">
+<span id="fabio-tiffio-module"></span><h2><a class="reference internal" href="#module-fabio.TiffIO" title="fabio.TiffIO"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.TiffIO</span></tt></a> Module<a class="headerlink" href="#module-fabio.TiffIO" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="fabio.TiffIO.TiffIO">
+<em class="property">class </em><tt class="descclassname">fabio.TiffIO.</tt><tt class="descname">TiffIO</tt><big>(</big><em>filename</em>, <em>mode=None</em>, <em>cache_length=20</em>, <em>mono_output=False</em><big>)</big><a class="reference internal" href="../_modules/fabio/TiffIO.html#TiffIO"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.TiffIO.TiffIO" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
+<dl class="method">
+<dt id="fabio.TiffIO.TiffIO.getData">
+<tt class="descname">getData</tt><big>(</big><em>nImage</em>, <em>**kw</em><big>)</big><a class="reference internal" href="../_modules/fabio/TiffIO.html#TiffIO.getData"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.TiffIO.TiffIO.getData" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.TiffIO.TiffIO.getImage">
+<tt class="descname">getImage</tt><big>(</big><em>nImage</em><big>)</big><a class="reference internal" href="../_modules/fabio/TiffIO.html#TiffIO.getImage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.TiffIO.TiffIO.getImage" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.TiffIO.TiffIO.getImageFileDirectories">
+<tt class="descname">getImageFileDirectories</tt><big>(</big><em>fd=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/TiffIO.html#TiffIO.getImageFileDirectories"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.TiffIO.TiffIO.getImageFileDirectories" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.TiffIO.TiffIO.getInfo">
+<tt class="descname">getInfo</tt><big>(</big><em>nImage</em>, <em>**kw</em><big>)</big><a class="reference internal" href="../_modules/fabio/TiffIO.html#TiffIO.getInfo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.TiffIO.TiffIO.getInfo" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.TiffIO.TiffIO.getNumberOfImages">
+<tt class="descname">getNumberOfImages</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/fabio/TiffIO.html#TiffIO.getNumberOfImages"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.TiffIO.TiffIO.getNumberOfImages" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="method">
+<dt id="fabio.TiffIO.TiffIO.writeImage">
+<tt class="descname">writeImage</tt><big>(</big><em>image0</em>, <em>info=None</em>, <em>software=None</em>, <em>date=None</em><big>)</big><a class="reference internal" href="../_modules/fabio/TiffIO.html#TiffIO.writeImage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.TiffIO.TiffIO.writeImage" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="module-fabio.readbytestream">
+<span id="fabio-readbytestream-module"></span><h2><a class="reference internal" href="#module-fabio.readbytestream" title="fabio.readbytestream"><tt class="xref py py-mod docutils literal"><span class="pre">fabio.readbytestream</span></tt></a> Module<a class="headerlink" href="#module-fabio.readbytestream" title="Permalink to this headline">¶</a></h2>
+<p>Reads a bytestream</p>
+<dl class="docutils">
+<dt>Authors: Jon Wright    Henning O. Sorensen & Erik Knudsen</dt>
+<dd>ESRF          Risoe National Laboratory</dd>
+</dl>
+<dl class="function">
+<dt id="fabio.readbytestream.readbytestream">
+<tt class="descclassname">fabio.readbytestream.</tt><tt class="descname">readbytestream</tt><big>(</big><em>fil</em>, <em>offset</em>, <em>x</em>, <em>y</em>, <em>nbytespp</em>, <em>datatype='int'</em>, <em>signed='n'</em>, <em>swap='n'</em>, <em>typeout=<type 'numpy.uint16'></em><big>)</big><a class="reference internal" href="../_modules/fabio/readbytestream.html#readbytestream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#fabio.readbytestream.readby [...]
+<dd><p>Reads in a bytestream from a file (which may be a string indicating
+a filename, or an already opened file (should be “rb”))
+offset is the position (in bytes) where the pixel data start
+nbytespp = number of bytes per pixel
+type can be int or float (4 bytes pp) or double (8 bytes pp)
+signed: normally signed data ‘y’, but ‘n’ to try to get back the 
+right numbers when unsigned data are converted to signed 
+(python once had no unsigned numeric types.)
+swap, normally do not bother, but ‘y’ to swap bytes
+typeout is the numpy type to output, normally uint16, 
+but more if overflows occurred
+x and y are the pixel dimensions</p>
+<p>TODO : Read in regions of interest</p>
+<p>PLEASE LEAVE THE STRANGE INTERFACE ALONE - 
+IT IS USEFUL FOR THE BRUKER FORMAT</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">FabIO Package</a><ul>
+<li><a class="reference internal" href="#id1"><tt class="docutils literal"><span class="pre">fabio</span></tt> Package</a></li>
+<li><a class="reference internal" href="#module-fabio.fabioimage"><tt class="docutils literal"><span class="pre">fabio.fabioimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.fabioutils"><tt class="docutils literal"><span class="pre">fabio.fabioutils</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.file_series"><tt class="docutils literal"><span class="pre">fabio.file_series</span></tt> Module</a><ul>
+<li><a class="reference internal" href="#authors">Authors:</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#module-fabio.openimage"><tt class="docutils literal"><span class="pre">fabio.openimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.adscimage"><tt class="docutils literal"><span class="pre">fabio.adscimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.binaryimage"><tt class="docutils literal"><span class="pre">fabio.binaryimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.bruker100image"><tt class="docutils literal"><span class="pre">fabio.bruker100image</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.brukerimage"><tt class="docutils literal"><span class="pre">fabio.brukerimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.cbfimage"><tt class="docutils literal"><span class="pre">fabio.cbfimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.dm3image"><tt class="docutils literal"><span class="pre">fabio.dm3image</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.edfimage"><tt class="docutils literal"><span class="pre">fabio.edfimage</span></tt> Module</a><ul>
+<li><a class="reference internal" href="#id2">Authors:</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#module-fabio.fit2dmaskimage"><tt class="docutils literal"><span class="pre">fabio.fit2dmaskimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.fit2dspreadsheetimage"><tt class="docutils literal"><span class="pre">fabio.fit2dspreadsheetimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.GEimage"><tt class="docutils literal"><span class="pre">fabio.GEimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.HiPiCimage"><tt class="docutils literal"><span class="pre">fabio.HiPiCimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.kcdimage"><tt class="docutils literal"><span class="pre">fabio.kcdimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.mar345image"><tt class="docutils literal"><span class="pre">fabio.mar345image</span></tt> Module</a><ul>
+<li><a class="reference internal" href="#id3">Authors:</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#module-fabio.marccdimage"><tt class="docutils literal"><span class="pre">fabio.marccdimage</span></tt> Module</a><ul>
+<li><a class="reference internal" href="#id4">Authors:</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#module-fabio.OXDimage"><tt class="docutils literal"><span class="pre">fabio.OXDimage</span></tt> Module</a><ul>
+<li><a class="reference internal" href="#id5">Authors:</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#module-fabio.pilatusimage"><tt class="docutils literal"><span class="pre">fabio.pilatusimage</span></tt> Module</a><ul>
+<li><a class="reference internal" href="#id6">Authors:</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#module-fabio.pnmimage"><tt class="docutils literal"><span class="pre">fabio.pnmimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.tifimage"><tt class="docutils literal"><span class="pre">fabio.tifimage</span></tt> Module</a><ul>
+<li><a class="reference internal" href="#id7">Authors:</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#module-fabio.xsdimage"><tt class="docutils literal"><span class="pre">fabio.xsdimage</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.compression"><tt class="docutils literal"><span class="pre">fabio.compression</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.converters"><tt class="docutils literal"><span class="pre">fabio.converters</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.datIO"><tt class="docutils literal"><span class="pre">fabio.datIO</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.TiffIO"><tt class="docutils literal"><span class="pre">fabio.TiffIO</span></tt> Module</a></li>
+<li><a class="reference internal" href="#module-fabio.readbytestream"><tt class="docutils literal"><span class="pre">fabio.readbytestream</span></tt> Module</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="../Changelog.html"
+                        title="previous chapter">Changelog</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="../_sources/api/modules.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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="right" >
+          <a href="../Changelog.html" title="Changelog"
+             >previous</a> |</li>
+        <li><a href="../index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/genindex.html b/doc/html/genindex.html
new file mode 100644
index 0000000..e1922b1
--- /dev/null
+++ b/doc/html/genindex.html
@@ -0,0 +1,1639 @@
+
+
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Index — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="#" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+
+<h1 id="index">Index</h1>
+
+<div class="genindex-jumpbox">
+ <a href="#A"><strong>A</strong></a>
+ | <a href="#B"><strong>B</strong></a>
+ | <a href="#C"><strong>C</strong></a>
+ | <a href="#D"><strong>D</strong></a>
+ | <a href="#E"><strong>E</strong></a>
+ | <a href="#F"><strong>F</strong></a>
+ | <a href="#G"><strong>G</strong></a>
+ | <a href="#H"><strong>H</strong></a>
+ | <a href="#I"><strong>I</strong></a>
+ | <a href="#J"><strong>J</strong></a>
+ | <a href="#K"><strong>K</strong></a>
+ | <a href="#L"><strong>L</strong></a>
+ | <a href="#M"><strong>M</strong></a>
+ | <a href="#N"><strong>N</strong></a>
+ | <a href="#O"><strong>O</strong></a>
+ | <a href="#P"><strong>P</strong></a>
+ | <a href="#R"><strong>R</strong></a>
+ | <a href="#S"><strong>S</strong></a>
+ | <a href="#T"><strong>T</strong></a>
+ | <a href="#U"><strong>U</strong></a>
+ | <a href="#W"><strong>W</strong></a>
+ | <a href="#X"><strong>X</strong></a>
+ 
+</div>
+<h2 id="A">A</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.add">add() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.adscimage.adscimage">adscimage (class in fabio.adscimage)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.appendFrame">appendFrame() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="B">B</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage.basic_translate">basic_translate() (fabio.brukerimage.brukerimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.BINARY_MARKER">BINARY_MARKER (fabio.cbfimage.CIF attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.binaryimage.binaryimage">binaryimage (class in fabio.binaryimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.BLANK">BLANK (fabio.cbfimage.CIF attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.bpp">bpp (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage.bpp_to_numpy">bpp_to_numpy (fabio.brukerimage.brukerimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.bruker100image.bruker100image">bruker100image (class in fabio.bruker100image)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage">brukerimage (class in fabio.brukerimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.bytecode">bytecode (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.edfimage.Frame.bytecode">(fabio.edfimage.Frame attribute)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.BZ2File">BZ2File (class in fabio.fabioutils)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="C">C</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage.calc_bpp">calc_bpp() (fabio.brukerimage.brukerimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.capsHeader">capsHeader (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.cbfimage">cbfimage (class in fabio.cbfimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.cbfimage.checkData">checkData() (fabio.cbfimage.cbfimage static method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.OXDimage.OXDimage.checkData">(fabio.OXDimage.OXDimage static method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.checkData">(fabio.fabioimage.fabioimage static method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fit2dmaskimage.fit2dmaskimage.checkData">(fabio.fit2dmaskimage.fit2dmaskimage static method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.kcdimage.kcdimage.checkData">(fabio.kcdimage.kcdimage static method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.mar345image.mar345image.checkData">(fabio.mar345image.mar345image static method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.checkData">(fabio.pnmimage.pnmimage static method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.checkHeader">checkHeader() (fabio.edfimage.edfimage static method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.checkHeader">(fabio.fabioimage.fabioimage static method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF">CIF (class in fabio.cbfimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.classname">classname (fabio.fabioimage.fabioimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.datIO.columnfile">columnfile (class in fabio.datIO)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.compByteOffet_numpy">compByteOffet_numpy() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.compPCK">compPCK() (in module fabio.compression)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.compression.compTY1">compTY1() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.construct_filename">construct_filename() (in module fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.convert">convert() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.converters.convert_data">convert_data() (in module fabio.converters)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.converters.convert_data_integer">convert_data_integer() (in module fabio.converters)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.converters.convert_header">convert_header() (in module fabio.converters)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.current">current() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.current">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.current_image">current_image() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.current_image">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.current_object">current_object() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.current_object">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="D">D</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.data">data (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.edfimage.Frame.data">(fabio.edfimage.Frame attribute)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.compression.decByteOffet_cython">decByteOffet_cython() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.decByteOffet_numpy">decByteOffet_numpy() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.decByteOffet_python">decByteOffet_python() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.decByteOffet_weave">decByteOffet_weave() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.decBzip2">decBzip2() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.decGzip">decGzip() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.decKM4CCD">decKM4CCD() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.FilenameObject.deconstruct_filename">deconstruct_filename() (fabio.fabioutils.FilenameObject method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.fabioutils.deconstruct_filename">(in module fabio.fabioutils)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.compression.decPCK">decPCK() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.decTY1">decTY1() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.decZlib">decZlib() (in module fabio.compression)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.delCapsHeader">delCapsHeader() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.delData">delData() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.deleteFrame">deleteFrame() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.delHeader">delHeader() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.delHeaderKeys">delHeaderKeys() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.GEimage.demo">demo() (in module fabio.GEimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.deprecated">deprecated() (in module fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.dim1">dim1 (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.dim2">dim2 (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.dims">dims (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.dm3image.dm3image">dm3image (class in fabio.dm3image)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.openimage.do_magic">do_magic() (in module fabio.openimage)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="E">E</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage">edfimage (class in fabio.edfimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.endianness">endianness() (in module fabio.compression)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.EOL">EOL (fabio.cbfimage.CIF attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.binaryimage.binaryimage.estimate_offset_value">estimate_offset_value() (fabio.binaryimage.binaryimage method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.exists">exists() (fabio.cbfimage.CIF method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.existsInLoop">existsInLoop() (fabio.cbfimage.CIF method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.tifimage.Image_File_Directory_entry.extract_data">extract_data() (fabio.tifimage.Image_File_Directory_entry method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.extract_filenumber">extract_filenumber() (in module fabio.fabioutils)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="F">F</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#module-fabio.__init__">fabio.__init__ (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.adscimage">fabio.adscimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.binaryimage">fabio.binaryimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.bruker100image">fabio.bruker100image (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.brukerimage">fabio.brukerimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.cbfimage">fabio.cbfimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.compression">fabio.compression (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.converters">fabio.converters (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.datIO">fabio.datIO (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.dm3image">fabio.dm3image (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.edfimage">fabio.edfimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.fabioimage">fabio.fabioimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.fabioutils">fabio.fabioutils (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.file_series">fabio.file_series (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.fit2dmaskimage">fabio.fit2dmaskimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.fit2dspreadsheetimage">fabio.fit2dspreadsheetimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.GEimage">fabio.GEimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.HiPiCimage">fabio.HiPiCimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.kcdimage">fabio.kcdimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.mar345image">fabio.mar345image (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.marccdimage">fabio.marccdimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.openimage">fabio.openimage (module)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#module-fabio.OXDimage">fabio.OXDimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.pilatusimage">fabio.pilatusimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.pnmimage">fabio.pnmimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.readbytestream">fabio.readbytestream (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.TiffIO">fabio.TiffIO (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.tifimage">fabio.tifimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#module-fabio.xsdimage">fabio.xsdimage (module)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.datIO.fabiodata">fabiodata (class in fabio.datIO)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage">fabioimage (class in fabio.fabioimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.fastReadData">fastReadData() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.fastReadROI">fastReadROI() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.File">File (class in fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series">file_series (class in fabio.file_series)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.filename_series">filename_series (class in fabio.file_series)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.FilenameObject">FilenameObject (class in fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.first">first() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.first_image">first_image() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.first_object">first_object() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fit2dmaskimage.fit2dmaskimage">fit2dmaskimage (class in fabio.fit2dmaskimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fit2dspreadsheetimage.fit2dspreadsheetimage">fit2dspreadsheetimage (class in fabio.fit2dspreadsheetimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.Frame">Frame (class in fabio.edfimage)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="G">G</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.GEimage.GEimage">GEimage (class in fabio.GEimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage.gen_header">gen_header() (fabio.brukerimage.brukerimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage.gen_overflow">gen_overflow() (fabio.brukerimage.brukerimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getBpp">getBpp() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getByteCode">getByteCode() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.edfimage.Frame.getByteCode">(fabio.edfimage.Frame method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getCapsHeader">getCapsHeader() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.getclassname">getclassname() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.OXDimage.OXDimage.getCompressionRatio">getCompressionRatio() (fabio.OXDimage.OXDimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getData">getData() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.TiffIO.TiffIO.getData">(fabio.TiffIO.TiffIO method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.edfimage.Frame.getData">(fabio.edfimage.Frame method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getDim1">getDim1() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getDim2">getDim2() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getDims">getDims() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.Frame.getEdfBlock">getEdfBlock() (fabio.edfimage.Frame method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getframe">getframe() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.GEimage.GEimage.getframe">(fabio.GEimage.GEimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.getframe">(fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getHeader">getHeader() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.getheader">getheader() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getHeaderKeys">getHeaderKeys() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.TiffIO.TiffIO.getImage">getImage() (fabio.TiffIO.TiffIO method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.TiffIO.TiffIO.getImageFileDirectories">getImageFileDirectories() (fabio.TiffIO.TiffIO method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.TiffIO.TiffIO.getInfo">getInfo() (fabio.TiffIO.TiffIO method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.getmax">getmax() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.getmean">getmean() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.getmin">getmin() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.getNbFrames">getNbFrames() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.getnum">getnum() (in module fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.TiffIO.TiffIO.getNumberOfImages">getNumberOfImages() (fabio.TiffIO.TiffIO method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.BZ2File.getSize">getSize() (fabio.fabioutils.BZ2File method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.OXDimage.Section.getSize">(fabio.OXDimage.Section method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioutils.File.getSize">(fabio.fabioutils.File method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioutils.StringIO.getSize">(fabio.fabioutils.StringIO method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.getstddev">getstddev() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.GzipFile">GzipFile (class in fabio.fabioutils)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="H">H</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.header">header (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.header_keys">header_keys (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage.HEADERS_KEYS">HEADERS_KEYS (fabio.brukerimage.brukerimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.HiPiCimage.HiPiCimage">HiPiCimage (class in fabio.HiPiCimage)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="I">I</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.tifimage.Image_File_Directory">Image_File_Directory (class in fabio.tifimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.tifimage.Image_File_Directory_entry">Image_File_Directory_entry (class in fabio.tifimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.integrate_area">integrate_area() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.marccdimage.interpret_header">interpret_header() (in module fabio.marccdimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.isAscii">isAscii() (fabio.cbfimage.CIF static method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.fabioutils.isAscii">(in module fabio.fabioutils)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="J">J</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.jump">jump() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.jump">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.jump_filename">jump_filename() (in module fabio.fabioutils)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.jump_image">jump_image() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.jump_image">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.jump_object">jump_object() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.jump_object">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="K">K</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.kcdimage.kcdimage">kcdimage (class in fabio.kcdimage)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="L">L</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.last">last() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.last_image">last_image() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.last_object">last_object() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.len">len() (fabio.file_series.file_series method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.load">load() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.loadCHIPLOT">loadCHIPLOT() (fabio.cbfimage.CIF method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.loadCIF">loadCIF() (fabio.cbfimage.CIF method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.LoopHasKey">LoopHasKey() (fabio.cbfimage.CIF static method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="M">M</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.marccdimage.make_format">make_format() (in module fabio.marccdimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.make_slice">make_slice() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.mar345image.mar345image">mar345image (class in fabio.mar345image)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.marccdimage.marccdimage">marccdimage (class in fabio.marccdimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.compression.md5sum">md5sum() (in module fabio.compression)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="N">N</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.mar345image.mar345image.nb_overflow_pixels">nb_overflow_pixels() (fabio.mar345image.mar345image method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.new_file_series">new_file_series() (in module fabio.file_series)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.new_file_series0">new_file_series0() (in module fabio.file_series)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.next">next() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.GEimage.GEimage.next">(fabio.GEimage.GEimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.next">(fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.file_series.file_series.next">(fabio.file_series.file_series method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.next">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.next_filename">next_filename() (in module fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.next_image">next_image() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.next_image">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.next_object">next_object() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.next_object">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.nframes">nframes (fabio.edfimage.edfimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.nice_int">nice_int() (in module fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.numbered_file_series">numbered_file_series (class in fabio.file_series)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.numstem">numstem() (in module fabio.fabioutils)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="O">O</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.openimage.openheader">openheader() (in module fabio.openimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.openimage.openimage">openimage() (in module fabio.openimage)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.OXDimage.OXDimage">OXDimage (class in fabio.OXDimage)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="P">P</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.P1dec">P1dec() (fabio.pnmimage.pnmimage static method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.P2dec">P2dec() (fabio.pnmimage.pnmimage static method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.P3dec">P3dec() (fabio.pnmimage.pnmimage static method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.P4dec">P4dec() (fabio.pnmimage.pnmimage static method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.P5dec">P5dec() (fabio.pnmimage.pnmimage static method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.P6dec">P6dec() (fabio.pnmimage.pnmimage static method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.P7dec">P7dec() (fabio.pnmimage.pnmimage static method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.pad">pad() (in module fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.Frame.parseheader">parseheader() (fabio.edfimage.Frame method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.pilatusimage.pilatusimage">pilatusimage (class in fabio.pilatusimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage">pnmimage (class in fabio.pnmimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.pop">pop() (fabio.cbfimage.CIF method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.popitem">popitem() (fabio.cbfimage.CIF method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.prev_image">prev_image() (fabio.file_series.filename_series method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.previous">previous() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.GEimage.GEimage.previous">(fabio.GEimage.GEimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.previous">(fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.file_series.file_series.previous">(fabio.file_series.file_series method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.previous">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.previous_filename">previous_filename() (in module fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.previous_image">previous_image() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.file_series.file_series.previous_object">previous_object() (fabio.file_series.file_series method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.file_series.filename_series.previous_object">(fabio.file_series.filename_series method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="R">R</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.adscimage.adscimage.read">read() (fabio.adscimage.adscimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.GEimage.GEimage.read">(fabio.GEimage.GEimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.HiPiCimage.HiPiCimage.read">(fabio.HiPiCimage.HiPiCimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.OXDimage.OXDimage.read">(fabio.OXDimage.OXDimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.binaryimage.binaryimage.read">(fabio.binaryimage.binaryimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.bruker100image.bruker100image.read">(fabio.bruker100image.bruker100image method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage.read">(fabio.brukerimage.brukerimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.cbfimage.cbfimage.read">(fabio.cbfimage.cbfimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.datIO.columnfile.read">(fabio.datIO.columnfile method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.datIO.fabiodata.read">(fabio.datIO.fabiodata method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.dm3image.dm3image.read">(fabio.dm3image.dm3image method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.read">(fabio.edfimage.edfimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.read">(fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fit2dmaskimage.fit2dmaskimage.read">(fabio.fit2dmaskimage.fit2dmaskimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read">(fabio.fit2dspreadsheetimage.fit2dspreadsheetimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.kcdimage.kcdimage.read">(fabio.kcdimage.kcdimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.mar345image.mar345image.read">(fabio.mar345image.mar345image method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.read">(fabio.pnmimage.pnmimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.tifimage.tifimage.read">(fabio.tifimage.tifimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.xsdimage.xsdimage.read">(fabio.xsdimage.xsdimage method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.dm3image.dm3image.read_data">read_data() (fabio.dm3image.dm3image method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.dm3image.dm3image.read_tag_entry">read_tag_entry() (fabio.dm3image.dm3image method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.dm3image.dm3image.read_tag_group">read_tag_group() (fabio.dm3image.dm3image method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.dm3image.dm3image.read_tag_type">read_tag_type() (fabio.dm3image.dm3image method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.dm3image.dm3image.readbytes">readbytes() (fabio.dm3image.dm3image method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.readbytestream.readbytestream">readbytestream() (in module fabio.readbytestream)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.readCIF">readCIF() (fabio.cbfimage.CIF method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.readheader">readheader() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.readROI">readROI() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.rebin">rebin() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.resetvals">resetvals() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="S">S</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.save">save() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.saveCIF">saveCIF() (fabio.cbfimage.CIF method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.OXDimage.Section">Section (class in fabio.OXDimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.setBpp">setBpp() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.setByteCode">setByteCode() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.edfimage.Frame.setByteCode">(fabio.edfimage.Frame method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.setCapsHeader">setCapsHeader() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.setData">setData() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.OXDimage.Section.setData">(fabio.OXDimage.Section method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.edfimage.Frame.setData">(fabio.edfimage.Frame method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.setDim1">setDim1() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.setDim2">setDim2() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.setHeader">setHeader() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.setHeaderKeys">setHeaderKeys() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.setNbFrames">setNbFrames() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.BZ2File.setSize">setSize() (fabio.fabioutils.BZ2File method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.fabioutils.File.setSize">(fabio.fabioutils.File method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioutils.StringIO.setSize">(fabio.fabioutils.StringIO method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.BZ2File.size">size (fabio.fabioutils.BZ2File attribute)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.fabioutils.File.size">(fabio.fabioutils.File attribute)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioutils.StringIO.size">(fabio.fabioutils.StringIO attribute)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage.SPACER">SPACER (fabio.brukerimage.brukerimage attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.START_COMMENT">START_COMMENT (fabio.cbfimage.CIF attribute)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.FilenameObject.str">str() (fabio.fabioutils.FilenameObject method)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.StringIO">StringIO (class in fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.binaryimage.binaryimage.swap_needed">swap_needed() (fabio.binaryimage.binaryimage static method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.edfimage.Frame.swap_needed">(fabio.edfimage.Frame method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.swap_needed">(fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="T">T</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.adscimage.test">test() (in module fabio.adscimage)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.brukerimage.test">(in module fabio.brukerimage)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioimage.test">(in module fabio.fabioimage)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.tifimage.Tiff_header">Tiff_header (class in fabio.tifimage)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.TiffIO.TiffIO">TiffIO (class in fabio.TiffIO)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.tifimage.tifimage">tifimage (class in fabio.tifimage)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.toAscii">toAscii() (in module fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.bruker100image.bruker100image.toPIL16">toPIL16() (fabio.bruker100image.bruker100image method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.toPIL16">(fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="api/modules.html#fabio.cbfimage.CIF.tostring">tostring() (fabio.cbfimage.CIF method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.fabioutils.FilenameObject.tostring">(fabio.fabioutils.FilenameObject method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="U">U</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.fabioutils.UnknownCompressedFile">UnknownCompressedFile (class in fabio.fabioutils)</a>
+  </dt>
+
+      
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.unpack">unpack() (fabio.edfimage.edfimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.tifimage.Image_File_Directory.unpack">(fabio.tifimage.Image_File_Directory method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.tifimage.Image_File_Directory_entry.unpack">(fabio.tifimage.Image_File_Directory_entry method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.update_header">update_header() (fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="W">W</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.adscimage.adscimage.write">write() (fabio.adscimage.adscimage method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="api/modules.html#fabio.GEimage.GEimage.write">(fabio.GEimage.GEimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.OXDimage.OXDimage.write">(fabio.OXDimage.OXDimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.binaryimage.binaryimage.write">(fabio.binaryimage.binaryimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.brukerimage.brukerimage.write">(fabio.brukerimage.brukerimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.cbfimage.cbfimage.write">(fabio.cbfimage.cbfimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.edfimage.edfimage.write">(fabio.edfimage.edfimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fabioimage.fabioimage.write">(fabio.fabioimage.fabioimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.fit2dmaskimage.fit2dmaskimage.write">(fabio.fit2dmaskimage.fit2dmaskimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.mar345image.mar345image.write">(fabio.mar345image.mar345image method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.pnmimage.pnmimage.write">(fabio.pnmimage.pnmimage method)</a>
+  </dt>
+
+        
+  <dt><a href="api/modules.html#fabio.tifimage.tifimage.write">(fabio.tifimage.tifimage method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.TiffIO.TiffIO.writeImage">writeImage() (fabio.TiffIO.TiffIO method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="X">X</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="api/modules.html#fabio.xsdimage.xsdimage">xsdimage (class in fabio.xsdimage)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+
+   
+
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="#" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/getting_started.html b/doc/html/getting_started.html
new file mode 100644
index 0000000..e229d50
--- /dev/null
+++ b/doc/html/getting_started.html
@@ -0,0 +1,522 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Getting Started — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="index.html" />
+    <link rel="next" title="Installation" href="INSTALL.html" />
+    <link rel="prev" title="Welcome to FabIO’s documentation!" href="index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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="right" >
+          <a href="INSTALL.html" title="Installation"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="Welcome to FabIO’s documentation!"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="getting-started">
+<h1>Getting Started<a class="headerlink" href="#getting-started" title="Permalink to this headline">¶</a></h1>
+<p>FabIO is a Python module for reading and handling data from two-dimensional X-ray detectors.</p>
+<p>FabIO is a Python module written for easy and transparent reading
+of raw two-dimensional data from various X-ray detectors. The
+module provides a function for reading any image and returning a
+fabioimage object which contains both metadata (header information)
+and the raw data. All fabioimage object offer additional methods to
+extract information about the image and to open other detector
+images from the same data series.</p>
+<div class="section" id="introduction">
+<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
+<p>One obstacle when writing software to analyse data collected from a
+two-dimensional detector is to read the raw data into the program,
+not least because the data can be stored in many different formats
+depending on the instrument used. To overcome this problem we
+decided to develop a general module, FabIO (FABle I/O), to handle
+reading and writing of two-dimensional data. The code-base was
+initiated by merging parts of our fabian imageviewer and
+ImageD11 peak-search programs and has been developed
+since 2007 as part of the TotalCryst program suite for
+analysis of 3DXRD microscopy data. During integration into
+a range of scientific programs like the FABLE graphical interface,
+EDNA and the fast azimuthal integration library,
+pyFAI; FabIO has gained several features like handling
+multi-frame image formats as well as writing many of the file
+formats.</p>
+</div>
+<div class="section" id="fabio-python-module">
+<h2>FabIO Python module<a class="headerlink" href="#fabio-python-module" title="Permalink to this headline">¶</a></h2>
+<p>Python is a scripting language that is very popular among
+scientists and which also allows well structured applications and
+libraries to be developed.</p>
+<div class="section" id="philosophy">
+<h3>Philosophy<a class="headerlink" href="#philosophy" title="Permalink to this headline">¶</a></h3>
+<p>The intention behind this development was to create a Python module
+which would enable easy reading of 2D data images, from any
+detector without having to worry about the file format. Therefore
+FabIO just needs a file name to open a file and it determines the
+file format automatically and deals with gzip and bzip2
+compression transparently. Opening a file returns an object
+which stores the image in memory as a 2D NumPy array
+and the metadata, called header, in a Python dictionary.
+Beside the data and header attributes, some methods are
+provided for reading the previous or next image in a series of
+images as well as jumping to a specific file number. For the user,
+these auxiliary methods are intended to be independent of the image
+format (as far as is reasonably possible).</p>
+<p>FabIO is written in an object-oriented style (with classes) but
+aims at being used in a scripting environment: special care has
+been taken to ensure the library remains easy to use. Therefore no
+knowledge of object-oriented programming is required to get full
+benefits of the library. As the development is done in a
+collaborative and decentralized way; a comprehensive test suite has
+been added to reduce the number of regressions when new features
+are added or old problems are repaired. The software is very
+modular and allows new classes to be added for handling other data
+formats easily. FabIO and its source-code are freely available to
+everyone on-line, licensed under the GNU General Public
+License version 3 (GPLv3). FabIO is also available directly from
+popular Linux distributions like Debian and Ubuntu.</p>
+</div>
+<div class="section" id="implementation">
+<h3>Implementation<a class="headerlink" href="#implementation" title="Permalink to this headline">¶</a></h3>
+<p>The main language used in the development of FabIO is Python;
+however, some image formats are compressed and require
+compression algorithms for reading and writing data. When such
+algorithms could not be implemented efficiently using Python or
+NumPy native modules were developed, in i.e. standard C code
+callable from Python (sometimes generated using Cython).
+This code has to be compiled for each computer architecture and
+offers excellent performance. FabIO is only dependent on the NumPy
+module and has extra features if two other optional Python modules
+are available. For reading XML files (that are used in EDNA) the
+Lxml module is required and the Python Image Library, PIL
+is needed for producing a PIL image for displaying the image
+in graphical user interfaces and several image-processing
+operations that are not re-implemented in FabIO. A variety of
+useful image processing is also available in the scipy.ndimage
+module and in scikits-image.</p>
+<p>Images can also be displayed in a convenient interactive manner
+using matplotlib and an IPython shell , which
+is mainly used for developing data analysis algorithms. Reading and
+writing procedure of the various TIFF formats is based on the
+TiffIO code from PyMCA.</p>
+<p>In the Python shell, the <cite>fabio</cite> module must be imported prior to
+reading an image in one of the supported file formats (see Table
+<cite>Supported formats</cite>, hereafter).
+The <cite>fabio.open</cite> function creates an instance of the
+Python class <cite>fabioimage</cite>, from the name of a file. This instance,
+named <cite>img</cite> hereafter, stores the image data in <cite>img.data</cite> as a 2D
+NumPy array. Often the image file contains more information than
+just the intensities of the pixels, e.g. information about how the
+image is stored and the instrument parameters at the time of the
+image acquisition, these metadata are usually stored in the file
+header. Header information, are available in <cite>img.header</cite> as a
+Python dictionary where keys are strings and values are usually
+strings or numeric values.</p>
+<p>Information in the header about the binary part of the image
+(compression, endianness, shape) are interpreted however, other
+metadata are exposed as they are recorded in the file. FabIO allows
+the user to modify and, where possible, to save this information
+(the table <cite>Supported formats</cite> summarizes writable formats).
+Automatic translation
+between file-formats, even if desirable, is sometimes impossible
+because not all format have the capability to be extended with
+additional metadata. Nevertheless FabIO is capable of converting
+one image data-format into another by taking care of the numerical
+specifics: for example float arrays are converted to integer arrays
+if the output format only accepts integers.</p>
+</div>
+<div class="section" id="fabio-methods">
+<h3>FabIO methods<a class="headerlink" href="#fabio-methods" title="Permalink to this headline">¶</a></h3>
+<p>One strength of the implementation in an object oriented language
+is the possibility to combine functions (or methods) together with
+data appropriate for specific formats. In addition to the header
+information and image data, every <cite>fabioimage</cite> instance (returned
+by <cite>fabio.open</cite>) has methods inherited from <cite>fabioimage</cite> which
+provide information about the image minimum, maximum and mean
+values. In addition there are methods which return the file number,
+name etc. Some of the most important methods are specific for
+certain formats because the methods are related to how frames in a
+sequence are handled; these methods are <cite>img.next()</cite>,
+<cite>img.previous()</cite>, and <cite>img.getframe(n)</cite>. The behaviour of such
+methods varies depending on the image format: for single-frame
+format (like mar345), <cite>img.next()</cite> will return the image in next
+file; for multi-frame format (like GE), <cite>img.next()</cite> will return
+the next frame within the same file. For formats which are possibly
+multi-framed like EDF, the behaviour depends on the actual number
+of frames per file (accessible via the <cite>img.nframes</cite> attribute).</p>
+</div>
+</div>
+<div class="section" id="usage">
+<h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="examples">
+<h3>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h3>
+<p>In this section we have collected some basic examples of how FabIO
+can be employed.</p>
+<p>Opening an image:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">fabio</span>
+<span class="n">im100</span> <span class="o">=</span> <span class="n">fabio</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s">'Quartz_0100.tif'</span><span class="p">)</span> <span class="c"># Open image file</span>
+<span class="k">print</span><span class="p">(</span><span class="n">im0</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="mi">1024</span><span class="p">,</span><span class="mi">1024</span><span class="p">])</span>            <span class="c"># Check a pixel value</span>
+<span class="n">im101</span> <span class="o">=</span> <span class="n">im100</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>                  <span class="c"># Open next image</span>
+<span class="n">im270</span> <span class="o">=</span> <span class="n">im1</span><span class="o">.</span><span class="n">getframe</span><span class="p">(</span><span class="mi">270</span><span class="p">)</span>             <span class="c"># Jump to file number 270: Quartz_0270.tif</span>
+</pre></div>
+</div>
+<p>Normalising the intensity to a value in the header:</p>
+<div class="highlight-python"><pre>img = fabio.open('exampleimage0001.edf')
+print(img.header)
+{'ByteOrder': 'LowByteFirst',
+ 'DATE (scan begin)': 'Mon Jun 28 21:22:16 2010',
+ 'ESRFCurrent': '198.099',
+...
+}
+# Normalise to beam current and save data
+srcur = float(img.header['ESRFCurrent'])
+img.data *= 200.0/srcur
+img.write('normed_0001.edf')</pre>
+</div>
+<p>Interactive viewing with matplotlib:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">pyplot</span>       <span class="c"># Load matplotlib</span>
+<span class="n">pyplot</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">img</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>             <span class="c"># Display as an image</span>
+<span class="n">pyplot</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>                       <span class="c"># Show GUI window</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="future-and-perspectives">
+<h2>Future and perspectives<a class="headerlink" href="#future-and-perspectives" title="Permalink to this headline">¶</a></h2>
+<p>The Hierarchical Data Format version 5 (<cite>hdf5</cite>) is a data format which
+is increasingly popular for storage of X-ray and neutron data. To
+name a few facilities the synchrotron Soleil and the neutron
+sources ISIS, SNS and SINQ already use HDF extensively through the
+NeXus format. For now, mainly processed or curated data are
+stored in this format but new detectors are rumoured to provide
+native output in HDF5. FabIO will rely on H5Py, which
+already provides a good HDF5 binding for Python, as an external
+dependency, to be able to read and write such HDF5 files.</p>
+<p>In the near future FabIO will be upgraded to work with Python3 (a
+new version of Python); this change of version will affect some
+internals FabIO as string and file handling have been altered. This
+change is already ongoing as many parts of native code in C have
+already been translated into Cython to smoothe the
+transition, since Cython generates code compatible with Python3.
+This also makes it easier to retain backwards compatibility with
+the earlier Python versions.</p>
+</div>
+<div class="section" id="conclusion">
+<h2>Conclusion<a class="headerlink" href="#conclusion" title="Permalink to this headline">¶</a></h2>
+<p>FabIO gives an easy way to read and write 2D images when using the
+Python computer language. It was originally developed for X-ray
+diffraction data but now gives an easy way for scientists to access
+and manipulate their data from a wide range of 2D X-ray detectors.
+We welcome contributions to further improve the code and hope to
+add more file formats in the future as well as port the existing
+code base to the emerging Python3.</p>
+<div class="section" id="acknoledgements">
+<h3>Acknoledgements<a class="headerlink" href="#acknoledgements" title="Permalink to this headline">¶</a></h3>
+<p>We acknowledge Andy Götz and Kenneth Evans for extensive
+testing when including the FabIO reader in the Fable image viewer
+(Götz et al., 2007).We also thank V. Armando Solé for assistance with
+his TiffIO reader and Carsten Gundlach for deployment of FabIO at
+the beamlines i711 and i811, MAX IV, and providing bug reports. We
+finally acknowledge our colleagues who have reported bugs and
+helped to improve FabIO. Financial support was granted by the EU
+6th Framework NEST/ADVENTURE project TotalCryst (Poulsen et
+al., 2006).</p>
+</div>
+<div class="section" id="citation">
+<h3>Citation<a class="headerlink" href="#citation" title="Permalink to this headline">¶</a></h3>
+<p>Knudsen, E. B., Sørensen, H. O., Wright, J. P., Goret, G. & Kieffer, J. (2013). J. Appl. Cryst. 46, 537-539.</p>
+<p><a class="reference external" href="http://dx.doi.org/10.1107/S0021889813000150">http://dx.doi.org/10.1107/S0021889813000150</a></p>
+</div>
+<div class="section" id="list-of-file-formats-that-fabio-can-read-and-write">
+<h3>List of file formats that FabIO can read and write<a class="headerlink" href="#list-of-file-formats-that-fabio-can-read-and-write" title="Permalink to this headline">¶</a></h3>
+<p>In alphabetical order. The listed filename extensions are typical examples.
+FabIO tries to deduce the actual format from the file itself and only
+uses extensions as a fallback if that fails.</p>
+<table border="1" class="docutils">
+<caption>Supported formats</caption>
+<colgroup>
+<col width="26%" />
+<col width="26%" />
+<col width="17%" />
+<col width="9%" />
+<col width="13%" />
+<col width="9%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Python Module</th>
+<th class="head">Detector / Format</th>
+<th class="head">Extension</th>
+<th class="head">Read</th>
+<th class="head">Multi-image</th>
+<th class="head">Write</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>ADSC</td>
+<td>ADSC Quantum</td>
+<td>.img</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr class="row-odd"><td>Bruker</td>
+<td>Bruker formats</td>
+<td>.sfrm</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr class="row-even"><td>DM3</td>
+<td>Gatan Digital Micrograph</td>
+<td>.dm3</td>
+<td>Yes</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>EDF</td>
+<td>ESRF data format</td>
+<td>.edf</td>
+<td>Yes</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr class="row-even"><td>EDNA-XML</td>
+<td>Used by EDNA</td>
+<td>.xml</td>
+<td>Yes</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>CBF</td>
+<td>CIF binary files</td>
+<td>.cbf</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr class="row-even"><td>kcd</td>
+<td>Nonius KappaCCD</td>
+<td>.kccd</td>
+<td>Yes</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>fit2d mask</td>
+<td>Used by Fit2D</td>
+<td>.msk</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr class="row-even"><td>fit2d spreadsheet</td>
+<td>Used by Fit2D</td>
+<td>.spr</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr class="row-odd"><td>GE</td>
+<td>General Electric</td>
+<td>No</td>
+<td>Yes</td>
+<td>Yes</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>HiPiC</td>
+<td>Hamamatsu CCD</td>
+<td>.tif</td>
+<td>Yes</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>marccd</td>
+<td>MarCCD/Mar165</td>
+<td>.mccd</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr class="row-even"><td>mar345</td>
+<td>Mar345 image plate</td>
+<td>.mar3450</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr class="row-odd"><td>OXD</td>
+<td>Oxford Diffraction</td>
+<td>.img</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr class="row-even"><td>pilatus</td>
+<td>Dectris Pilatus Tiff</td>
+<td>.tif</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+<tr class="row-odd"><td>PNM</td>
+<td>Portable aNy Map</td>
+<td>.pnm</td>
+<td>Yes</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>TIFF</td>
+<td>Tagged Image File Format</td>
+<td>.tif</td>
+<td>Yes</td>
+<td>No</td>
+<td>Yes</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="adding-new-file-formats">
+<h3>Adding new file formats<a class="headerlink" href="#adding-new-file-formats" title="Permalink to this headline">¶</a></h3>
+<dl class="docutils">
+<dt>We hope it will be relatively easy to add new file formats to fabio in the future. The basic idea is the following:</dt>
+<dd><ol class="first last arabic simple">
+<li>inherit from fabioimage overriding the methods _readheader, read and optionally write. Name your new module XXXimage where XXX means something (eg tifimage).</li>
+<li>readheader fills in a dictionary of “name”:”value” pairs in self.header. No one expects to find anything much in there.</li>
+<li>read fills in self.data with a numpy array holding the image. Some redundant info which also appears are self.dim1 and self.dim2: the image dimensions, self.bpp is the bytes per pixel and self.bytecode is the numpy.dtype.type of the data.</li>
+<li>The member variables “_need_a_seek_to_read” and “_need_a_real_file” are there in case you have trouble with the transparent handling of bz2 and gz files.</li>
+<li>Register the file type (extension naming) in fabioutils.py:FILETYPES</li>
+<li>Add your new module as an import into fabio.openimage</li>
+<li>Fill out the magic numbers for your format in fabio.openimage if you know them (the characteristic first few bytes in the file)</li>
+<li>Upload a testimage to the file release system and create a unittest testcase which opens an example of your new format, confirming the image has actually been read in successfully (eg check the mean, max, min and esd are all correct, perhaps orientation too)</li>
+<li>Run pylint on your code and then please go clean it up. Have a go at mine while you are at it.</li>
+<li>Bask in the warm glow of appreciation when someone unexpectedly learns they don’t need to convert their data into another format</li>
+</ol>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Getting Started</a><ul>
+<li><a class="reference internal" href="#introduction">Introduction</a></li>
+<li><a class="reference internal" href="#fabio-python-module">FabIO Python module</a><ul>
+<li><a class="reference internal" href="#philosophy">Philosophy</a></li>
+<li><a class="reference internal" href="#implementation">Implementation</a></li>
+<li><a class="reference internal" href="#fabio-methods">FabIO methods</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#usage">Usage</a><ul>
+<li><a class="reference internal" href="#examples">Examples</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#future-and-perspectives">Future and perspectives</a></li>
+<li><a class="reference internal" href="#conclusion">Conclusion</a><ul>
+<li><a class="reference internal" href="#acknoledgements">Acknoledgements</a></li>
+<li><a class="reference internal" href="#citation">Citation</a></li>
+<li><a class="reference internal" href="#list-of-file-formats-that-fabio-can-read-and-write">List of file formats that FabIO can read and write</a></li>
+<li><a class="reference internal" href="#adding-new-file-formats">Adding new file formats</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="index.html"
+                        title="previous chapter">Welcome to FabIO’s documentation!</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="INSTALL.html"
+                        title="next chapter">Installation</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/getting_started.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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="right" >
+          <a href="INSTALL.html" title="Installation"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="Welcome to FabIO’s documentation!"
+             >previous</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/index.html b/doc/html/index.html
new file mode 100644
index 0000000..07857ab
--- /dev/null
+++ b/doc/html/index.html
@@ -0,0 +1,186 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Welcome to FabIO’s documentation! — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="#" />
+    <link rel="next" title="Getting Started" href="getting_started.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <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="right" >
+          <a href="getting_started.html" title="Getting Started"
+             accesskey="N">next</a> |</li>
+        <li><a href="#">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="welcome-to-fabio-s-documentation">
+<h1>Welcome to FabIO’s documentation!<a class="headerlink" href="#welcome-to-fabio-s-documentation" title="Permalink to this headline">¶</a></h1>
+<p>Contents:</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting Started</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="getting_started.html#introduction">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" href="getting_started.html#fabio-python-module">FabIO Python module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="getting_started.html#usage">Usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="getting_started.html#future-and-perspectives">Future and perspectives</a></li>
+<li class="toctree-l2"><a class="reference internal" href="getting_started.html#conclusion">Conclusion</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="INSTALL.html">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="INSTALL.html#dependencies">Dependencies</a></li>
+<li class="toctree-l2"><a class="reference internal" href="INSTALL.html#installation-from-sources">Installation from sources</a></li>
+<li class="toctree-l2"><a class="reference internal" href="INSTALL.html#development-versions">Development versions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="INSTALL.html#test-suite">Test suite</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="Changelog.html">Changelog</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="Changelog.html#from-fabio-0-1-2-to-fabio-0-1-3">From FabIO-0.1.2 to FabIO-0.1.3:</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Changelog.html#from-fabio-0-1-1-to-fabio-0-1-2">From FabIO-0.1.1 to FabIO-0.1.2:</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Changelog.html#from-fabio-0-1-0-to-fabio-0-1-1">From FabIO-0.1.0 to FabIO-0.1.1:</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Changelog.html#from-fabio-0-0-8-to-fabio-0-1-0">From FabIO-0.0.8 to FabIO-0.1.0:</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Changelog.html#from-fabio-0-0-7-to-fabio-0-0-8">From FabIO-0.0.7 to FabIO-0.0.8:</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Changelog.html#from-fabio-0-0-6-to-fabio-0-0-7">From FabIO-0.0.6 to FabIO-0.0.7:</a></li>
+<li class="toctree-l2"><a class="reference internal" href="Changelog.html#from-fabio-0-0-4-to-fabio-0-0-6">From FabIO-0.0.4 to FabIO-0.0.6:</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="api/modules.html">FabIO Package</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#id1"><tt class="docutils literal"><span class="pre">fabio</span></tt> Package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.fabioimage"><tt class="docutils literal"><span class="pre">fabio.fabioimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.fabioutils"><tt class="docutils literal"><span class="pre">fabio.fabioutils</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.file_series"><tt class="docutils literal"><span class="pre">fabio.file_series</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.openimage"><tt class="docutils literal"><span class="pre">fabio.openimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.adscimage"><tt class="docutils literal"><span class="pre">fabio.adscimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.binaryimage"><tt class="docutils literal"><span class="pre">fabio.binaryimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.bruker100image"><tt class="docutils literal"><span class="pre">fabio.bruker100image</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.brukerimage"><tt class="docutils literal"><span class="pre">fabio.brukerimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.cbfimage"><tt class="docutils literal"><span class="pre">fabio.cbfimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.dm3image"><tt class="docutils literal"><span class="pre">fabio.dm3image</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.edfimage"><tt class="docutils literal"><span class="pre">fabio.edfimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.fit2dmaskimage"><tt class="docutils literal"><span class="pre">fabio.fit2dmaskimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.fit2dspreadsheetimage"><tt class="docutils literal"><span class="pre">fabio.fit2dspreadsheetimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.GEimage"><tt class="docutils literal"><span class="pre">fabio.GEimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.HiPiCimage"><tt class="docutils literal"><span class="pre">fabio.HiPiCimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.kcdimage"><tt class="docutils literal"><span class="pre">fabio.kcdimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.mar345image"><tt class="docutils literal"><span class="pre">fabio.mar345image</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.marccdimage"><tt class="docutils literal"><span class="pre">fabio.marccdimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.OXDimage"><tt class="docutils literal"><span class="pre">fabio.OXDimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.pilatusimage"><tt class="docutils literal"><span class="pre">fabio.pilatusimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.pnmimage"><tt class="docutils literal"><span class="pre">fabio.pnmimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.tifimage"><tt class="docutils literal"><span class="pre">fabio.tifimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.xsdimage"><tt class="docutils literal"><span class="pre">fabio.xsdimage</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.compression"><tt class="docutils literal"><span class="pre">fabio.compression</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.converters"><tt class="docutils literal"><span class="pre">fabio.converters</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.datIO"><tt class="docutils literal"><span class="pre">fabio.datIO</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.TiffIO"><tt class="docutils literal"><span class="pre">fabio.TiffIO</span></tt> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="api/modules.html#module-fabio.readbytestream"><tt class="docutils literal"><span class="pre">fabio.readbytestream</span></tt> Module</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="indices-and-tables">
+<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>
+<ul class="simple">
+<li><a class="reference internal" href="genindex.html"><em>Index</em></a></li>
+<li><a class="reference internal" href="py-modindex.html"><em>Module Index</em></a></li>
+<li><a class="reference internal" href="search.html"><em>Search Page</em></a></li>
+</ul>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="#">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Welcome to FabIO’s documentation!</a><ul>
+</ul>
+</li>
+<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
+</ul>
+
+  <h4>Next topic</h4>
+  <p class="topless"><a href="getting_started.html"
+                        title="next chapter">Getting Started</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/index.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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="right" >
+          <a href="getting_started.html" title="Getting Started"
+             >next</a> |</li>
+        <li><a href="#">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/objects.inv b/doc/html/objects.inv
new file mode 100644
index 0000000..a760306
Binary files /dev/null and b/doc/html/objects.inv differ
diff --git a/doc/html/py-modindex.html b/doc/html/py-modindex.html
new file mode 100644
index 0000000..aafc181
--- /dev/null
+++ b/doc/html/py-modindex.html
@@ -0,0 +1,256 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Python Module Index — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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="top" title="FabIO 0.1.3 documentation" href="index.html" />
+ 
+
+
+  </head>
+  <body>
+    <div class="related">
+      <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="#" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+
+   <h1>Python Module Index</h1>
+
+   <div class="modindex-jumpbox">
+   <a href="#cap-f"><strong>f</strong></a>
+   </div>
+
+   <table class="indextable modindextable" cellspacing="0" cellpadding="2">
+     <tr class="pcap"><td></td><td> </td><td></td></tr>
+     <tr class="cap" id="cap-f"><td></td><td>
+       <strong>f</strong></td><td></td></tr>
+     <tr>
+       <td><img src="_static/minus.png" class="toggler"
+              id="toggle-1" style="display: none" alt="-" /></td>
+       <td>
+       <tt class="xref">fabio</tt></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.__init__"><tt class="xref">fabio.__init__</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.adscimage"><tt class="xref">fabio.adscimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.binaryimage"><tt class="xref">fabio.binaryimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.bruker100image"><tt class="xref">fabio.bruker100image</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.brukerimage"><tt class="xref">fabio.brukerimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.cbfimage"><tt class="xref">fabio.cbfimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.compression"><tt class="xref">fabio.compression</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.converters"><tt class="xref">fabio.converters</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.datIO"><tt class="xref">fabio.datIO</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.dm3image"><tt class="xref">fabio.dm3image</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.edfimage"><tt class="xref">fabio.edfimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.fabioimage"><tt class="xref">fabio.fabioimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.fabioutils"><tt class="xref">fabio.fabioutils</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.file_series"><tt class="xref">fabio.file_series</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.fit2dmaskimage"><tt class="xref">fabio.fit2dmaskimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.fit2dspreadsheetimage"><tt class="xref">fabio.fit2dspreadsheetimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.GEimage"><tt class="xref">fabio.GEimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.HiPiCimage"><tt class="xref">fabio.HiPiCimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.kcdimage"><tt class="xref">fabio.kcdimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.mar345image"><tt class="xref">fabio.mar345image</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.marccdimage"><tt class="xref">fabio.marccdimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.openimage"><tt class="xref">fabio.openimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.OXDimage"><tt class="xref">fabio.OXDimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.pilatusimage"><tt class="xref">fabio.pilatusimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.pnmimage"><tt class="xref">fabio.pnmimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.readbytestream"><tt class="xref">fabio.readbytestream</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.TiffIO"><tt class="xref">fabio.TiffIO</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.tifimage"><tt class="xref">fabio.tifimage</tt></a></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>   
+       <a href="api/modules.html#module-fabio.xsdimage"><tt class="xref">fabio.xsdimage</tt></a></td><td>
+       <em></em></td></tr>
+   </table>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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="#" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/search.html b/doc/html/search.html
new file mode 100644
index 0000000..aa2844b
--- /dev/null
+++ b/doc/html/search.html
@@ -0,0 +1,105 @@
+
+
+<!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">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Search — FabIO 0.1.3 documentation</title>
+    
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '',
+        VERSION:     '0.1.3',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </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>
+    <script type="text/javascript" src="_static/searchtools.js"></script>
+    <link rel="top" title="FabIO 0.1.3 documentation" href="index.html" />
+  <script type="text/javascript">
+    jQuery(function() { Search.loadIndex("searchindex.js"); });
+  </script>
+   
+
+  </head>
+  <body>
+    <div class="related">
+      <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><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1 id="search-documentation">Search</h1>
+  <div id="fallback" class="admonition warning">
+  <script type="text/javascript">$('#fallback').hide();</script>
+  <p>
+    Please activate JavaScript to enable the search
+    functionality.
+  </p>
+  </div>
+  <p>
+    From here you can search these documents. Enter your search
+    words into the box below and click "search". Note that the search
+    function will automatically search for all of the words. Pages
+    containing fewer words won't appear in the result list.
+  </p>
+  <form action="" method="get">
+    <input type="text" name="q" value="" />
+    <input type="submit" value="search" />
+    <span id="search-progress" style="padding-left: 10px"></span>
+  </form>
+  
+  <div id="search-results">
+  
+  </div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <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><a href="index.html">FabIO 0.1.3 documentation</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js
new file mode 100644
index 0000000..d8bacc7
--- /dev/null
+++ b/doc/html/searchindex.js
@@ -0,0 +1 @@
+Search.setIndex({objects:{"fabio.xsdimage.xsdimage":{read:[4,1,1,""]},"fabio.fit2dspreadsheetimage":{fit2dspreadsheetimage:[4,5,1,""]},"fabio.mar345image":{mar345image:[4,5,1,""]},"fabio.edfimage":{Frame:[4,5,1,""],edfimage:[4,5,1,""]},"fabio.OXDimage.OXDimage":{write:[4,1,1,""],checkData:[4,3,1,""],getCompressionRatio:[4,1,1,""],read:[4,1,1,""]},"fabio.binaryimage":{binaryimage:[4,5,1,""]},"fabio.fabioutils.BZ2File":{getSize:[4,1,1,""],setSize:[4,1,1,""],size:[4,4,1,""]},"fabio.fabiouti [...]
\ No newline at end of file
diff --git a/doc/make.bat b/doc/make.bat
new file mode 100644
index 0000000..4b7fdee
--- /dev/null
+++ b/doc/make.bat
@@ -0,0 +1,170 @@
+ at ECHO OFF
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+	set SPHINXBUILD=sphinx-build
+)
+set BUILDDIR=build
+set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
+if NOT "%PAPER%" == "" (
+	set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
+)
+
+if "%1" == "" goto help
+
+if "%1" == "help" (
+	:help
+	echo.Please use `make ^<target^>` where ^<target^> is one of
+	echo.  html       to make standalone HTML files
+	echo.  dirhtml    to make HTML files named index.html in directories
+	echo.  singlehtml to make a single large HTML file
+	echo.  pickle     to make pickle files
+	echo.  json       to make JSON files
+	echo.  htmlhelp   to make HTML files and a HTML help project
+	echo.  qthelp     to make HTML files and a qthelp project
+	echo.  devhelp    to make HTML files and a Devhelp project
+	echo.  epub       to make an epub
+	echo.  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter
+	echo.  text       to make text files
+	echo.  man        to make manual pages
+	echo.  changes    to make an overview over all changed/added/deprecated items
+	echo.  linkcheck  to check all external links for integrity
+	echo.  doctest    to run all doctests embedded in the documentation if enabled
+	goto end
+)
+
+if "%1" == "clean" (
+	for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
+	del /q /s %BUILDDIR%\*
+	goto end
+)
+
+if "%1" == "html" (
+	%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The HTML pages are in %BUILDDIR%/html.
+	goto end
+)
+
+if "%1" == "dirhtml" (
+	%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
+	goto end
+)
+
+if "%1" == "singlehtml" (
+	%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
+	goto end
+)
+
+if "%1" == "pickle" (
+	%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can process the pickle files.
+	goto end
+)
+
+if "%1" == "json" (
+	%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can process the JSON files.
+	goto end
+)
+
+if "%1" == "htmlhelp" (
+	%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can run HTML Help Workshop with the ^
+.hhp project file in %BUILDDIR%/htmlhelp.
+	goto end
+)
+
+if "%1" == "qthelp" (
+	%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can run "qcollectiongenerator" with the ^
+.qhcp project file in %BUILDDIR%/qthelp, like this:
+	echo.^> qcollectiongenerator %BUILDDIR%\qthelp\FabIO.qhcp
+	echo.To view the help file:
+	echo.^> assistant -collectionFile %BUILDDIR%\qthelp\FabIO.ghc
+	goto end
+)
+
+if "%1" == "devhelp" (
+	%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished.
+	goto end
+)
+
+if "%1" == "epub" (
+	%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The epub file is in %BUILDDIR%/epub.
+	goto end
+)
+
+if "%1" == "latex" (
+	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
+	goto end
+)
+
+if "%1" == "text" (
+	%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The text files are in %BUILDDIR%/text.
+	goto end
+)
+
+if "%1" == "man" (
+	%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The manual pages are in %BUILDDIR%/man.
+	goto end
+)
+
+if "%1" == "changes" (
+	%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.The overview file is in %BUILDDIR%/changes.
+	goto end
+)
+
+if "%1" == "linkcheck" (
+	%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Link check complete; look for any errors in the above output ^
+or in %BUILDDIR%/linkcheck/output.txt.
+	goto end
+)
+
+if "%1" == "doctest" (
+	%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Testing of doctests in the sources finished, look at the ^
+results in %BUILDDIR%/doctest/output.txt.
+	goto end
+)
+
+:end
diff --git a/doc/pdf/FabIO.pdf b/doc/pdf/FabIO.pdf
new file mode 100644
index 0000000..3f7f22d
Binary files /dev/null and b/doc/pdf/FabIO.pdf differ
diff --git a/doc/source/Changelog.rst b/doc/source/Changelog.rst
new file mode 100644
index 0000000..cecb1b6
--- /dev/null
+++ b/doc/source/Changelog.rst
@@ -0,0 +1,53 @@
+Changelog
+=========
+
+From FabIO-0.1.2 to FabIO-0.1.3:
+................................
+- Fixed a memory-leak in mar345 module
+- Improved support for bruker format (writer & reader)
+- Fixed a bug in EDF headers (very long headers)
+- Provide template for new file-formats
+- Fix a bug related to PIL in new MacOSX
+- Allow binary-images to be read from end
+
+From FabIO-0.1.1 to FabIO-0.1.2:
+................................
+- Fixed a bug in fabioimage.write (impacted all writers)
+- added Sphinx documentation "python setup.py build_doc"
+- PyLint compliance of some classes (rename, ...)
+- tests from installer with "python setup.py build test"
+
+From FabIO-0.1.0 to FabIO-0.1.1:
+................................
+- Merged Mar345 image reader and writer with cython bindings (towards python3 compliance)
+- Improve CBF image writing under windows
+- Bz2, Gzip and Flat files are managed through a common way ... classes are more (python v2.5) or less (python v2.7) overloaded
+- Fast EDF reading if one assumes offsets are the same between files, same for ROIs
+
+From FabIO-0.0.8 to FabIO-0.1.0:
+................................
+- OXD reader improved and writer implemented
+- Mar345 reader improved and writer implemented
+- CBF writer implemented
+- Clean-up of the code & bug fixes
+- Move towards python3
+- Make PIL optional dependency
+
+Python3 is not yet tested but some blocking points have been identified and some fixed.
+
+From FabIO-0.0.7 to FabIO-0.0.8:
+................................
+- Support for Tiff using TiffIO module from V.A.Solé
+- Clean-up of the code & bug fixes
+
+From FabIO-0.0.6 to FabIO-0.0.7:
+................................
+- Support for multi-frames EDF files
+- Support for XML images/2D arrays used in EDNA
+- new method: fabio.open(filename) that is an alias for fabio.openimage.openimage(filename)
+
+From FabIO-0.0.4 to FabIO-0.0.6:
+................................
+- Support for CBF files from Pilatus detectors
+- Support for KCD files from Nonius Kappa CCD images
+- write EDF with their native data type (instead of uint16 by default)
diff --git a/doc/source/INSTALL.rst b/doc/source/INSTALL.rst
new file mode 100644
index 0000000..2fc3754
--- /dev/null
+++ b/doc/source/INSTALL.rst
@@ -0,0 +1,126 @@
+Installation
+============
+
+FabIO can, as any Python module, be installed from its sources,
+available on sourceforge but we advice to use binary
+packages provided for the most common platforms on sourceforge:
+Windows, MacOSX and Linux. Moreover FabIO is part of the common
+Linux distributions Ubuntu (since 11.10) and Debian7 where the
+package is named python-fabio and can be installed via:
+::
+
+    # apt-get install python-fabio
+
+If you are using MS Windows or MacOSX; binary version have been packaged.
+Windows installers are executable, just download the one corresponding to you python version and run it.
+MacOSX builds are zipped: unzip them at the right place.
+
+
+Dependencies
+------------
+
+* Python 2.5 or later (python 3.x is not yet ready)
+* numpy - http://www.numpy.org
+
+For full functionality of Fabio the following modules need to be installed:
+
+
+* PIL (python imaging library) - http://www.pythonware.com
+* lxml (library for reading XSDimages)
+
+
+Installation from sources
+-------------------------
+
+FabIO can be downloaded from the fable download page on sourceforge.net.
+Presently the source code has been distributed as a zip package and a compressed tarball.
+Download either one and unpack it.
+
+::
+
+    http://sourceforge.net/projects/fable/files/fabio/
+
+e.g.
+::
+
+    tar xvzf fabio-0.1.3.tar.gz
+
+or
+
+::
+
+    unzip fabio-0.1.3.zip
+
+all files are unpacked into the directory fabio-0.1.3. To install these do
+
+::
+
+     cd fabio-0.1.3
+
+and install fabio with
+
+::
+
+    python setup.py build
+    sudo python setup.py install
+
+most likely you will need to gain root privileges (with sudo in front of the command) to install the built package.
+
+Development versions
+--------------------
+The newest development version can be obtained by checking it out from the subversion (SVN) repository:
+
+::
+
+    svn checkout https://svn.sourceforge.net/svnroot/fable/fabio/trunk fabio
+    cd fabio
+    python setup.py build
+    sudo python setup.py install
+
+For Ubuntu/Debian users, you will need:
+
+* python-imaging
+* python-imaging-tk
+* python-numpy
+* python-dev
+
+::
+
+    sudo apt-get install python-imaging python-imaging-tk python-numpy
+
+We provide also a debian-package builder based on stdeb:
+
+::
+
+	sudo apt-get install python-stdeb
+	./build-deb.sh
+
+which builds a debian package and installs it in a single command. Handy for testing.
+
+
+Test suite
+----------
+
+FabIO has a comprehensive test-suite to ensure non regression (about 100 tests).
+When you run the test for the first time, many test images will be download and converted into various compressed format like gzip and bzip2 (this takes a lot of time).
+Be sure you have an internet connection (and your environment variable http_proxy is correctly set-up, if you are behind a proxy).
+
+::
+
+    python setup.py build
+    cd test
+    python test_all.py
+    ........................................WARNING:compression:Encounter the python-gzip bug with trailing garbage, trying subprocess gzip
+    ..............................WARNING:edfimage:Non complete datablock: got 6928, expected 8388608
+    WARNING:edfimage:Non complete datablock: got 6928, expected 8388608
+    WARNING:edfimage:Non complete datablock: got 6928, expected 8388608
+    .....................WARNING:edfimage:Unknown compression scheme TY1
+    .....WARNING:edfimage:Unknown compression scheme FALSE
+    ...WARNING: Non standard TIFF. Rows per strip TAG missing
+    WARNING: Non standard TIFF. Strip byte counts TAG missing
+    ....
+    ----------------------------------------------------------------------
+    Ran 103 tests in 21.696s
+    OK
+
+Many tests are there to deal with malformed files, don't worry if the programs comaplins in warnings about "bad files", it is done on purpose.
diff --git a/doc/source/_static/placeholder b/doc/source/_static/placeholder
new file mode 100644
index 0000000..7784424
--- /dev/null
+++ b/doc/source/_static/placeholder
@@ -0,0 +1 @@
+#This empty file is there to keep the directory in Git
\ No newline at end of file
diff --git a/doc/source/api/modules.rst b/doc/source/api/modules.rst
new file mode 100644
index 0000000..4bcc653
--- /dev/null
+++ b/doc/source/api/modules.rst
@@ -0,0 +1,242 @@
+FabIO Package
+=============
+
+.. toctree::
+   :maxdepth: 4
+	
+
+:mod:`fabio` Package
+--------------------
+
+.. automodule:: fabio.__init__
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.fabioimage` Module
+------------------------------
+
+.. automodule:: fabio.fabioimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.fabioutils` Module
+------------------------------
+
+.. automodule:: fabio.fabioutils
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.file_series` Module
+-------------------------------
+
+.. automodule:: fabio.file_series
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.openimage` Module
+-----------------------------
+
+.. automodule:: fabio.openimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.adscimage` Module
+-----------------------------
+
+.. automodule:: fabio.adscimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.binaryimage` Module
+-------------------------------
+
+.. automodule:: fabio.binaryimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.bruker100image` Module
+----------------------------------
+
+.. automodule:: fabio.bruker100image
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.brukerimage` Module
+-------------------------------
+
+.. automodule:: fabio.brukerimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.cbfimage` Module
+----------------------------
+
+.. automodule:: fabio.cbfimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.dm3image` Module
+----------------------------
+
+.. automodule:: fabio.dm3image
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+:mod:`fabio.edfimage` Module
+----------------------------
+
+.. automodule:: fabio.edfimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+    
+:mod:`fabio.fit2dmaskimage` Module
+----------------------------------
+
+.. automodule:: fabio.fit2dmaskimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.fit2dspreadsheetimage` Module
+-----------------------------------------
+
+.. automodule:: fabio.fit2dspreadsheetimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.GEimage` Module
+---------------------------
+
+.. automodule:: fabio.GEimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.HiPiCimage` Module
+------------------------------
+
+.. automodule:: fabio.HiPiCimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.kcdimage` Module
+----------------------------
+
+.. automodule:: fabio.kcdimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.mar345image` Module
+-------------------------------
+
+.. automodule:: fabio.mar345image
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.marccdimage` Module
+-------------------------------
+
+.. automodule:: fabio.marccdimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.OXDimage` Module
+----------------------------
+
+.. automodule:: fabio.OXDimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.pilatusimage` Module
+--------------------------------
+
+.. automodule:: fabio.pilatusimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+:mod:`fabio.pnmimage` Module
+----------------------------
+
+.. automodule:: fabio.pnmimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+:mod:`fabio.tifimage` Module
+----------------------------
+
+.. automodule:: fabio.tifimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.xsdimage` Module
+----------------------------
+
+.. automodule:: fabio.xsdimage
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.compression` Module
+-------------------------------
+
+.. automodule:: fabio.compression
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.converters` Module
+------------------------------
+
+.. automodule:: fabio.converters
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.datIO` Module
+-------------------------
+
+.. automodule:: fabio.datIO
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.TiffIO` Module
+--------------------------
+
+.. automodule:: fabio.TiffIO
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+:mod:`fabio.readbytestream` Module
+----------------------------------
+
+.. automodule:: fabio.readbytestream
+    :members:
+    :undoc-members:
+    :show-inheritance:
+   
\ No newline at end of file
diff --git a/doc/source/conf.py b/doc/source/conf.py
new file mode 100644
index 0000000..65b2187
--- /dev/null
+++ b/doc/source/conf.py
@@ -0,0 +1,238 @@
+# -*- coding: utf-8 -*-
+#
+# FabIO documentation build configuration file, created by
+# sphinx-quickstart on Fri Mar 15 09:03:50 2013.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration -----------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.viewcode', "sphinx.ext.pngmath"]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'FabIO'
+copyright = u'2006-2013, Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '0.1.3'
+# The full version, including alpha/beta/rc tags.
+release = '0.1.3'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = []
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+html_theme = 'default'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'FabIOdoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+  ('index', 'FabIO.tex', u'FabIO Documentation',
+   u'H. Sorensen, E. Knudsen, J. Wright, G. Goret and J. Kieffer', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    ('index', 'fabio', u'FabIO Documentation',
+     [u'Henning Sorensen, Erik Knudsen, Jon Wright, Gael Goret and Jerome Kieffer'], 1)
+]
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+#texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
+
+# still use the epydoc markup for now
+import re
+
+re_field = re.compile('@(param|type|rtype|return)')
+
+
+def fix_docstring(app, what, name, obj, options, lines):
+    for i in xrange(len(lines)):
+        lines[i] = re_field.sub(r':\1', lines[i])
+
+
+def setup(app):
+    app.connect('autodoc-process-docstring', fix_docstring)
diff --git a/doc/source/getting_started.rst b/doc/source/getting_started.rst
new file mode 100644
index 0000000..6b2ae87
--- /dev/null
+++ b/doc/source/getting_started.rst
@@ -0,0 +1,294 @@
+Getting Started
+===============
+
+FabIO is a Python module for reading and handling data from two-dimensional X-ray detectors.
+
+
+FabIO is a Python module written for easy and transparent reading
+of raw two-dimensional data from various X-ray detectors. The
+module provides a function for reading any image and returning a
+fabioimage object which contains both metadata (header information)
+and the raw data. All fabioimage object offer additional methods to
+extract information about the image and to open other detector
+images from the same data series.
+
+
+Introduction
+------------
+
+One obstacle when writing software to analyse data collected from a
+two-dimensional detector is to read the raw data into the program,
+not least because the data can be stored in many different formats
+depending on the instrument used. To overcome this problem we
+decided to develop a general module, FabIO (FABle I/O), to handle
+reading and writing of two-dimensional data. The code-base was
+initiated by merging parts of our fabian imageviewer and
+ImageD11 peak-search programs and has been developed
+since 2007 as part of the TotalCryst program suite for
+analysis of 3DXRD microscopy data. During integration into
+a range of scientific programs like the FABLE graphical interface,
+EDNA and the fast azimuthal integration library,
+pyFAI; FabIO has gained several features like handling
+multi-frame image formats as well as writing many of the file
+formats.
+
+
+FabIO Python module
+-------------------
+
+Python is a scripting language that is very popular among
+scientists and which also allows well structured applications and
+libraries to be developed.
+
+Philosophy
+..........
+
+The intention behind this development was to create a Python module
+which would enable easy reading of 2D data images, from any
+detector without having to worry about the file format. Therefore
+FabIO just needs a file name to open a file and it determines the
+file format automatically and deals with gzip and bzip2
+compression transparently. Opening a file returns an object
+which stores the image in memory as a 2D NumPy array
+and the metadata, called header, in a Python dictionary.
+Beside the data and header attributes, some methods are
+provided for reading the previous or next image in a series of
+images as well as jumping to a specific file number. For the user,
+these auxiliary methods are intended to be independent of the image
+format (as far as is reasonably possible).
+
+FabIO is written in an object-oriented style (with classes) but
+aims at being used in a scripting environment: special care has
+been taken to ensure the library remains easy to use. Therefore no
+knowledge of object-oriented programming is required to get full
+benefits of the library. As the development is done in a
+collaborative and decentralized way; a comprehensive test suite has
+been added to reduce the number of regressions when new features
+are added or old problems are repaired. The software is very
+modular and allows new classes to be added for handling other data
+formats easily. FabIO and its source-code are freely available to
+everyone on-line, licensed under the GNU General Public
+License version 3 (GPLv3). FabIO is also available directly from
+popular Linux distributions like Debian and Ubuntu.
+
+Implementation
+..............
+
+The main language used in the development of FabIO is Python;
+however, some image formats are compressed and require
+compression algorithms for reading and writing data. When such
+algorithms could not be implemented efficiently using Python or
+NumPy native modules were developed, in i.e. standard C code
+callable from Python (sometimes generated using Cython).
+This code has to be compiled for each computer architecture and
+offers excellent performance. FabIO is only dependent on the NumPy
+module and has extra features if two other optional Python modules
+are available. For reading XML files (that are used in EDNA) the
+Lxml module is required and the Python Image Library, PIL
+is needed for producing a PIL image for displaying the image
+in graphical user interfaces and several image-processing
+operations that are not re-implemented in FabIO. A variety of
+useful image processing is also available in the scipy.ndimage
+module and in scikits-image.
+
+Images can also be displayed in a convenient interactive manner
+using matplotlib and an IPython shell , which
+is mainly used for developing data analysis algorithms. Reading and
+writing procedure of the various TIFF formats is based on the
+TiffIO code from PyMCA.
+
+In the Python shell, the `fabio` module must be imported prior to
+reading an image in one of the supported file formats (see Table
+`Supported formats`, hereafter).
+The `fabio.open` function creates an instance of the
+Python class `fabioimage`, from the name of a file. This instance,
+named `img` hereafter, stores the image data in `img.data` as a 2D
+NumPy array. Often the image file contains more information than
+just the intensities of the pixels, e.g. information about how the
+image is stored and the instrument parameters at the time of the
+image acquisition, these metadata are usually stored in the file
+header. Header information, are available in `img.header` as a
+Python dictionary where keys are strings and values are usually
+strings or numeric values.
+
+Information in the header about the binary part of the image
+(compression, endianness, shape) are interpreted however, other
+metadata are exposed as they are recorded in the file. FabIO allows
+the user to modify and, where possible, to save this information
+(the table `Supported formats` summarizes writable formats).
+Automatic translation
+between file-formats, even if desirable, is sometimes impossible
+because not all format have the capability to be extended with
+additional metadata. Nevertheless FabIO is capable of converting
+one image data-format into another by taking care of the numerical
+specifics: for example float arrays are converted to integer arrays
+if the output format only accepts integers.
+
+FabIO methods
+.............
+
+One strength of the implementation in an object oriented language
+is the possibility to combine functions (or methods) together with
+data appropriate for specific formats. In addition to the header
+information and image data, every `fabioimage` instance (returned
+by `fabio.open`) has methods inherited from `fabioimage` which
+provide information about the image minimum, maximum and mean
+values. In addition there are methods which return the file number,
+name etc. Some of the most important methods are specific for
+certain formats because the methods are related to how frames in a
+sequence are handled; these methods are `img.next()`,
+`img.previous()`, and `img.getframe(n)`. The behaviour of such
+methods varies depending on the image format: for single-frame
+format (like mar345), `img.next()` will return the image in next
+file; for multi-frame format (like GE), `img.next()` will return
+the next frame within the same file. For formats which are possibly
+multi-framed like EDF, the behaviour depends on the actual number
+of frames per file (accessible via the `img.nframes` attribute).
+
+Usage
+-----
+
+Examples
+........
+
+In this section we have collected some basic examples of how FabIO
+can be employed.
+
+Opening an image:
+
+::
+
+    import fabio
+    im100 = fabio.open('Quartz_0100.tif') # Open image file
+    print(im0.data[1024,1024])            # Check a pixel value
+    im101 = im100.next()                  # Open next image
+    im270 = im1.getframe(270)             # Jump to file number 270: Quartz_0270.tif
+
+Normalising the intensity to a value in the header:
+
+::
+
+    img = fabio.open('exampleimage0001.edf')
+    print(img.header)
+    {'ByteOrder': 'LowByteFirst',
+     'DATE (scan begin)': 'Mon Jun 28 21:22:16 2010',
+     'ESRFCurrent': '198.099',
+    ...
+    }
+    # Normalise to beam current and save data
+    srcur = float(img.header['ESRFCurrent'])
+    img.data *= 200.0/srcur
+    img.write('normed_0001.edf')
+
+Interactive viewing with matplotlib:
+
+::
+
+    from matplotlib import pyplot       # Load matplotlib
+    pyplot.imshow(img.data)             # Display as an image
+    pyplot.show()                       # Show GUI window
+
+Future and perspectives
+-----------------------
+
+The Hierarchical Data Format version 5 (`hdf5`) is a data format which
+is increasingly popular for storage of X-ray and neutron data. To
+name a few facilities the synchrotron Soleil and the neutron
+sources ISIS, SNS and SINQ already use HDF extensively through the
+NeXus format. For now, mainly processed or curated data are
+stored in this format but new detectors are rumoured to provide
+native output in HDF5. FabIO will rely on H5Py, which
+already provides a good HDF5 binding for Python, as an external
+dependency, to be able to read and write such HDF5 files.
+
+In the near future FabIO will be upgraded to work with Python3 (a
+new version of Python); this change of version will affect some
+internals FabIO as string and file handling have been altered. This
+change is already ongoing as many parts of native code in C have
+already been translated into Cython to smoothe the
+transition, since Cython generates code compatible with Python3.
+This also makes it easier to retain backwards compatibility with
+the earlier Python versions.
+
+Conclusion
+----------
+
+FabIO gives an easy way to read and write 2D images when using the
+Python computer language. It was originally developed for X-ray
+diffraction data but now gives an easy way for scientists to access
+and manipulate their data from a wide range of 2D X-ray detectors.
+We welcome contributions to further improve the code and hope to
+add more file formats in the future as well as port the existing
+code base to the emerging Python3.
+
+Acknoledgements
+...............
+
+We acknowledge Andy Götz and Kenneth Evans for extensive
+testing when including the FabIO reader in the Fable image viewer
+(Götz et al., 2007).We also thank V. Armando Solé for assistance with
+his TiffIO reader and Carsten Gundlach for deployment of FabIO at
+the beamlines i711 and i811, MAX IV, and providing bug reports. We
+finally acknowledge our colleagues who have reported bugs and
+helped to improve FabIO. Financial support was granted by the EU
+6th Framework NEST/ADVENTURE project TotalCryst (Poulsen et
+al., 2006).
+
+
+Citation
+........
+
+
+Knudsen, E. B., Sørensen, H. O., Wright, J. P., Goret, G. & Kieffer, J. (2013). J. Appl. Cryst. 46, 537-539.
+
+http://dx.doi.org/10.1107/S0021889813000150
+
+
+List of file formats that FabIO can read and write
+..................................................
+
+In alphabetical order. The listed filename extensions are typical examples.
+FabIO tries to deduce the actual format from the file itself and only
+uses extensions as a fallback if that fails.
+
+.. csv-table:: Supported formats
+   :header: "Python Module", "Detector / Format", "Extension", "Read", "Multi-image", "Write"
+   :widths: 30, 30, 20, 10, 15, 10
+
+   "ADSC", "ADSC Quantum", ".img ", "Yes", "No", "Yes"
+   "Bruker", "Bruker formats", ".sfrm ", "Yes", "No", "Yes"
+   "DM3", "Gatan Digital Micrograph ", ".dm3 ", "Yes", "No", "No"
+   "EDF", "ESRF data format ", ".edf ", "Yes", "Yes ", "Yes"
+   "EDNA-XML", "Used by EDNA", ".xml ", "Yes", "No", "No"
+   "CBF", "CIF binary files", ".cbf ", "Yes", "No", "Yes"
+   "kcd", "Nonius KappaCCD", ".kccd ", "Yes", "No", "No"
+   "fit2d mask", "Used by Fit2D", ".msk ", "Yes", "No", "Yes"
+   "fit2d spreadsheet", "Used by Fit2D", ".spr ", "Yes", "No", "Yes"
+   "GE", "General Electric", "No", "Yes", "Yes ", "No"
+   "HiPiC", "Hamamatsu CCD", ".tif ", "Yes", "No", "No"
+   "marccd", "MarCCD/Mar165", ".mccd ", "Yes", "No", "Yes"
+   "mar345", "Mar345 image plate", ".mar3450 ", "Yes", "No", "Yes"
+   "OXD", "Oxford Diffraction", ".img ", "Yes", "No", "Yes"
+   "pilatus", "Dectris Pilatus Tiff", ".tif ", "Yes", "No", "Yes"
+   "PNM", "Portable aNy Map", ".pnm ", "Yes", "No", "No"
+   "TIFF", "Tagged Image File Format", ".tif ", "Yes", "No", "Yes"
+
+Adding new file formats
+.......................
+
+We hope it will be relatively easy to add new file formats to fabio in the future. The basic idea is the following:
+ 1. inherit from fabioimage overriding the methods _readheader, read and optionally write. Name your new module XXXimage where XXX means something (eg tifimage).
+ 2. readheader fills in a dictionary of "name":"value" pairs in self.header. No one expects to find anything much in there.
+ 3. read fills in self.data with a numpy array holding the image. Some redundant info which also appears are self.dim1 and self.dim2: the image dimensions, self.bpp is the bytes per pixel and self.bytecode is the numpy.dtype.type of the data.
+ 4. The member variables "_need_a_seek_to_read" and "_need_a_real_file" are there in case you have trouble with the transparent handling of bz2 and gz files.
+ 5. Register the file type (extension naming) in fabioutils.py:FILETYPES
+ 6. Add your new module as an import into fabio.openimage
+ 7. Fill out the magic numbers for your format in fabio.openimage if you know them (the characteristic first few bytes in the file)
+ 8. Upload a testimage to the file release system and create a unittest testcase which opens an example of your new format, confirming the image has actually been read in successfully (eg check the mean, max, min and esd are all correct, perhaps orientation too)
+ 9. Run pylint on your code and then please go clean it up. Have a go at mine while you are at it.
+ 10. Bask in the warm glow of appreciation when someone unexpectedly learns they don't need to convert their data into another format
+
+
+
+
+
diff --git a/doc/source/index.rst b/doc/source/index.rst
new file mode 100644
index 0000000..55274fc
--- /dev/null
+++ b/doc/source/index.rst
@@ -0,0 +1,26 @@
+.. FabIO documentation master file, created by
+   sphinx-quickstart on Fri Mar 15 09:03:50 2013.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Welcome to FabIO's documentation!
+=================================
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   getting_started
+   INSTALL
+   Changelog
+   api/modules
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
diff --git a/epydoc/api-objects.txt b/epydoc/api-objects.txt
new file mode 100644
index 0000000..e55dc49
--- /dev/null
+++ b/epydoc/api-objects.txt
@@ -0,0 +1,1223 @@
+fabio	fabio-module.html
+fabio.getnum	fabio.fabioutils-module.html#getnum
+fabio.construct_filename	fabio.fabioutils-module.html#construct_filename
+fabio.open	fabio.openimage-module.html#openimage
+fabio.deconstruct_filename	fabio.fabioutils-module.html#deconstruct_filename
+fabio.__package__	fabio-module.html#__package__
+fabio.version	fabio-module.html#version
+fabio.openheader	fabio.openimage-module.html#openheader
+fabio.next_filename	fabio.fabioutils-module.html#next_filename
+fabio.extract_filenumber	fabio.fabioutils-module.html#extract_filenumber
+fabio.__status__	fabio-module.html#__status__
+fabio.previous_filename	fabio.fabioutils-module.html#previous_filename
+fabio.jump_filename	fabio.fabioutils-module.html#jump_filename
+fabio.GEimage	fabio.GEimage-module.html
+fabio.GEimage.previous_filename	fabio.fabioutils-module.html#previous_filename
+fabio.GEimage.GE_HEADER_INFO	fabio.GEimage-module.html#GE_HEADER_INFO
+fabio.GEimage.__package__	fabio.GEimage-module.html#__package__
+fabio.GEimage.next_filename	fabio.fabioutils-module.html#next_filename
+fabio.GEimage.demo	fabio.GEimage-module.html#demo
+fabio.GEimage.logger	fabio.GEimage-module.html#logger
+fabio.GEimage_old	fabio.GEimage_old-module.html
+fabio.GEimage_old.__package__	fabio.GEimage_old-module.html#__package__
+fabio.HiPiCimage	fabio.HiPiCimage-module.html
+fabio.HiPiCimage.__package__	fabio.HiPiCimage-module.html#__package__
+fabio.HiPiCimage.logger	fabio.HiPiCimage-module.html#logger
+fabio.OXDimage	fabio.OXDimage-module.html
+fabio.OXDimage.deg2rad	fabio.OXDimage-module.html#deg2rad
+fabio.OXDimage.rad2deg	fabio.OXDimage-module.html#rad2deg
+fabio.OXDimage.__package__	fabio.OXDimage-module.html#__package__
+fabio.OXDimage.decTY1	fabio.compression-module.html#decTY1
+fabio.OXDimage.__doc__	fabio.OXDimage-module.html#__doc__
+fabio.OXDimage.compTY1	fabio.compression-module.html#compTY1
+fabio.OXDimage.logger	fabio.OXDimage-module.html#logger
+fabio.OXDimage.DEFAULT_HEADERS	fabio.OXDimage-module.html#DEFAULT_HEADERS
+fabio.OXDimage.DETECTOR_TYPES	fabio.OXDimage-module.html#DETECTOR_TYPES
+fabio.TiffIO	fabio.TiffIO-module.html
+fabio.TiffIO.FIELD_TYPE	fabio.TiffIO-module.html#FIELD_TYPE
+fabio.TiffIO.FIELD_TYPE_OUT	fabio.TiffIO-module.html#FIELD_TYPE_OUT
+fabio.TiffIO.TAG_ROWS_PER_STRIP	fabio.TiffIO-module.html#TAG_ROWS_PER_STRIP
+fabio.TiffIO.TAG_PHOTOMETRIC_INTERPRETATION	fabio.TiffIO-module.html#TAG_PHOTOMETRIC_INTERPRETATION
+fabio.TiffIO.TAG_IMAGE_DESCRIPTION	fabio.TiffIO-module.html#TAG_IMAGE_DESCRIPTION
+fabio.TiffIO.TAG_COMPRESSION	fabio.TiffIO-module.html#TAG_COMPRESSION
+fabio.TiffIO.TAG_DATE	fabio.TiffIO-module.html#TAG_DATE
+fabio.TiffIO.TAG_SOFTWARE	fabio.TiffIO-module.html#TAG_SOFTWARE
+fabio.TiffIO.TAG_NUMBER_OF_ROWS	fabio.TiffIO-module.html#TAG_NUMBER_OF_ROWS
+fabio.TiffIO.TAG_BITS_PER_SAMPLE	fabio.TiffIO-module.html#TAG_BITS_PER_SAMPLE
+fabio.TiffIO.TAG_COLORMAP	fabio.TiffIO-module.html#TAG_COLORMAP
+fabio.TiffIO.__package__	fabio.TiffIO-module.html#__package__
+fabio.TiffIO.SAMPLE_FORMAT_COMPLEXIEEEFP	fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXIEEEFP
+fabio.TiffIO.TAG_NUMBER_OF_COLUMNS	fabio.TiffIO-module.html#TAG_NUMBER_OF_COLUMNS
+fabio.TiffIO.SAMPLE_FORMAT_INT	fabio.TiffIO-module.html#SAMPLE_FORMAT_INT
+fabio.TiffIO.__revision__	fabio.TiffIO-module.html#__revision__
+fabio.TiffIO.SAMPLE_FORMAT_FLOAT	fabio.TiffIO-module.html#SAMPLE_FORMAT_FLOAT
+fabio.TiffIO.SAMPLE_FORMAT_VOID	fabio.TiffIO-module.html#SAMPLE_FORMAT_VOID
+fabio.TiffIO.TAG_SAMPLE_FORMAT	fabio.TiffIO-module.html#TAG_SAMPLE_FORMAT
+fabio.TiffIO.TAG_STRIP_OFFSETS	fabio.TiffIO-module.html#TAG_STRIP_OFFSETS
+fabio.TiffIO.SAMPLE_FORMAT_UINT	fabio.TiffIO-module.html#SAMPLE_FORMAT_UINT
+fabio.TiffIO.DEBUG	fabio.TiffIO-module.html#DEBUG
+fabio.TiffIO.TAG_ID	fabio.TiffIO-module.html#TAG_ID
+fabio.TiffIO.TAG_STRIP_BYTE_COUNTS	fabio.TiffIO-module.html#TAG_STRIP_BYTE_COUNTS
+fabio.TiffIO.SAMPLE_FORMAT_COMPLEXINT	fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXINT
+fabio.TiffIO.ALLOW_MULTIPLE_STRIPS	fabio.TiffIO-module.html#ALLOW_MULTIPLE_STRIPS
+fabio.adscimage	fabio.adscimage-module.html
+fabio.adscimage.__package__	fabio.adscimage-module.html#__package__
+fabio.adscimage.test	fabio.adscimage-module.html#test
+fabio.adscimage.logger	fabio.adscimage-module.html#logger
+fabio.binaryimage	fabio.binaryimage-module.html
+fabio.binaryimage.__package__	fabio.binaryimage-module.html#__package__
+fabio.binaryimage.logger	fabio.binaryimage-module.html#logger
+fabio.binaryimage.__doc__	fabio.binaryimage-module.html#__doc__
+fabio.bruker100image	fabio.bruker100image-module.html
+fabio.bruker100image.__package__	fabio.bruker100image-module.html#__package__
+fabio.bruker100image.readbytestream	fabio.readbytestream-module.html#readbytestream
+fabio.bruker100image.logger	fabio.bruker100image-module.html#logger
+fabio.brukerimage	fabio.brukerimage-module.html
+fabio.brukerimage.__package__	fabio.brukerimage-module.html#__package__
+fabio.brukerimage.readbytestream	fabio.readbytestream-module.html#readbytestream
+fabio.brukerimage.test	fabio.brukerimage-module.html#test
+fabio.brukerimage.logger	fabio.brukerimage-module.html#logger
+fabio.byte_offset	fabio.byte_offset-module.html
+fabio.byte_offset.__package__	fabio.byte_offset-module.html#__package__
+fabio.byte_offset.__test__	fabio.byte_offset-module.html#__test__
+fabio.cbfimage	fabio.cbfimage-module.html
+fabio.cbfimage.md5sum	fabio.compression-module.html#md5sum
+fabio.cbfimage.compByteOffet_numpy	fabio.compression-module.html#compByteOffet_numpy
+fabio.cbfimage.PADDING	fabio.cbfimage-module.html#PADDING
+fabio.cbfimage.DATA_TYPES	fabio.cbfimage-module.html#DATA_TYPES
+fabio.cbfimage.__package__	fabio.cbfimage-module.html#__package__
+fabio.cbfimage.decByteOffet_numpy	fabio.compression-module.html#decByteOffet_numpy
+fabio.cbfimage.logger	fabio.cbfimage-module.html#logger
+fabio.cbfimage.MINIMUM_KEYS	fabio.cbfimage-module.html#MINIMUM_KEYS
+fabio.cbfimage.STARTER	fabio.cbfimage-module.html#STARTER
+fabio.cf_io	fabio.cf_io-module.html
+fabio.cf_io.read	fabio.cf_io-module.html#read
+fabio.cf_io.__package__	fabio.cf_io-module.html#__package__
+fabio.compression	fabio.compression-module.html
+fabio.compression.compByteOffet_numpy	fabio.compression-module.html#compByteOffet_numpy
+fabio.compression.decTY1	fabio.compression-module.html#decTY1
+fabio.compression.decBzip2	fabio.compression-module.html#decBzip2
+fabio.compression.decKM4CCD	fabio.compression-module.html#decKM4CCD
+fabio.compression.__package__	fabio.compression-module.html#__package__
+fabio.compression.decZlib	fabio.compression-module.html#decZlib
+fabio.compression.endianness	fabio.compression-module.html#endianness
+fabio.compression.logger	fabio.compression-module.html#logger
+fabio.compression.decPCK	fabio.compression-module.html#decPCK
+fabio.compression.decGzip	fabio.compression-module.html#decGzip
+fabio.compression.decByteOffet_python	fabio.compression-module.html#decByteOffet_python
+fabio.compression.decByteOffet_numpy	fabio.compression-module.html#decByteOffet_numpy
+fabio.compression.decByteOffet_weave	fabio.compression-module.html#decByteOffet_weave
+fabio.compression.md5sum	fabio.compression-module.html#md5sum
+fabio.compression.compTY1	fabio.compression-module.html#compTY1
+fabio.compression.decByteOffet_cython	fabio.compression-module.html#decByteOffet_cython
+fabio.compression.compPCK	fabio.compression-module.html#compPCK
+fabio.converters	fabio.converters-module.html
+fabio.converters.convert_data_integer	fabio.converters-module.html#convert_data_integer
+fabio.converters.convert_data	fabio.converters-module.html#convert_data
+fabio.converters.CONVERSION_DATA	fabio.converters-module.html#CONVERSION_DATA
+fabio.converters.convert_header	fabio.converters-module.html#convert_header
+fabio.converters.CONVERSION_HEADER	fabio.converters-module.html#CONVERSION_HEADER
+fabio.converters.logger	fabio.converters-module.html#logger
+fabio.converters.__package__	fabio.converters-module.html#__package__
+fabio.datIO	fabio.datIO-module.html
+fabio.datIO.__package__	fabio.datIO-module.html#__package__
+fabio.dm3image	fabio.dm3image-module.html
+fabio.dm3image.DATA_BYTES	fabio.dm3image-module.html#DATA_BYTES
+fabio.dm3image.__package__	fabio.dm3image-module.html#__package__
+fabio.dm3image.DATA_TYPES	fabio.dm3image-module.html#DATA_TYPES
+fabio.dm3image.logger	fabio.dm3image-module.html#logger
+fabio.edfimage	fabio.edfimage-module.html
+fabio.edfimage.decBzip2	fabio.compression-module.html#decBzip2
+fabio.edfimage.BLOCKSIZE	fabio.edfimage-module.html#BLOCKSIZE
+fabio.edfimage.MINIMUM_KEYS	fabio.edfimage-module.html#MINIMUM_KEYS
+fabio.edfimage.decZlib	fabio.compression-module.html#decZlib
+fabio.edfimage.NUMPY_EDF_DTYPE	fabio.edfimage-module.html#NUMPY_EDF_DTYPE
+fabio.edfimage.decGzip	fabio.compression-module.html#decGzip
+fabio.edfimage.DATA_TYPES	fabio.edfimage-module.html#DATA_TYPES
+fabio.edfimage.isAscii	fabio.fabioutils-module.html#isAscii
+fabio.edfimage.nice_int	fabio.fabioutils-module.html#nice_int
+fabio.edfimage.DEFAULT_VALUES	fabio.edfimage-module.html#DEFAULT_VALUES
+fabio.edfimage.__package__	fabio.edfimage-module.html#__package__
+fabio.edfimage.logger	fabio.edfimage-module.html#logger
+fabio.edfimage.toAscii	fabio.fabioutils-module.html#toAscii
+fabio.fabioimage	fabio.fabioimage-module.html
+fabio.fabioimage.__package__	fabio.fabioimage-module.html#__package__
+fabio.fabioimage.test	fabio.fabioimage-module.html#test
+fabio.fabioimage.logger	fabio.fabioimage-module.html#logger
+fabio.fabioutils	fabio.fabioutils-module.html
+fabio.fabioutils.COMPRESSORS	fabio.fabioutils-module.html#COMPRESSORS
+fabio.fabioutils.getnum	fabio.fabioutils-module.html#getnum
+fabio.fabioutils.construct_filename	fabio.fabioutils-module.html#construct_filename
+fabio.fabioutils.FILETYPES	fabio.fabioutils-module.html#FILETYPES
+fabio.fabioutils.dictAscii	fabio.fabioutils-module.html#dictAscii
+fabio.fabioutils.deconstruct_filename	fabio.fabioutils-module.html#deconstruct_filename
+fabio.fabioutils.nice_int	fabio.fabioutils-module.html#nice_int
+fabio.fabioutils.__package__	fabio.fabioutils-module.html#__package__
+fabio.fabioutils.toAscii	fabio.fabioutils-module.html#toAscii
+fabio.fabioutils.isAscii	fabio.fabioutils-module.html#isAscii
+fabio.fabioutils.logger	fabio.fabioutils-module.html#logger
+fabio.fabioutils.next_filename	fabio.fabioutils-module.html#next_filename
+fabio.fabioutils.key	fabio.fabioutils-module.html#key
+fabio.fabioutils.extract_filenumber	fabio.fabioutils-module.html#extract_filenumber
+fabio.fabioutils.i	fabio.fabioutils-module.html#i
+fabio.fabioutils.deprecated	fabio.fabioutils-module.html#deprecated
+fabio.fabioutils.lines	fabio.fabioutils-module.html#lines
+fabio.fabioutils.previous_filename	fabio.fabioutils-module.html#previous_filename
+fabio.fabioutils.numstem	fabio.fabioutils-module.html#numstem
+fabio.fabioutils.jump_filename	fabio.fabioutils-module.html#jump_filename
+fabio.file_series	fabio.file_series-module.html
+fabio.file_series.next_filename	fabio.fabioutils-module.html#next_filename
+fabio.file_series.new_file_series	fabio.file_series-module.html#new_file_series
+fabio.file_series.__package__	fabio.file_series-module.html#__package__
+fabio.file_series.logger	fabio.file_series-module.html#logger
+fabio.file_series.openimage	fabio.openimage-module.html#openimage
+fabio.file_series.new_file_series0	fabio.file_series-module.html#new_file_series0
+fabio.fit2dmaskimage	fabio.fit2dmaskimage-module.html
+fabio.fit2dmaskimage.__package__	fabio.fit2dmaskimage-module.html#__package__
+fabio.fit2dspreadsheetimage	fabio.fit2dspreadsheetimage-module.html
+fabio.fit2dspreadsheetimage.__package__	fabio.fit2dspreadsheetimage-module.html#__package__
+fabio.kcdimage	fabio.kcdimage-module.html
+fabio.kcdimage.__package__	fabio.kcdimage-module.html#__package__
+fabio.kcdimage.DATA_TYPES	fabio.kcdimage-module.html#DATA_TYPES
+fabio.kcdimage.DEFAULT_VALUES	fabio.kcdimage-module.html#DEFAULT_VALUES
+fabio.kcdimage.MINIMUM_KEYS	fabio.kcdimage-module.html#MINIMUM_KEYS
+fabio.kcdimage.logger	fabio.kcdimage-module.html#logger
+fabio.mar345_IO	fabio.mar345_IO-module.html
+fabio.mar345_IO.__package__	fabio.mar345_IO-module.html#__package__
+fabio.mar345_IO.__test__	fabio.mar345_IO-module.html#__test__
+fabio.mar345image	fabio.mar345image-module.html
+fabio.mar345image.decPCK	fabio.compression-module.html#decPCK
+fabio.mar345image.__package__	fabio.mar345image-module.html#__package__
+fabio.mar345image.logger	fabio.mar345image-module.html#logger
+fabio.mar345image.__doc__	fabio.mar345image-module.html#__doc__
+fabio.mar345image.compPCK	fabio.compression-module.html#compPCK
+fabio.marccdimage	fabio.marccdimage-module.html
+fabio.marccdimage.HEADER_NAMES	fabio.marccdimage-module.html#HEADER_NAMES
+fabio.marccdimage.CDEFINITION	fabio.marccdimage-module.html#CDEFINITION
+fabio.marccdimage.C_TO_STRUCT	fabio.marccdimage-module.html#C_TO_STRUCT
+fabio.marccdimage.HEADER_FORMAT	fabio.marccdimage-module.html#HEADER_FORMAT
+fabio.marccdimage.make_format	fabio.marccdimage-module.html#make_format
+fabio.marccdimage.interpret_header	fabio.marccdimage-module.html#interpret_header
+fabio.marccdimage.MAXIMAGES	fabio.marccdimage-module.html#MAXIMAGES
+fabio.marccdimage.logger	fabio.marccdimage-module.html#logger
+fabio.marccdimage.__package__	fabio.marccdimage-module.html#__package__
+fabio.marccdimage.C_SIZES	fabio.marccdimage-module.html#C_SIZES
+fabio.openimage	fabio.openimage-module.html
+fabio.openimage.MAGIC_NUMBERS	fabio.openimage-module.html#MAGIC_NUMBERS
+fabio.openimage._openimage	fabio.openimage-module.html#_openimage
+fabio.openimage.do_magic	fabio.openimage-module.html#do_magic
+fabio.openimage.__package__	fabio.openimage-module.html#__package__
+fabio.openimage.openheader	fabio.openimage-module.html#openheader
+fabio.openimage.logger	fabio.openimage-module.html#logger
+fabio.openimage.openimage	fabio.openimage-module.html#openimage
+fabio.pilatusimage	fabio.pilatusimage-module.html
+fabio.pilatusimage.__package__	fabio.pilatusimage-module.html#__package__
+fabio.pnmimage	fabio.pnmimage-module.html
+fabio.pnmimage.P7HEADERITEMS	fabio.pnmimage-module.html#P7HEADERITEMS
+fabio.pnmimage.SUBFORMATS	fabio.pnmimage-module.html#SUBFORMATS
+fabio.pnmimage.HEADERITEMS	fabio.pnmimage-module.html#HEADERITEMS
+fabio.pnmimage.__package__	fabio.pnmimage-module.html#__package__
+fabio.pnmimage.logger	fabio.pnmimage-module.html#logger
+fabio.readbytestream	fabio.readbytestream-module.html
+fabio.readbytestream.__package__	fabio.readbytestream-module.html#__package__
+fabio.readbytestream.readbytestream	fabio.readbytestream-module.html#readbytestream
+fabio.readbytestream.DATATYPES	fabio.readbytestream-module.html#DATATYPES
+fabio.readbytestream.logger	fabio.readbytestream-module.html#logger
+fabio.tifimage	fabio.tifimage-module.html
+fabio.tifimage.PIL_TO_NUMPY	fabio.tifimage-module.html#PIL_TO_NUMPY
+fabio.tifimage.TYPESIZES	fabio.tifimage-module.html#TYPESIZES
+fabio.tifimage.__package__	fabio.tifimage-module.html#__package__
+fabio.tifimage.logger	fabio.tifimage-module.html#logger
+fabio.tifimage.TYPES	fabio.tifimage-module.html#TYPES
+fabio.tifimage.LITTLE_ENDIAN	fabio.tifimage-module.html#LITTLE_ENDIAN
+fabio.tifimage.baseline_tiff_tags	fabio.tifimage-module.html#baseline_tiff_tags
+fabio.tifimage.BIG_ENDIAN	fabio.tifimage-module.html#BIG_ENDIAN
+fabio.tifimage.__status__	fabio.tifimage-module.html#__status__
+fabio.xsdimage	fabio.xsdimage-module.html
+fabio.xsdimage.__package__	fabio.xsdimage-module.html#__package__
+fabio.xsdimage.logger	fabio.xsdimage-module.html#logger
+fabio.GEimage.GEimage	fabio.GEimage.GEimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.GEimage.GEimage._need_a_seek_to_read	fabio.GEimage.GEimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.GEimage.GEimage._makeframename	fabio.GEimage.GEimage-class.html#_makeframename
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.GEimage.GEimage.previous	fabio.GEimage.GEimage-class.html#previous
+fabio.GEimage.GEimage._readframe	fabio.GEimage.GEimage-class.html#_readframe
+fabio.GEimage.GEimage.write	fabio.GEimage.GEimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.GEimage.GEimage.next	fabio.GEimage.GEimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.GEimage.GEimage.read	fabio.GEimage.GEimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.GEimage.GEimage.getframe	fabio.GEimage.GEimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.GEimage.GEimage._readheader	fabio.GEimage.GEimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.GEimage_old.GEimage	fabio.GEimage_old.GEimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.write	fabio.fabioimage.fabioimage-class.html#write
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.GEimage_old.GEimage.read	fabio.GEimage_old.GEimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.GEimage_old.GEimage._readheader	fabio.GEimage_old.GEimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.HiPiCimage.HiPiCimage	fabio.HiPiCimage.HiPiCimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.write	fabio.fabioimage.fabioimage-class.html#write
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.HiPiCimage.HiPiCimage.read	fabio.HiPiCimage.HiPiCimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.HiPiCimage.HiPiCimage._readheader	fabio.HiPiCimage.HiPiCimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.OXDimage.OXDimage	fabio.OXDimage.OXDimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.OXDimage.OXDimage._writeheader	fabio.OXDimage.OXDimage-class.html#_writeheader
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.OXDimage.OXDimage.write	fabio.OXDimage.OXDimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.OXDimage.OXDimage.read	fabio.OXDimage.OXDimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.OXDimage.OXDimage.checkData	fabio.OXDimage.OXDimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.OXDimage.OXDimage._readheader	fabio.OXDimage.OXDimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.OXDimage.OXDimage.getCompressionRatio	fabio.OXDimage.OXDimage-class.html#getCompressionRatio
+fabio.OXDimage.Section	fabio.OXDimage.Section-class.html
+fabio.OXDimage.Section.getSize	fabio.OXDimage.Section-class.html#getSize
+fabio.OXDimage.Section.__repr__	fabio.OXDimage.Section-class.html#__repr__
+fabio.OXDimage.Section.__init__	fabio.OXDimage.Section-class.html#__init__
+fabio.OXDimage.Section.setData	fabio.OXDimage.Section-class.html#setData
+fabio.TiffIO.TiffIO	fabio.TiffIO.TiffIO-class.html
+fabio.TiffIO.TiffIO._initEmptyFile	fabio.TiffIO.TiffIO-class.html#_initEmptyFile
+fabio.TiffIO.TiffIO.writeImage	fabio.TiffIO.TiffIO-class.html#writeImage
+fabio.TiffIO.TiffIO.getImageFileDirectories	fabio.TiffIO.TiffIO-class.html#getImageFileDirectories
+fabio.TiffIO.TiffIO.getNumberOfImages	fabio.TiffIO.TiffIO-class.html#getNumberOfImages
+fabio.TiffIO.TiffIO.__makeSureFileIsClosed	fabio.TiffIO.TiffIO-class.html#__makeSureFileIsClosed
+fabio.TiffIO.TiffIO._getOutputIFD	fabio.TiffIO.TiffIO-class.html#_getOutputIFD
+fabio.TiffIO.TiffIO.__init__	fabio.TiffIO.TiffIO-class.html#__init__
+fabio.TiffIO.TiffIO._readIFDEntry	fabio.TiffIO.TiffIO-class.html#_readIFDEntry
+fabio.TiffIO.TiffIO._parseImageFileDirectory	fabio.TiffIO.TiffIO-class.html#_parseImageFileDirectory
+fabio.TiffIO.TiffIO.getData	fabio.TiffIO.TiffIO-class.html#getData
+fabio.TiffIO.TiffIO._readImage	fabio.TiffIO.TiffIO-class.html#_readImage
+fabio.TiffIO.TiffIO._updateIFD	fabio.TiffIO.TiffIO-class.html#_updateIFD
+fabio.TiffIO.TiffIO._readInfo	fabio.TiffIO.TiffIO-class.html#_readInfo
+fabio.TiffIO.TiffIO.getInfo	fabio.TiffIO.TiffIO-class.html#getInfo
+fabio.TiffIO.TiffIO._initInternalVariables	fabio.TiffIO.TiffIO-class.html#_initInternalVariables
+fabio.TiffIO.TiffIO.__makeSureFileIsOpen	fabio.TiffIO.TiffIO-class.html#__makeSureFileIsOpen
+fabio.TiffIO.TiffIO.getImage	fabio.TiffIO.TiffIO-class.html#getImage
+fabio.adscimage.adscimage	fabio.adscimage.adscimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.adscimage.adscimage.__init__	fabio.adscimage.adscimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.adscimage.adscimage.write	fabio.adscimage.adscimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.adscimage.adscimage.read	fabio.adscimage.adscimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.adscimage.adscimage._readheader	fabio.adscimage.adscimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.binaryimage.binaryimage	fabio.binaryimage.binaryimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.binaryimage.binaryimage.__init__	fabio.binaryimage.binaryimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.binaryimage.binaryimage.write	fabio.binaryimage.binaryimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.binaryimage.binaryimage.read	fabio.binaryimage.binaryimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.binaryimage.binaryimage.swap_needed	fabio.binaryimage.binaryimage-class.html#swap_needed
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.fabioimage.fabioimage._readheader	fabio.fabioimage.fabioimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.binaryimage.binaryimage.estimate_offset_value	fabio.binaryimage.binaryimage-class.html#estimate_offset_value
+fabio.bruker100image.bruker100image	fabio.bruker100image.bruker100image-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.brukerimage.brukerimage.write	fabio.brukerimage.brukerimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.brukerimage.brukerimage.__headerstring__	fabio.brukerimage.brukerimage-class.html#__headerstring__
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.bruker100image.bruker100image.read	fabio.bruker100image.bruker100image-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.brukerimage.brukerimage.write2	fabio.brukerimage.brukerimage-class.html#write2
+fabio.bruker100image.bruker100image.toPIL16	fabio.bruker100image.bruker100image-class.html#toPIL16
+fabio.brukerimage.brukerimage._readheader	fabio.brukerimage.brukerimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.brukerimage.brukerimage	fabio.brukerimage.brukerimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.brukerimage.brukerimage.write	fabio.brukerimage.brukerimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.brukerimage.brukerimage.__headerstring__	fabio.brukerimage.brukerimage-class.html#__headerstring__
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.brukerimage.brukerimage.read	fabio.brukerimage.brukerimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.brukerimage.brukerimage.write2	fabio.brukerimage.brukerimage-class.html#write2
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.brukerimage.brukerimage._readheader	fabio.brukerimage.brukerimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.cbfimage.CIF	fabio.cbfimage.CIF-class.html
+fabio.cbfimage.CIF.exists	fabio.cbfimage.CIF-class.html#exists
+fabio.cbfimage.CIF.popitem	fabio.cbfimage.CIF-class.html#popitem
+fabio.cbfimage.CIF.loadCHIPLOT	fabio.cbfimage.CIF-class.html#loadCHIPLOT
+fabio.cbfimage.CIF.pop	fabio.cbfimage.CIF-class.html#pop
+fabio.cbfimage.CIF.EOL	fabio.cbfimage.CIF-class.html#EOL
+fabio.cbfimage.CIF.__init__	fabio.cbfimage.CIF-class.html#__init__
+fabio.cbfimage.CIF.START_COMMENT	fabio.cbfimage.CIF-class.html#START_COMMENT
+fabio.cbfimage.CIF.readCIF	fabio.cbfimage.CIF-class.html#readCIF
+fabio.cbfimage.CIF.isAscii	fabio.cbfimage.CIF-class.html#isAscii
+fabio.cbfimage.CIF.BLANK	fabio.cbfimage.CIF-class.html#BLANK
+fabio.cbfimage.CIF.BINARY_MARKER	fabio.cbfimage.CIF-class.html#BINARY_MARKER
+fabio.cbfimage.CIF._parseCIF	fabio.cbfimage.CIF-class.html#_parseCIF
+fabio.cbfimage.CIF.__setitem__	fabio.cbfimage.CIF-class.html#__setitem__
+fabio.cbfimage.CIF.tostring	fabio.cbfimage.CIF-class.html#tostring
+fabio.cbfimage.CIF.saveCIF	fabio.cbfimage.CIF-class.html#saveCIF
+fabio.cbfimage.CIF._splitCIF	fabio.cbfimage.CIF-class.html#_splitCIF
+fabio.cbfimage.CIF.LoopHasKey	fabio.cbfimage.CIF-class.html#LoopHasKey
+fabio.cbfimage.CIF._readCIF	fabio.cbfimage.CIF-class.html#_readCIF
+fabio.cbfimage.CIF.loadCIF	fabio.cbfimage.CIF-class.html#loadCIF
+fabio.cbfimage.CIF._analyseOneLoop	fabio.cbfimage.CIF-class.html#_analyseOneLoop
+fabio.cbfimage.CIF.existsInLoop	fabio.cbfimage.CIF-class.html#existsInLoop
+fabio.cbfimage.cbfimage	fabio.cbfimage.cbfimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.cbfimage.cbfimage.__init__	fabio.cbfimage.cbfimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.cbfimage.cbfimage.write	fabio.cbfimage.cbfimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.cbfimage.cbfimage.read	fabio.cbfimage.cbfimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.cbfimage.cbfimage._readbinary_byte_offset	fabio.cbfimage.cbfimage-class.html#_readbinary_byte_offset
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.cbfimage.cbfimage.checkData	fabio.cbfimage.cbfimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.cbfimage.cbfimage._readheader	fabio.cbfimage.cbfimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.datIO.columnfile	fabio.datIO.columnfile-class.html
+fabio.datIO.columnfile.read	fabio.datIO.columnfile-class.html#read
+fabio.datIO.fabiodata.__init__	fabio.datIO.fabiodata-class.html#__init__
+fabio.datIO.fabiodata	fabio.datIO.fabiodata-class.html
+fabio.datIO.fabiodata.read	fabio.datIO.fabiodata-class.html#read
+fabio.datIO.fabiodata.__init__	fabio.datIO.fabiodata-class.html#__init__
+fabio.dm3image.dm3image	fabio.dm3image.dm3image-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.dm3image.dm3image.readbytes	fabio.dm3image.dm3image-class.html#readbytes
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.dm3image.dm3image.__init__	fabio.dm3image.dm3image-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.write	fabio.fabioimage.fabioimage-class.html#write
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.dm3image.dm3image.read_tag_group	fabio.dm3image.dm3image-class.html#read_tag_group
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.dm3image.dm3image.read	fabio.dm3image.dm3image-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.dm3image.dm3image.read_data	fabio.dm3image.dm3image-class.html#read_data
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.dm3image.dm3image.read_tag_entry	fabio.dm3image.dm3image-class.html#read_tag_entry
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.dm3image.dm3image.read_tag_type	fabio.dm3image.dm3image-class.html#read_tag_type
+fabio.dm3image.dm3image._readheader	fabio.dm3image.dm3image-class.html#_readheader
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.edfimage.Frame	fabio.edfimage.Frame-class.html
+fabio.edfimage.Frame.bytecode	fabio.edfimage.Frame-class.html#bytecode
+fabio.edfimage.Frame.setByteCode	fabio.edfimage.Frame-class.html#setByteCode
+fabio.edfimage.Frame.getEdfBlock	fabio.edfimage.Frame-class.html#getEdfBlock
+fabio.edfimage.Frame.__init__	fabio.edfimage.Frame-class.html#__init__
+fabio.edfimage.Frame.getData	fabio.edfimage.Frame-class.html#getData
+fabio.edfimage.Frame.setData	fabio.edfimage.Frame-class.html#setData
+fabio.edfimage.Frame.parseheader	fabio.edfimage.Frame-class.html#parseheader
+fabio.edfimage.Frame.data	fabio.edfimage.Frame-class.html#data
+fabio.edfimage.Frame.getByteCode	fabio.edfimage.Frame-class.html#getByteCode
+fabio.edfimage.Frame.swap_needed	fabio.edfimage.Frame-class.html#swap_needed
+fabio.edfimage.edfimage	fabio.edfimage.edfimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.edfimage.edfimage.header_keys	fabio.edfimage.edfimage-class.html#header_keys
+fabio.edfimage.edfimage.fastReadData	fabio.edfimage.edfimage-class.html#fastReadData
+fabio.edfimage.edfimage.dim2	fabio.edfimage.edfimage-class.html#dim2
+fabio.edfimage.edfimage.header	fabio.edfimage.edfimage-class.html#header
+fabio.edfimage.edfimage.dim1	fabio.edfimage.edfimage-class.html#dim1
+fabio.edfimage.edfimage.checkHeader	fabio.edfimage.edfimage-class.html#checkHeader
+fabio.edfimage.edfimage.bytecode	fabio.edfimage.edfimage-class.html#bytecode
+fabio.edfimage.edfimage.setByteCode	fabio.edfimage.edfimage-class.html#setByteCode
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.edfimage.edfimage.delHeader	fabio.edfimage.edfimage-class.html#delHeader
+fabio.edfimage.edfimage.next	fabio.edfimage.edfimage-class.html#next
+fabio.edfimage.edfimage.__init__	fabio.edfimage.edfimage-class.html#__init__
+fabio.edfimage.edfimage.previous	fabio.edfimage.edfimage-class.html#previous
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.edfimage.edfimage.delData	fabio.edfimage.edfimage-class.html#delData
+fabio.edfimage.edfimage._readHeaderBlock	fabio.edfimage.edfimage-class.html#_readHeaderBlock
+fabio.edfimage.edfimage.delHeaderKeys	fabio.edfimage.edfimage-class.html#delHeaderKeys
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.edfimage.edfimage.data	fabio.edfimage.edfimage-class.html#data
+fabio.edfimage.edfimage.appendFrame	fabio.edfimage.edfimage-class.html#appendFrame
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.edfimage.edfimage.nframes	fabio.edfimage.edfimage-class.html#nframes
+fabio.edfimage.edfimage.write	fabio.edfimage.edfimage-class.html#write
+fabio.edfimage.edfimage.getNbFrames	fabio.edfimage.edfimage-class.html#getNbFrames
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.edfimage.edfimage.setDim2	fabio.edfimage.edfimage-class.html#setDim2
+fabio.edfimage.edfimage.getCapsHeader	fabio.edfimage.edfimage-class.html#getCapsHeader
+fabio.edfimage.edfimage.capsHeader	fabio.edfimage.edfimage-class.html#capsHeader
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.edfimage.edfimage.fastReadROI	fabio.edfimage.edfimage-class.html#fastReadROI
+fabio.edfimage.edfimage.setData	fabio.edfimage.edfimage-class.html#setData
+fabio.edfimage.edfimage.delCapsHeader	fabio.edfimage.edfimage-class.html#delCapsHeader
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.edfimage.edfimage.read	fabio.edfimage.edfimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.edfimage.edfimage.getframe	fabio.edfimage.edfimage-class.html#getframe
+fabio.edfimage.edfimage.getDim1	fabio.edfimage.edfimage-class.html#getDim1
+fabio.edfimage.edfimage.getByteCode	fabio.edfimage.edfimage-class.html#getByteCode
+fabio.edfimage.edfimage.getDim2	fabio.edfimage.edfimage-class.html#getDim2
+fabio.edfimage.edfimage.setCapsHeader	fabio.edfimage.edfimage-class.html#setCapsHeader
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.edfimage.edfimage.setBpp	fabio.edfimage.edfimage-class.html#setBpp
+fabio.edfimage.edfimage.getDims	fabio.edfimage.edfimage-class.html#getDims
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.edfimage.edfimage.unpack	fabio.edfimage.edfimage-class.html#unpack
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.edfimage.edfimage.setHeaderKeys	fabio.edfimage.edfimage-class.html#setHeaderKeys
+fabio.edfimage.edfimage.getData	fabio.edfimage.edfimage-class.html#getData
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.edfimage.edfimage.dims	fabio.edfimage.edfimage-class.html#dims
+fabio.edfimage.edfimage.swap_needed	fabio.edfimage.edfimage-class.html#swap_needed
+fabio.edfimage.edfimage.getHeader	fabio.edfimage.edfimage-class.html#getHeader
+fabio.edfimage.edfimage.deleteFrame	fabio.edfimage.edfimage-class.html#deleteFrame
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.edfimage.edfimage.getHeaderKeys	fabio.edfimage.edfimage-class.html#getHeaderKeys
+fabio.edfimage.edfimage.setDim1	fabio.edfimage.edfimage-class.html#setDim1
+fabio.edfimage.edfimage.bpp	fabio.edfimage.edfimage-class.html#bpp
+fabio.edfimage.edfimage._readheader	fabio.edfimage.edfimage-class.html#_readheader
+fabio.edfimage.edfimage.getBpp	fabio.edfimage.edfimage-class.html#getBpp
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.edfimage.edfimage.setNbFrames	fabio.edfimage.edfimage-class.html#setNbFrames
+fabio.edfimage.edfimage.setHeader	fabio.edfimage.edfimage-class.html#setHeader
+fabio.fabioimage.fabioimage	fabio.fabioimage.fabioimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.fabioimage.fabioimage.write	fabio.fabioimage.fabioimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.fabioimage.fabioimage.read	fabio.fabioimage.fabioimage-class.html#read
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.fabioimage.fabioimage._readheader	fabio.fabioimage.fabioimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.fabioutils.BZ2File	fabio.fabioutils.BZ2File-class.html
+fabio.fabioutils.BZ2File.getSize	fabio.fabioutils.BZ2File-class.html#getSize
+fabio.fabioutils.BZ2File.__init__	fabio.fabioutils.BZ2File-class.html#__init__
+fabio.fabioutils.BZ2File.size	fabio.fabioutils.BZ2File-class.html#size
+fabio.fabioutils.BZ2File.setSize	fabio.fabioutils.BZ2File-class.html#setSize
+fabio.fabioutils.File	fabio.fabioutils.File-class.html
+fabio.fabioutils.File.getSize	fabio.fabioutils.File-class.html#getSize
+fabio.fabioutils.File.__init__	fabio.fabioutils.File-class.html#__init__
+fabio.fabioutils.File.size	fabio.fabioutils.File-class.html#size
+fabio.fabioutils.File.setSize	fabio.fabioutils.File-class.html#setSize
+fabio.fabioutils.FilenameObject	fabio.fabioutils.FilenameObject-class.html
+fabio.fabioutils.FilenameObject.deconstruct_filename	fabio.fabioutils.FilenameObject-class.html#deconstruct_filename
+fabio.fabioutils.FilenameObject.tostring	fabio.fabioutils.FilenameObject-class.html#tostring
+fabio.fabioutils.FilenameObject.__repr__	fabio.fabioutils.FilenameObject-class.html#__repr__
+fabio.fabioutils.FilenameObject.str	fabio.fabioutils.FilenameObject-class.html#str
+fabio.fabioutils.FilenameObject.__init__	fabio.fabioutils.FilenameObject-class.html#__init__
+fabio.fabioutils.GzipFile	fabio.fabioutils.GzipFile-class.html
+fabio.fabioutils.GzipFile.getSize	fabio.fabioutils.GzipFile-class.html#getSize
+fabio.fabioutils.GzipFile.seek	fabio.fabioutils.GzipFile-class.html#seek
+fabio.fabioutils.GzipFile.__init__	fabio.fabioutils.GzipFile-class.html#__init__
+fabio.fabioutils.GzipFile.size	fabio.fabioutils.GzipFile-class.html#size
+fabio.fabioutils.GzipFile.closed	fabio.fabioutils.GzipFile-class.html#closed
+fabio.fabioutils.GzipFile.setSize	fabio.fabioutils.GzipFile-class.html#setSize
+fabio.fabioutils.StringIO	fabio.fabioutils.StringIO-class.html
+fabio.fabioutils.StringIO.getSize	fabio.fabioutils.StringIO-class.html#getSize
+fabio.fabioutils.StringIO.setSize	fabio.fabioutils.StringIO-class.html#setSize
+fabio.fabioutils.StringIO.__init__	fabio.fabioutils.StringIO-class.html#__init__
+fabio.fabioutils.StringIO.size	fabio.fabioutils.StringIO-class.html#size
+fabio.fabioutils.UnknownCompressedFile	fabio.fabioutils.UnknownCompressedFile-class.html
+fabio.fabioutils.File.getSize	fabio.fabioutils.File-class.html#getSize
+fabio.fabioutils.UnknownCompressedFile.__init__	fabio.fabioutils.UnknownCompressedFile-class.html#__init__
+fabio.fabioutils.File.size	fabio.fabioutils.File-class.html#size
+fabio.fabioutils.File.setSize	fabio.fabioutils.File-class.html#setSize
+fabio.file_series.file_series	fabio.file_series.file_series-class.html
+fabio.file_series.file_series.jump	fabio.file_series.file_series-class.html#jump
+fabio.file_series.file_series.__init__	fabio.file_series.file_series-class.html#__init__
+fabio.file_series.file_series.previous	fabio.file_series.file_series-class.html#previous
+fabio.file_series.file_series.next_object	fabio.file_series.file_series-class.html#next_object
+fabio.file_series.file_series.last_image	fabio.file_series.file_series-class.html#last_image
+fabio.file_series.file_series.next	fabio.file_series.file_series-class.html#next
+fabio.file_series.file_series.current	fabio.file_series.file_series-class.html#current
+fabio.file_series.file_series.current_object	fabio.file_series.file_series-class.html#current_object
+fabio.file_series.file_series.first_image	fabio.file_series.file_series-class.html#first_image
+fabio.file_series.file_series.jump_object	fabio.file_series.file_series-class.html#jump_object
+fabio.file_series.file_series.next_image	fabio.file_series.file_series-class.html#next_image
+fabio.file_series.file_series.last_object	fabio.file_series.file_series-class.html#last_object
+fabio.file_series.file_series.len	fabio.file_series.file_series-class.html#len
+fabio.file_series.file_series.jump_image	fabio.file_series.file_series-class.html#jump_image
+fabio.file_series.file_series.first_object	fabio.file_series.file_series-class.html#first_object
+fabio.file_series.file_series.current_image	fabio.file_series.file_series-class.html#current_image
+fabio.file_series.file_series.previous_object	fabio.file_series.file_series-class.html#previous_object
+fabio.file_series.file_series.last	fabio.file_series.file_series-class.html#last
+fabio.file_series.file_series.previous_image	fabio.file_series.file_series-class.html#previous_image
+fabio.file_series.file_series.first	fabio.file_series.file_series-class.html#first
+fabio.file_series.filename_series	fabio.file_series.filename_series-class.html
+fabio.file_series.filename_series.next_object	fabio.file_series.filename_series-class.html#next_object
+fabio.file_series.filename_series.current	fabio.file_series.filename_series-class.html#current
+fabio.file_series.filename_series.prev_image	fabio.file_series.filename_series-class.html#prev_image
+fabio.file_series.filename_series.previous_object	fabio.file_series.filename_series-class.html#previous_object
+fabio.file_series.filename_series.next	fabio.file_series.filename_series-class.html#next
+fabio.file_series.filename_series.jump	fabio.file_series.filename_series-class.html#jump
+fabio.file_series.filename_series.current_object	fabio.file_series.filename_series-class.html#current_object
+fabio.file_series.filename_series.jump_image	fabio.file_series.filename_series-class.html#jump_image
+fabio.file_series.filename_series.jump_object	fabio.file_series.filename_series-class.html#jump_object
+fabio.file_series.filename_series.previous	fabio.file_series.filename_series-class.html#previous
+fabio.file_series.filename_series.current_image	fabio.file_series.filename_series-class.html#current_image
+fabio.file_series.filename_series.__init__	fabio.file_series.filename_series-class.html#__init__
+fabio.file_series.filename_series.next_image	fabio.file_series.filename_series-class.html#next_image
+fabio.file_series.numbered_file_series	fabio.file_series.numbered_file_series-class.html
+fabio.file_series.file_series.jump	fabio.file_series.file_series-class.html#jump
+fabio.file_series.numbered_file_series.__init__	fabio.file_series.numbered_file_series-class.html#__init__
+fabio.file_series.file_series.next_image	fabio.file_series.file_series-class.html#next_image
+fabio.file_series.file_series.next_object	fabio.file_series.file_series-class.html#next_object
+fabio.file_series.file_series.last_image	fabio.file_series.file_series-class.html#last_image
+fabio.file_series.file_series.next	fabio.file_series.file_series-class.html#next
+fabio.file_series.file_series.current	fabio.file_series.file_series-class.html#current
+fabio.file_series.file_series.current_object	fabio.file_series.file_series-class.html#current_object
+fabio.file_series.file_series.first_image	fabio.file_series.file_series-class.html#first_image
+fabio.file_series.file_series.jump_object	fabio.file_series.file_series-class.html#jump_object
+fabio.file_series.file_series.previous	fabio.file_series.file_series-class.html#previous
+fabio.file_series.file_series.last_object	fabio.file_series.file_series-class.html#last_object
+fabio.file_series.file_series.len	fabio.file_series.file_series-class.html#len
+fabio.file_series.file_series.previous_object	fabio.file_series.file_series-class.html#previous_object
+fabio.file_series.file_series.last	fabio.file_series.file_series-class.html#last
+fabio.file_series.file_series.current_image	fabio.file_series.file_series-class.html#current_image
+fabio.file_series.file_series.jump_image	fabio.file_series.file_series-class.html#jump_image
+fabio.file_series.file_series.first_object	fabio.file_series.file_series-class.html#first_object
+fabio.file_series.file_series.first	fabio.file_series.file_series-class.html#first
+fabio.file_series.file_series.previous_image	fabio.file_series.file_series-class.html#previous_image
+fabio.fit2dmaskimage.fit2dmaskimage	fabio.fit2dmaskimage.fit2dmaskimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.fit2dmaskimage.fit2dmaskimage.write	fabio.fit2dmaskimage.fit2dmaskimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.fit2dmaskimage.fit2dmaskimage.read	fabio.fit2dmaskimage.fit2dmaskimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fit2dmaskimage.fit2dmaskimage.checkData	fabio.fit2dmaskimage.fit2dmaskimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.fit2dmaskimage.fit2dmaskimage._readheader	fabio.fit2dmaskimage.fit2dmaskimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage	fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.write	fabio.fabioimage.fabioimage-class.html#write
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read	fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader	fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.kcdimage.kcdimage	fabio.kcdimage.kcdimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.__init__	fabio.fabioimage.fabioimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.write	fabio.fabioimage.fabioimage-class.html#write
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.kcdimage.kcdimage.read	fabio.kcdimage.kcdimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.kcdimage.kcdimage.checkData	fabio.kcdimage.kcdimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.kcdimage.kcdimage._readheader	fabio.kcdimage.kcdimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.mar345image.mar345image	fabio.mar345image.mar345image-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.mar345image.mar345image._writeheader	fabio.mar345image.mar345image-class.html#_writeheader
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.mar345image.mar345image.nb_overflow_pixels	fabio.mar345image.mar345image-class.html#nb_overflow_pixels
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.mar345image.mar345image.__init__	fabio.mar345image.mar345image-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.mar345image.mar345image.write	fabio.mar345image.mar345image-class.html#write
+fabio.mar345image.mar345image._high_intensity_pixel_records	fabio.mar345image.mar345image-class.html#_high_intensity_pixel_records
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.mar345image.mar345image.read	fabio.mar345image.mar345image-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.mar345image.mar345image.checkData	fabio.mar345image.mar345image-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.mar345image.mar345image._need_a_real_file	fabio.mar345image.mar345image-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.mar345image.mar345image._readheader	fabio.mar345image.mar345image-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.marccdimage.marccdimage	fabio.marccdimage.marccdimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.tifimage.tifimage._need_a_seek_to_read	fabio.tifimage.tifimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.tifimage.tifimage.__init__	fabio.tifimage.tifimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.tifimage.tifimage.write	fabio.tifimage.tifimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.tifimage.tifimage.read	fabio.tifimage.tifimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.marccdimage.marccdimage._read	fabio.marccdimage.marccdimage-class.html#_read
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.marccdimage.marccdimage._readheader	fabio.marccdimage.marccdimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.pilatusimage.pilatusimage	fabio.pilatusimage.pilatusimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.tifimage.tifimage._need_a_seek_to_read	fabio.tifimage.tifimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.tifimage.tifimage.__init__	fabio.tifimage.tifimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.tifimage.tifimage.write	fabio.tifimage.tifimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.tifimage.tifimage.read	fabio.tifimage.tifimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.pilatusimage.pilatusimage._read	fabio.pilatusimage.pilatusimage-class.html#_read
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.pilatusimage.pilatusimage._readheader	fabio.pilatusimage.pilatusimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.pnmimage.pnmimage	fabio.pnmimage.pnmimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.pnmimage.pnmimage.P7dec	fabio.pnmimage.pnmimage-class.html#P7dec
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.pnmimage.pnmimage.__init__	fabio.pnmimage.pnmimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.pnmimage.pnmimage.P2dec	fabio.pnmimage.pnmimage-class.html#P2dec
+fabio.pnmimage.pnmimage.write	fabio.pnmimage.pnmimage-class.html#write
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.pnmimage.pnmimage.P6dec	fabio.pnmimage.pnmimage-class.html#P6dec
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.pnmimage.pnmimage.P3dec	fabio.pnmimage.pnmimage-class.html#P3dec
+fabio.pnmimage.pnmimage.read	fabio.pnmimage.pnmimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.pnmimage.pnmimage.P5dec	fabio.pnmimage.pnmimage-class.html#P5dec
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.pnmimage.pnmimage.P1dec	fabio.pnmimage.pnmimage-class.html#P1dec
+fabio.pnmimage.pnmimage.checkData	fabio.pnmimage.pnmimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.pnmimage.pnmimage.P4dec	fabio.pnmimage.pnmimage-class.html#P4dec
+fabio.pnmimage.pnmimage._readheader	fabio.pnmimage.pnmimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.tifimage.Image_File_Directory	fabio.tifimage.Image_File_Directory-class.html
+fabio.tifimage.Image_File_Directory.unpack	fabio.tifimage.Image_File_Directory-class.html#unpack
+fabio.tifimage.Image_File_Directory.__init__	fabio.tifimage.Image_File_Directory-class.html#__init__
+fabio.tifimage.Image_File_Directory_entry	fabio.tifimage.Image_File_Directory_entry-class.html
+fabio.tifimage.Image_File_Directory_entry.extract_data	fabio.tifimage.Image_File_Directory_entry-class.html#extract_data
+fabio.tifimage.Image_File_Directory_entry.unpack	fabio.tifimage.Image_File_Directory_entry-class.html#unpack
+fabio.tifimage.Image_File_Directory_entry.__init__	fabio.tifimage.Image_File_Directory_entry-class.html#__init__
+fabio.tifimage.Tiff_header	fabio.tifimage.Tiff_header-class.html
+fabio.tifimage.Tiff_header.__init__	fabio.tifimage.Tiff_header-class.html#__init__
+fabio.tifimage.tifimage	fabio.tifimage.tifimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.tifimage.tifimage._need_a_seek_to_read	fabio.tifimage.tifimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.tifimage.tifimage.__init__	fabio.tifimage.tifimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.tifimage.tifimage.write	fabio.tifimage.tifimage-class.html#write
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.tifimage.tifimage.read	fabio.tifimage.tifimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.tifimage.tifimage._readheader	fabio.tifimage.tifimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+fabio.xsdimage.xsdimage	fabio.xsdimage.xsdimage-class.html
+fabio.fabioimage.fabioimage.load	fabio.fabioimage.fabioimage-class.html#load
+fabio.fabioimage.fabioimage._need_a_seek_to_read	fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read
+fabio.fabioimage.fabioimage.getheader	fabio.fabioimage.fabioimage-class.html#getheader
+fabio.fabioimage.fabioimage.resetvals	fabio.fabioimage.fabioimage-class.html#resetvals
+fabio.fabioimage.fabioimage.classname	fabio.fabioimage.fabioimage-class.html#classname
+fabio.fabioimage.fabioimage.checkHeader	fabio.fabioimage.fabioimage-class.html#checkHeader
+fabio.fabioimage.fabioimage.integrate_area	fabio.fabioimage.fabioimage-class.html#integrate_area
+fabio.xsdimage.xsdimage.__init__	fabio.xsdimage.xsdimage-class.html#__init__
+fabio.fabioimage.fabioimage.previous	fabio.fabioimage.fabioimage-class.html#previous
+fabio.fabioimage.fabioimage.getmean	fabio.fabioimage.fabioimage-class.html#getmean
+fabio.fabioimage.fabioimage.rebin	fabio.fabioimage.fabioimage-class.html#rebin
+fabio.fabioimage.fabioimage._open	fabio.fabioimage.fabioimage-class.html#_open
+fabio.fabioimage.fabioimage.next	fabio.fabioimage.fabioimage-class.html#next
+fabio.fabioimage.fabioimage.write	fabio.fabioimage.fabioimage-class.html#write
+fabio.fabioimage.fabioimage.add	fabio.fabioimage.fabioimage-class.html#add
+fabio.fabioimage.fabioimage.getstddev	fabio.fabioimage.fabioimage-class.html#getstddev
+fabio.fabioimage.fabioimage.getmin	fabio.fabioimage.fabioimage-class.html#getmin
+fabio.fabioimage.fabioimage.readROI	fabio.fabioimage.fabioimage-class.html#readROI
+fabio.fabioimage.fabioimage.getmax	fabio.fabioimage.fabioimage-class.html#getmax
+fabio.fabioimage.fabioimage.save	fabio.fabioimage.fabioimage-class.html#save
+fabio.fabioimage.fabioimage.make_slice	fabio.fabioimage.fabioimage-class.html#make_slice
+fabio.xsdimage.xsdimage.read	fabio.xsdimage.xsdimage-class.html#read
+fabio.fabioimage.fabioimage._compressed_stream	fabio.fabioimage.fabioimage-class.html#_compressed_stream
+fabio.fabioimage.fabioimage.getframe	fabio.fabioimage.fabioimage-class.html#getframe
+fabio.fabioimage.fabioimage.readheader	fabio.fabioimage.fabioimage-class.html#readheader
+fabio.fabioimage.fabioimage.checkData	fabio.fabioimage.fabioimage-class.html#checkData
+fabio.fabioimage.fabioimage.update_header	fabio.fabioimage.fabioimage-class.html#update_header
+fabio.fabioimage.fabioimage.convert	fabio.fabioimage.fabioimage-class.html#convert
+fabio.fabioimage.fabioimage._need_a_real_file	fabio.fabioimage.fabioimage-class.html#_need_a_real_file
+fabio.fabioimage.fabioimage.toPIL16	fabio.fabioimage.fabioimage-class.html#toPIL16
+fabio.xsdimage.xsdimage._readheader	fabio.xsdimage.xsdimage-class.html#_readheader
+fabio.fabioimage.fabioimage.getclassname	fabio.fabioimage.fabioimage-class.html#getclassname
+str	str-class.html
+str.upper	str-class.html#upper
+str.__getslice__	str-class.html#__getslice__
+str.__ne__	str-class.html#__ne__
+str.lstrip	str-class.html#lstrip
+str.__str__	str-class.html#__str__
+str.__getattribute__	str-class.html#__getattribute__
+str.rpartition	str-class.html#rpartition
+str.replace	str-class.html#replace
+str.isdigit	str-class.html#isdigit
+str.endswith	str-class.html#endswith
+str.splitlines	str-class.html#splitlines
+str.rfind	str-class.html#rfind
+str.strip	str-class.html#strip
+str.__rmul__	str-class.html#__rmul__
+str.__lt__	str-class.html#__lt__
+str.__getnewargs__	str-class.html#__getnewargs__
+str.__rmod__	str-class.html#__rmod__
+str.index	str-class.html#index
+str.ljust	str-class.html#ljust
+str.__new__	str-class.html#__new__
+str.isalnum	str-class.html#isalnum
+str.__contains__	str-class.html#__contains__
+str.rindex	str-class.html#rindex
+str.rsplit	str-class.html#rsplit
+str.__format__	str-class.html#__format__
+str.find	str-class.html#find
+str.decode	str-class.html#decode
+str.isalpha	str-class.html#isalpha
+str.__eq__	str-class.html#__eq__
+str.split	str-class.html#split
+str.rstrip	str-class.html#rstrip
+str.encode	str-class.html#encode
+str._formatter_parser	str-class.html#_formatter_parser
+str.translate	str-class.html#translate
+str.isspace	str-class.html#isspace
+str.__len__	str-class.html#__len__
+str.__repr__	str-class.html#__repr__
+str.startswith	str-class.html#startswith
+str.__getitem__	str-class.html#__getitem__
+str.format	str-class.html#format
+str.rjust	str-class.html#rjust
+str.swapcase	str-class.html#swapcase
+str.__hash__	str-class.html#__hash__
+str.zfill	str-class.html#zfill
+str.__add__	str-class.html#__add__
+str.__gt__	str-class.html#__gt__
+str.capitalize	str-class.html#capitalize
+str.__sizeof__	str-class.html#__sizeof__
+str.count	str-class.html#count
+str.lower	str-class.html#lower
+str.join	str-class.html#join
+str.center	str-class.html#center
+str.__mod__	str-class.html#__mod__
+str.partition	str-class.html#partition
+str.expandtabs	str-class.html#expandtabs
+str.istitle	str-class.html#istitle
+str.__le__	str-class.html#__le__
+str.__mul__	str-class.html#__mul__
+str._formatter_field_name_split	str-class.html#_formatter_field_name_split
+str.islower	str-class.html#islower
+str.title	str-class.html#title
+str.isupper	str-class.html#isupper
+str.__ge__	str-class.html#__ge__
diff --git a/epydoc/class-tree.html b/epydoc/class-tree.html
new file mode 100644
index 0000000..d0f3b3b
--- /dev/null
+++ b/epydoc/class-tree.html
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Class Hierarchy</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Trees   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%"> </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="class-tree.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Class Hierarchy</h1>
+<ul class="nomargin-top">
+    <li> <strong class="uidlink">gzip.GzipFile</strong>:
+      <em class="summary">The GzipFile class simulates most of the methods of a file object 
+        with the exception of the readinto() and truncate() methods.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.fabioutils.GzipFile-class.html">fabio.fabioutils.GzipFile</a></strong>:
+      <em class="summary">Just a wrapper forgzip.GzipFile providing the correct seek 
+        capabilities for python 2.5</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink">StringIO.StringIO</strong>:
+      <em class="summary">class StringIO([buffer])</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.fabioutils.StringIO-class.html">fabio.fabioutils.StringIO</a></strong>:
+      <em class="summary">just an interface providing the name and mode property to a 
+        StringIO</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.file_series.filename_series-class.html">fabio.file_series.filename_series</a></strong>:
+      <em class="summary">Much like the others, but created from a string filename</em>
+    </li>
+    <li> <strong class="uidlink">object</strong>:
+      <em class="summary">The most base type</em>
+    <ul>
+    <li> <strong class="uidlink">bz2.BZ2File</strong>:
+      <em class="summary">BZ2File(name [, mode='r', buffering=0, compresslevel=9]) -> file
+        object</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.fabioutils.BZ2File-class.html">fabio.fabioutils.BZ2File</a></strong>:
+      <em class="summary">Wrapper with lock</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.fabioutils.FilenameObject-class.html">fabio.fabioutils.FilenameObject</a></strong>:
+      <em class="summary">The 'meaning' of a filename ...</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.edfimage.Frame-class.html">fabio.edfimage.Frame</a></strong>:
+      <em class="summary">A class representing a single frame in an EDF file</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.tifimage.Image_File_Directory-class.html">fabio.tifimage.Image_File_Directory</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.tifimage.Image_File_Directory_entry-class.html">fabio.tifimage.Image_File_Directory_entry</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.OXDimage.Section-class.html">fabio.OXDimage.Section</a></strong>:
+      <em class="summary">Small helper class for writing binary headers</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.TiffIO.TiffIO-class.html">fabio.TiffIO.TiffIO</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.tifimage.Tiff_header-class.html">fabio.tifimage.Tiff_header</a></strong>
+    </li>
+    <li> <strong class="uidlink">basestring</strong>:
+      <em class="summary">Type basestring cannot be instantiated; it is the base for str and 
+        unicode.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="str-class.html">str</a></strong>:
+      <em class="summary">str(object) -> string</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink">dict</strong>:
+      <em class="summary">dict() -> new empty dictionary
+dict(mapping) -> new dictionary initialized from a mapping object's
+    (key, value) pairs
+dict(iterable) -> new dictionary initialized as if via:
+    d = {}
+    for k, v in iterable:
+        d[k] = v
+dict(**kwargs) -> new dictionary initialized with the name=value pairs
+    in the keyword argument list.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.cbfimage.CIF-class.html">fabio.cbfimage.CIF</a></strong>:
+      <em class="summary">This is the CIF class, it represents the CIF dictionary; and as a a
+        python dictionary thus inherits from the dict built in class.</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.datIO.fabiodata-class.html">fabio.datIO.fabiodata</a></strong>:
+      <em class="summary">A common class for dataIO in fable Contains a 2d numpy array for 
+        keeping data, and two lists (clabels and rlabels) containing labels
+        for columns and rows respectively</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.datIO.columnfile-class.html">fabio.datIO.columnfile</a></strong>:
+      <em class="summary">Concrete fabiodata class</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.fabioimage.fabioimage-class.html">fabio.fabioimage.fabioimage</a></strong>:
+      <em class="summary">A common object for images in fable Contains a numpy array (.data) 
+        and dict of meta data (.header)</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.GEimage_old.GEimage-class.html">fabio.GEimage_old.GEimage</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.GEimage.GEimage-class.html">fabio.GEimage.GEimage</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.HiPiCimage.HiPiCimage-class.html">fabio.HiPiCimage.HiPiCimage</a></strong>:
+      <em class="summary">Read HiPic images e.g.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.OXDimage.OXDimage-class.html">fabio.OXDimage.OXDimage</a></strong>:
+      <em class="summary">Oxford Diffraction Sapphire 3 images reader/writer class</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.adscimage.adscimage-class.html">fabio.adscimage.adscimage</a></strong>:
+      <em class="summary">Read an image in ADSC format (quite similar to edf?)</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.binaryimage.binaryimage-class.html">fabio.binaryimage.binaryimage</a></strong>:
+      <em class="summary">This simple library has been made for manipulating exotic/unknown 
+        files format.</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.brukerimage.brukerimage-class.html">fabio.brukerimage.brukerimage</a></strong>:
+      <em class="summary">Read and eventually write ID11 bruker (eg smart6500) images</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.bruker100image.bruker100image-class.html">fabio.bruker100image.bruker100image</a></strong>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.cbfimage.cbfimage-class.html">fabio.cbfimage.cbfimage</a></strong>:
+      <em class="summary">Read the Cif Binary File data format</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.dm3image.dm3image-class.html">fabio.dm3image.dm3image</a></strong>:
+      <em class="summary">Read and try to write the dm3 data format</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.edfimage.edfimage-class.html">fabio.edfimage.edfimage</a></strong>:
+      <em class="summary">Read and try to write the ESRF edf data format</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html">fabio.fit2dmaskimage.fit2dmaskimage</a></strong>:
+      <em class="summary">Read and try to write Andy Hammersley's mask format</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html">fabio.fit2dspreadsheetimage.fit2dspreadsheetimage</a></strong>:
+      <em class="summary">Read a fit2d ascii format</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.kcdimage.kcdimage-class.html">fabio.kcdimage.kcdimage</a></strong>:
+      <em class="summary">Read the Nonius kcd data format</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.mar345image.mar345image-class.html">fabio.mar345image.mar345image</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.pnmimage.pnmimage-class.html">fabio.pnmimage.pnmimage</a></strong>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.tifimage.tifimage-class.html">fabio.tifimage.tifimage</a></strong>:
+      <em class="summary">Images in TIF format Wraps TiffIO</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.marccdimage.marccdimage-class.html">fabio.marccdimage.marccdimage</a></strong>:
+      <em class="summary">Read in data in mar ccd format, also MarMosaic images, including 
+        header info</em>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.pilatusimage.pilatusimage-class.html">fabio.pilatusimage.pilatusimage</a></strong>:
+      <em class="summary">Read in Pilatus format, also pilatus images, including header info</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="fabio.xsdimage.xsdimage-class.html">fabio.xsdimage.xsdimage</a></strong>:
+      <em class="summary">Read the XSDataImage XML File data format</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink">file</strong>:
+      <em class="summary">file(name[, mode[, buffering]]) -> file object</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.fabioutils.File-class.html">fabio.fabioutils.File</a></strong>:
+      <em class="summary">wrapper for "file" with locking</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.fabioutils.UnknownCompressedFile-class.html">fabio.fabioutils.UnknownCompressedFile</a></strong>:
+      <em class="summary">wrapper for "File" with locking</em>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink">list</strong>:
+      <em class="summary">list() -> new empty list list(iterable) -> new list 
+        initialized from iterable's items</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.file_series.file_series-class.html">fabio.file_series.file_series</a></strong>:
+      <em class="summary">Represents a series of files to iterate
+has an idea of a current position to do next and prev</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.file_series.numbered_file_series-class.html">fabio.file_series.numbered_file_series</a></strong>:
+      <em class="summary">mydata0001.edf = "mydata" + 0001 + ".edf" 
+        mydata0002.edf = "mydata" + 0002 + ".edf" 
+        mydata0003.edf = "mydata" + 0003 + ".edf"</em>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+</ul>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Trees   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/crarr.png b/epydoc/crarr.png
new file mode 100644
index 0000000..26b43c5
Binary files /dev/null and b/epydoc/crarr.png differ
diff --git a/epydoc/epydoc.css b/epydoc/epydoc.css
new file mode 100644
index 0000000..86d4170
--- /dev/null
+++ b/epydoc/epydoc.css
@@ -0,0 +1,322 @@
+
+
+/* Epydoc CSS Stylesheet
+ *
+ * This stylesheet can be used to customize the appearance of epydoc's
+ * HTML output.
+ *
+ */
+
+/* Default Colors & Styles
+ *   - Set the default foreground & background color with 'body'; and 
+ *     link colors with 'a:link' and 'a:visited'.
+ *   - Use bold for decision list terms.
+ *   - The heading styles defined here are used for headings *within*
+ *     docstring descriptions.  All headings used by epydoc itself use
+ *     either class='epydoc' or class='toc' (CSS styles for both
+ *     defined below).
+ */
+body                        { background: #ffffff; color: #000000; }
+p                           { margin-top: 0.5em; margin-bottom: 0.5em; }
+a:link                      { color: #0000ff; }
+a:visited                   { color: #204080; }
+dt                          { font-weight: bold; }
+h1                          { font-size: +140%; font-style: italic;
+                              font-weight: bold; }
+h2                          { font-size: +125%; font-style: italic;
+                              font-weight: bold; }
+h3                          { font-size: +110%; font-style: italic;
+                              font-weight: normal; }
+code                        { font-size: 100%; }
+/* N.B.: class, not pseudoclass */
+a.link                      { font-family: monospace; }
+ 
+/* Page Header & Footer
+ *   - The standard page header consists of a navigation bar (with
+ *     pointers to standard pages such as 'home' and 'trees'); a
+ *     breadcrumbs list, which can be used to navigate to containing
+ *     classes or modules; options links, to show/hide private
+ *     variables and to show/hide frames; and a page title (using
+ *     <h1>).  The page title may be followed by a link to the
+ *     corresponding source code (using 'span.codelink').
+ *   - The footer consists of a navigation bar, a timestamp, and a
+ *     pointer to epydoc's homepage.
+ */ 
+h1.epydoc                   { margin: 0; font-size: +140%; font-weight: bold; }
+h2.epydoc                   { font-size: +130%; font-weight: bold; }
+h3.epydoc                   { font-size: +115%; font-weight: bold;
+                              margin-top: 0.2em; }
+td h3.epydoc                { font-size: +115%; font-weight: bold;
+                              margin-bottom: 0; }
+table.navbar                { background: #a0c0ff; color: #000000;
+                              border: 2px groove #c0d0d0; }
+table.navbar table          { color: #000000; }
+th.navbar-select            { background: #70b0ff;
+                              color: #000000; } 
+table.navbar a              { text-decoration: none; }  
+table.navbar a:link         { color: #0000ff; }
+table.navbar a:visited      { color: #204080; }
+span.breadcrumbs            { font-size: 85%; font-weight: bold; }
+span.options                { font-size: 70%; }
+span.codelink               { font-size: 85%; }
+td.footer                   { font-size: 85%; }
+
+/* Table Headers
+ *   - Each summary table and details section begins with a 'header'
+ *     row.  This row contains a section title (marked by
+ *     'span.table-header') as well as a show/hide private link
+ *     (marked by 'span.options', defined above).
+ *   - Summary tables that contain user-defined groups mark those
+ *     groups using 'group header' rows.
+ */
+td.table-header             { background: #70b0ff; color: #000000;
+                              border: 1px solid #608090; }
+td.table-header table       { color: #000000; }
+td.table-header table a:link      { color: #0000ff; }
+td.table-header table a:visited   { color: #204080; }
+span.table-header           { font-size: 120%; font-weight: bold; }
+th.group-header             { background: #c0e0f8; color: #000000;
+                              text-align: left; font-style: italic; 
+                              font-size: 115%; 
+                              border: 1px solid #608090; }
+
+/* Summary Tables (functions, variables, etc)
+ *   - Each object is described by a single row of the table with
+ *     two cells.  The left cell gives the object's type, and is
+ *     marked with 'code.summary-type'.  The right cell gives the
+ *     object's name and a summary description.
+ *   - CSS styles for the table's header and group headers are
+ *     defined above, under 'Table Headers'
+ */
+table.summary               { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090;
+                              margin-bottom: 0.5em; }
+td.summary                  { border: 1px solid #608090; }
+code.summary-type           { font-size: 85%; }
+table.summary a:link        { color: #0000ff; }
+table.summary a:visited     { color: #204080; }
+
+
+/* Details Tables (functions, variables, etc)
+ *   - Each object is described in its own div.
+ *   - A single-row summary table w/ table-header is used as
+ *     a header for each details section (CSS style for table-header
+ *     is defined above, under 'Table Headers').
+ */
+table.details               { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090;
+                              margin: .2em 0 0 0; }
+table.details table         { color: #000000; }
+table.details a:link        { color: #0000ff; }
+table.details a:visited     { color: #204080; }
+
+/* Fields */
+dl.fields                   { margin-left: 2em; margin-top: 1em;
+                              margin-bottom: 1em; }
+dl.fields dd ul             { margin-left: 0em; padding-left: 0em; }
+dl.fields dd ul li ul       { margin-left: 2em; padding-left: 0em; }
+div.fields                  { margin-left: 2em; }
+div.fields p                { margin-bottom: 0.5em; }
+
+/* Index tables (identifier index, term index, etc)
+ *   - link-index is used for indices containing lists of links
+ *     (namely, the identifier index & term index).
+ *   - index-where is used in link indices for the text indicating
+ *     the container/source for each link.
+ *   - metadata-index is used for indices containing metadata
+ *     extracted from fields (namely, the bug index & todo index).
+ */
+table.link-index            { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090; }
+td.link-index               { border-width: 0px; }
+table.link-index a:link     { color: #0000ff; }
+table.link-index a:visited  { color: #204080; }
+span.index-where            { font-size: 70%; }
+table.metadata-index        { border-collapse: collapse;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #608090; 
+                              margin: .2em 0 0 0; }
+td.metadata-index           { border-width: 1px; border-style: solid; }
+table.metadata-index a:link { color: #0000ff; }
+table.metadata-index a:visited  { color: #204080; }
+
+/* Function signatures
+ *   - sig* is used for the signature in the details section.
+ *   - .summary-sig* is used for the signature in the summary 
+ *     table, and when listing property accessor functions.
+ * */
+.sig-name                   { color: #006080; }
+.sig-arg                    { color: #008060; }
+.sig-default                { color: #602000; }
+.summary-sig                { font-family: monospace; }
+.summary-sig-name           { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:link
+                            { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:visited
+                            { color: #006080; font-weight: bold; }
+.summary-sig-arg            { color: #006040; }
+.summary-sig-default        { color: #501800; }
+
+/* Subclass list
+ */
+ul.subclass-list { display: inline; }
+ul.subclass-list li { display: inline; }
+
+/* To render variables, classes etc. like functions */
+table.summary .summary-name { color: #006080; font-weight: bold;
+                              font-family: monospace; }
+table.summary
+     a.summary-name:link    { color: #006080; font-weight: bold;
+                              font-family: monospace; }
+table.summary
+    a.summary-name:visited  { color: #006080; font-weight: bold;
+                              font-family: monospace; }
+
+/* Variable values
+ *   - In the 'variable details' sections, each varaible's value is
+ *     listed in a 'pre.variable' box.  The width of this box is
+ *     restricted to 80 chars; if the value's repr is longer than
+ *     this it will be wrapped, using a backslash marked with
+ *     class 'variable-linewrap'.  If the value's repr is longer
+ *     than 3 lines, the rest will be ellided; and an ellipsis
+ *     marker ('...' marked with 'variable-ellipsis') will be used.
+ *   - If the value is a string, its quote marks will be marked
+ *     with 'variable-quote'.
+ *   - If the variable is a regexp, it is syntax-highlighted using
+ *     the re* CSS classes.
+ */
+pre.variable                { padding: .5em; margin: 0;
+                              background: #dce4ec; color: #000000;
+                              border: 1px solid #708890; }
+.variable-linewrap          { color: #604000; font-weight: bold; }
+.variable-ellipsis          { color: #604000; font-weight: bold; }
+.variable-quote             { color: #604000; font-weight: bold; }
+.variable-group             { color: #008000; font-weight: bold; }
+.variable-op                { color: #604000; font-weight: bold; }
+.variable-string            { color: #006030; }
+.variable-unknown           { color: #a00000; font-weight: bold; }
+.re                         { color: #000000; }
+.re-char                    { color: #006030; }
+.re-op                      { color: #600000; }
+.re-group                   { color: #003060; }
+.re-ref                     { color: #404040; }
+
+/* Base tree
+ *   - Used by class pages to display the base class hierarchy.
+ */
+pre.base-tree               { font-size: 80%; margin: 0; }
+
+/* Frames-based table of contents headers
+ *   - Consists of two frames: one for selecting modules; and
+ *     the other listing the contents of the selected module.
+ *   - h1.toc is used for each frame's heading
+ *   - h2.toc is used for subheadings within each frame.
+ */
+h1.toc                      { text-align: center; font-size: 105%;
+                              margin: 0; font-weight: bold;
+                              padding: 0; }
+h2.toc                      { font-size: 100%; font-weight: bold; 
+                              margin: 0.5em 0 0 -0.3em; }
+
+/* Syntax Highlighting for Source Code
+ *   - doctest examples are displayed in a 'pre.py-doctest' block.
+ *     If the example is in a details table entry, then it will use
+ *     the colors specified by the 'table pre.py-doctest' line.
+ *   - Source code listings are displayed in a 'pre.py-src' block.
+ *     Each line is marked with 'span.py-line' (used to draw a line
+ *     down the left margin, separating the code from the line
+ *     numbers).  Line numbers are displayed with 'span.py-lineno'.
+ *     The expand/collapse block toggle button is displayed with
+ *     'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not
+ *     modify the font size of the text.)
+ *   - If a source code page is opened with an anchor, then the
+ *     corresponding code block will be highlighted.  The code
+ *     block's header is highlighted with 'py-highlight-hdr'; and
+ *     the code block's body is highlighted with 'py-highlight'.
+ *   - The remaining py-* classes are used to perform syntax
+ *     highlighting (py-string for string literals, py-name for names,
+ *     etc.)
+ */
+pre.py-doctest              { padding: .5em; margin: 1em;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #708890; }
+table pre.py-doctest        { background: #dce4ec;
+                              color: #000000; }
+pre.py-src                  { border: 2px solid #000000; 
+                              background: #f0f0f0; color: #000000; }
+.py-line                    { border-left: 2px solid #000000; 
+                              margin-left: .2em; padding-left: .4em; }
+.py-lineno                  { font-style: italic; font-size: 90%;
+                              padding-left: .5em; }
+a.py-toggle                 { text-decoration: none; }
+div.py-highlight-hdr        { border-top: 2px solid #000000;
+                              border-bottom: 2px solid #000000;
+                              background: #d8e8e8; }
+div.py-highlight            { border-bottom: 2px solid #000000;
+                              background: #d0e0e0; }
+.py-prompt                  { color: #005050; font-weight: bold;}
+.py-more                    { color: #005050; font-weight: bold;}
+.py-string                  { color: #006030; }
+.py-comment                 { color: #003060; }
+.py-keyword                 { color: #600000; }
+.py-output                  { color: #404040; }
+.py-name                    { color: #000050; }
+.py-name:link               { color: #000050 !important; }
+.py-name:visited            { color: #000050 !important; }
+.py-number                  { color: #005000; }
+.py-defname                 { color: #000060; font-weight: bold; }
+.py-def-name                { color: #000060; font-weight: bold; }
+.py-base-class              { color: #000060; }
+.py-param                   { color: #000060; }
+.py-docstring               { color: #006030; }
+.py-decorator               { color: #804020; }
+/* Use this if you don't want links to names underlined: */
+/*a.py-name                   { text-decoration: none; }*/
+
+/* Graphs & Diagrams
+ *   - These CSS styles are used for graphs & diagrams generated using
+ *     Graphviz dot.  'img.graph-without-title' is used for bare
+ *     diagrams (to remove the border created by making the image
+ *     clickable).
+ */
+img.graph-without-title     { border: none; }
+img.graph-with-title        { border: 1px solid #000000; }
+span.graph-title            { font-weight: bold; }
+span.graph-caption          { }
+
+/* General-purpose classes
+ *   - 'p.indent-wrapped-lines' defines a paragraph whose first line
+ *     is not indented, but whose subsequent lines are.
+ *   - The 'nomargin-top' class is used to remove the top margin (e.g.
+ *     from lists).  The 'nomargin' class is used to remove both the
+ *     top and bottom margin (but not the left or right margin --
+ *     for lists, that would cause the bullets to disappear.)
+ */
+p.indent-wrapped-lines      { padding: 0 0 0 7em; text-indent: -7em; 
+                              margin: 0; }
+.nomargin-top               { margin-top: 0; }
+.nomargin                   { margin-top: 0; margin-bottom: 0; }
+
+/* HTML Log */
+div.log-block               { padding: 0; margin: .5em 0 .5em 0;
+                              background: #e8f0f8; color: #000000;
+                              border: 1px solid #000000; }
+div.log-error               { padding: .1em .3em .1em .3em; margin: 4px;
+                              background: #ffb0b0; color: #000000;
+                              border: 1px solid #000000; }
+div.log-warning             { padding: .1em .3em .1em .3em; margin: 4px;
+                              background: #ffffb0; color: #000000;
+                              border: 1px solid #000000; }
+div.log-info               { padding: .1em .3em .1em .3em; margin: 4px;
+                              background: #b0ffb0; color: #000000;
+                              border: 1px solid #000000; }
+h2.log-hdr                  { background: #70b0ff; color: #000000;
+                              margin: 0; padding: 0em 0.5em 0em 0.5em;
+                              border-bottom: 1px solid #000000; font-size: 110%; }
+p.log                       { font-weight: bold; margin: .5em 0 .5em 0; }
+tr.opt-changed              { color: #000000; font-weight: bold; }
+tr.opt-default              { color: #606060; }
+pre.log                     { margin: 0; padding: 0; padding-left: 1em; }
diff --git a/epydoc/epydoc.js b/epydoc/epydoc.js
new file mode 100644
index 0000000..e787dbc
--- /dev/null
+++ b/epydoc/epydoc.js
@@ -0,0 +1,293 @@
+function toggle_private() {
+        // Search for any private/public links on this page.  Store
+        // their old text in "cmd," so we will know what action to
+        // take; and change their text to the opposite action.
+        var cmd = "?";
+        var elts = document.getElementsByTagName("a");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "privatelink") {
+            cmd = elts[i].innerHTML;
+            elts[i].innerHTML = ((cmd && cmd.substr(0,4)=="show")?
+                                    "hide private":"show private");
+          }
+        }
+        // Update all DIVs containing private objects.
+        var elts = document.getElementsByTagName("div");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+          }
+          else if (elts[i].className == "public") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"block":"none");
+          }
+        }
+        // Update all table rows containing private objects.  Note, we
+        // use "" instead of "block" becaue IE & firefox disagree on what
+        // this should be (block vs table-row), and "" just gives the
+        // default for both browsers.
+        var elts = document.getElementsByTagName("tr");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"");
+          }
+        }
+        // Update all list items containing private objects.
+        var elts = document.getElementsByTagName("li");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?
+                                        "none":"");
+          }
+        }
+        // Update all list items containing private objects.
+        var elts = document.getElementsByTagName("ul");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "private") {
+            elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+          }
+        }
+        // Set a cookie to remember the current option.
+        document.cookie = "EpydocPrivate="+cmd;
+      }
+function show_private() {
+        var elts = document.getElementsByTagName("a");
+        for(var i=0; i<elts.length; i++) {
+          if (elts[i].className == "privatelink") {
+            cmd = elts[i].innerHTML;
+            if (cmd && cmd.substr(0,4)=="show")
+                toggle_private();
+          }
+        }
+      }
+function getCookie(name) {
+        var dc = document.cookie;
+        var prefix = name + "=";
+        var begin = dc.indexOf("; " + prefix);
+        if (begin == -1) {
+          begin = dc.indexOf(prefix);
+          if (begin != 0) return null;
+        } else
+        { begin += 2; }
+        var end = document.cookie.indexOf(";", begin);
+        if (end == -1)
+        { end = dc.length; }
+        return unescape(dc.substring(begin + prefix.length, end));
+      }
+function setFrame(url1, url2) {
+          parent.frames[1].location.href = url1;
+          parent.frames[2].location.href = url2;
+      }
+function checkCookie() {
+        var cmd=getCookie("EpydocPrivate");
+        if (cmd && cmd.substr(0,4)!="show" && location.href.indexOf("#_") < 0)
+            toggle_private();
+      }
+function toggleCallGraph(id) {
+        var elt = document.getElementById(id);
+        if (elt.style.display == "none")
+            elt.style.display = "block";
+        else
+            elt.style.display = "none";
+      }
+function expand(id) {
+  var elt = document.getElementById(id+"-expanded");
+  if (elt) elt.style.display = "block";
+  var elt = document.getElementById(id+"-expanded-linenums");
+  if (elt) elt.style.display = "block";
+  var elt = document.getElementById(id+"-collapsed");
+  if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+  var elt = document.getElementById(id+"-collapsed-linenums");
+  if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+  var elt = document.getElementById(id+"-toggle");
+  if (elt) { elt.innerHTML = "-"; }
+}
+
+function collapse(id) {
+  var elt = document.getElementById(id+"-expanded");
+  if (elt) elt.style.display = "none";
+  var elt = document.getElementById(id+"-expanded-linenums");
+  if (elt) elt.style.display = "none";
+  var elt = document.getElementById(id+"-collapsed-linenums");
+  if (elt) { elt.innerHTML = "<br />"; elt.style.display="block"; }
+  var elt = document.getElementById(id+"-toggle");
+  if (elt) { elt.innerHTML = "+"; }
+  var elt = document.getElementById(id+"-collapsed");
+  if (elt) {
+    elt.style.display = "block";
+    
+    var indent = elt.getAttribute("indent");
+    var pad = elt.getAttribute("pad");
+    var s = "<tt class='py-lineno'>";
+    for (var i=0; i<pad.length; i++) { s += " " }
+    s += "</tt>";
+    s += "  <tt class='py-line'>";
+    for (var i=0; i<indent.length; i++) { s += " " }
+    s += "<a href='#' onclick='expand(\"" + id;
+    s += "\");return false'>...</a></tt><br />";
+    elt.innerHTML = s;
+  }
+}
+
+function toggle(id) {
+  elt = document.getElementById(id+"-toggle");
+  if (elt.innerHTML == "-")
+      collapse(id); 
+  else
+      expand(id);
+  return false;
+}
+
+function highlight(id) {
+  var elt = document.getElementById(id+"-def");
+  if (elt) elt.className = "py-highlight-hdr";
+  var elt = document.getElementById(id+"-expanded");
+  if (elt) elt.className = "py-highlight";
+  var elt = document.getElementById(id+"-collapsed");
+  if (elt) elt.className = "py-highlight";
+}
+
+function num_lines(s) {
+  var n = 1;
+  var pos = s.indexOf("\n");
+  while ( pos > 0) {
+    n += 1;
+    pos = s.indexOf("\n", pos+1);
+  }
+  return n;
+}
+
+// Collapse all blocks that mave more than `min_lines` lines.
+function collapse_all(min_lines) {
+  var elts = document.getElementsByTagName("div");
+  for (var i=0; i<elts.length; i++) {
+    var elt = elts[i];
+    var split = elt.id.indexOf("-");
+    if (split > 0)
+      if (elt.id.substring(split, elt.id.length) == "-expanded")
+        if (num_lines(elt.innerHTML) > min_lines)
+          collapse(elt.id.substring(0, split));
+  }
+}
+
+function expandto(href) {
+  var start = href.indexOf("#")+1;
+  if (start != 0 && start != href.length) {
+    if (href.substring(start, href.length) != "-") {
+      collapse_all(4);
+      pos = href.indexOf(".", start);
+      while (pos != -1) {
+        var id = href.substring(start, pos);
+        expand(id);
+        pos = href.indexOf(".", pos+1);
+      }
+      var id = href.substring(start, href.length);
+      expand(id);
+      highlight(id);
+    }
+  }
+}
+
+function kill_doclink(id) {
+  var parent = document.getElementById(id);
+  parent.removeChild(parent.childNodes.item(0));
+}
+function auto_kill_doclink(ev) {
+  if (!ev) var ev = window.event;
+  if (!this.contains(ev.toElement)) {
+    var parent = document.getElementById(this.parentID);
+    parent.removeChild(parent.childNodes.item(0));
+  }
+}
+
+function doclink(id, name, targets_id) {
+  var elt = document.getElementById(id);
+
+  // If we already opened the box, then destroy it.
+  // (This case should never occur, but leave it in just in case.)
+  if (elt.childNodes.length > 1) {
+    elt.removeChild(elt.childNodes.item(0));
+  }
+  else {
+    // The outer box: relative + inline positioning.
+    var box1 = document.createElement("div");
+    box1.style.position = "relative";
+    box1.style.display = "inline";
+    box1.style.top = 0;
+    box1.style.left = 0;
+  
+    // A shadow for fun
+    var shadow = document.createElement("div");
+    shadow.style.position = "absolute";
+    shadow.style.left = "-1.3em";
+    shadow.style.top = "-1.3em";
+    shadow.style.background = "#404040";
+    
+    // The inner box: absolute positioning.
+    var box2 = document.createElement("div");
+    box2.style.position = "relative";
+    box2.style.border = "1px solid #a0a0a0";
+    box2.style.left = "-.2em";
+    box2.style.top = "-.2em";
+    box2.style.background = "white";
+    box2.style.padding = ".3em .4em .3em .4em";
+    box2.style.fontStyle = "normal";
+    box2.onmouseout=auto_kill_doclink;
+    box2.parentID = id;
+
+    // Get the targets
+    var targets_elt = document.getElementById(targets_id);
+    var targets = targets_elt.getAttribute("targets");
+    var links = "";
+    target_list = targets.split(",");
+    for (var i=0; i<target_list.length; i++) {
+        var target = target_list[i].split("=");
+        links += "<li><a href='" + target[1] + 
+               "' style='text-decoration:none'>" +
+               target[0] + "</a></li>";
+    }
+  
+    // Put it all together.
+    elt.insertBefore(box1, elt.childNodes.item(0));
+    //box1.appendChild(box2);
+    box1.appendChild(shadow);
+    shadow.appendChild(box2);
+    box2.innerHTML =
+        "Which <b>"+name+"</b> do you want to see documentation for?" +
+        "<ul style='margin-bottom: 0;'>" +
+        links + 
+        "<li><a href='#' style='text-decoration:none' " +
+        "onclick='kill_doclink(\""+id+"\");return false;'>"+
+        "<i>None of the above</i></a></li></ul>";
+  }
+  return false;
+}
+
+function get_anchor() {
+          var href = location.href;
+          var start = href.indexOf("#")+1;
+          if ((start != 0) && (start != href.length))
+              return href.substring(start, href.length);
+      }
+function redirect_url(dottedName) {
+          // Scan through each element of the "pages" list, and check
+          // if "name" matches with any of them.
+          for (var i=0; i<pages.length; i++) {
+
+              // Each page has the form "<pagename>-m" or "<pagename>-c";
+              // extract the <pagename> portion & compare it to dottedName.
+              var pagename = pages[i].substring(0, pages[i].length-2);
+              if (pagename == dottedName.substring(0,pagename.length)) {
+
+                  // We've found a page that matches `dottedName`;
+                  // construct its URL, using leftover `dottedName`
+                  // content to form an anchor.
+                  var pagetype = pages[i].charAt(pages[i].length-1);
+                  var url = pagename + ((pagetype=="m")?"-module.html":
+                                                        "-class.html");
+                  if (dottedName.length > pagename.length)
+                      url += "#" + dottedName.substring(pagename.length+1,
+                                                        dottedName.length);
+                  return url;
+              }
+          }
+      }
diff --git a/epydoc/fabio-module.html b/epydoc/fabio-module.html
new file mode 100644
index 0000000..5f63498
--- /dev/null
+++ b/epydoc/fabio-module.html
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Home   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package fabio
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package fabio</h1><p class="nomargin-top"><span class="codelink"><a href="fabio-pysrc.html">source code</a></span></p>
+<p>FabIO module</p>
+
+<hr />
+<div class="fields">      <p><strong>Date:</strong>
+        02/04/2013
+      </p>
+      <p><strong>Author:</strong>
+        J\xc3\xa9r\xc3\xb4me Kieffer
+      </p>
+      <p><strong>Contact:</strong>
+        Jerome.Kieffer at ESRF.eu
+      </p>
+      <p><strong>Copyright:</strong>
+        European Synchrotron Radiation Facility, Grenoble, France
+      </p>
+      <p><strong>License:</strong>
+        GPLv3+
+      </p>
+</div><!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="fabio.GEimage-module.html">fabio.GEimage</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="fabio.GEimage_old-module.html">fabio.GEimage_old</a></strong>: <em class="summary">Reads the header from a GE a-Si Angio Detector</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.HiPiCimage-module.html">fabio.HiPiCimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.OXDimage-module.html">fabio.OXDimage</a></strong>: <em class="summary">Reads Oxford Diffraction Sapphire 3 images</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.TiffIO-module.html">fabio.TiffIO</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="fabio.adscimage-module.html">fabio.adscimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.binaryimage-module.html">fabio.binaryimage</a></strong>: <em class="summary">Authors: Gael Goret, Jerome Kieffer, ESRF, France Emails: 
+        gael.goret at esrf.fr, jerome.kieffer at esrf.fr</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.bruker100image-module.html">fabio.bruker100image</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="fabio.brukerimage-module.html">fabio.brukerimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.byte_offset-module.html">fabio.byte_offset</a></strong>: <em class="summary">Authors:      Jerome Kieffer, ESRF Email:        
+        jerome.kieffer at esrf.eu</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.cbfimage-module.html">fabio.cbfimage</a></strong>: <em class="summary">Authors: Jérôme Kieffer, ESRF
+         email:jerome.kieffer at esrf.fr</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.cf_io-module.html">fabio.cf_io</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="fabio.compression-module.html">fabio.compression</a></strong>: <em class="summary">Authors: Jérôme Kieffer, ESRF
+         email:jerome.kieffer at esrf.fr</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.converters-module.html">fabio.converters</a></strong>: <em class="summary">Converter module.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.datIO-module.html">fabio.datIO</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.dm3image-module.html">fabio.dm3image</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.edfimage-module.html">fabio.edfimage</a></strong>: <em class="summary">License: GPLv2+</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.fabioimage-module.html">fabio.fabioimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.fabioutils-module.html">fabio.fabioutils</a></strong>: <em class="summary">General purpose utilities functions for fabio</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.file_series-module.html">fabio.file_series</a></strong>: <em class="summary">Authors:
+........</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.fit2dmaskimage-module.html">fabio.fit2dmaskimage</a></strong>: <em class="summary">Author: Andy Hammersley, ESRF Translation into python/fabio: Jon 
+        Wright, ESRF</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.fit2dspreadsheetimage-module.html">fabio.fit2dspreadsheetimage</a></strong>: <em class="summary">Read the fit2d ascii image output...</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.kcdimage-module.html">fabio.kcdimage</a></strong>: <em class="summary">Authors: Jerome Kieffer, ESRF 
+         email:jerome.kieffer at esrf.fr</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.mar345_IO-module.html">fabio.mar345_IO</a></strong>: <em class="summary">New Cython version of mar345_io for preparing the migration to Python3</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.mar345image-module.html">fabio.mar345image</a></strong>: <em class="summary">Authors:
+........</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.marccdimage-module.html">fabio.marccdimage</a></strong>: <em class="summary">Authors:
+........</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.openimage-module.html">fabio.openimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.pilatusimage-module.html">fabio.pilatusimage</a></strong>: <em class="summary">Authors:
+........</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.pnmimage-module.html">fabio.pnmimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.readbytestream-module.html">fabio.readbytestream</a></strong>: <em class="summary">Reads a bytestream</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.tifimage-module.html">fabio.tifimage</a></strong>: <em class="summary">FabIO class for dealing with TIFF images.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.xsdimage-module.html">fabio.xsdimage</a></strong>: <em class="summary">Authors: Jérôme Kieffer, ESRF 
+         email:jerome.kieffer at esrf.fr</em>    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__status__"></a><span class="summary-name">__status__</span> = <code title="'stable'"><code class="variable-quote">'</code><code class="variable-string">stable</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="version"></a><span class="summary-name">version</span> = <code title="'0.1.2'"><code class="variable-quote">'</code><code class="variable-string">0.1.2</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Home   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio-pysrc.html b/epydoc/fabio-pysrc.html
new file mode 100644
index 0000000..b7ba0b5
--- /dev/null
+++ b/epydoc/fabio-pysrc.html
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Home   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package fabio
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio-module.html">Package fabio</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-docstring">FabIO module</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">"Jérôme Kieffer"</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-name">__contact__</tt> <tt class="py-op">=</tt> <tt class="py-string">"Jerome.Kieffer at ESRF.eu"</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> <tt class="py-string">"GPLv3+"</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-name">__copyright__</tt> <tt class="py-op">=</tt> <tt class="py-string">"European Synchrotron Radiation Facility, Grenoble, France"</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-name">__date__</tt> <tt class="py-op">=</tt> <tt class="py-string">"02/04/2013"</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.__status__=fabio-module.html#__status__,Variable fabio.tifimage.__status__=fabio.tifimage-module.html#__status__"><a title="fabio.__status__
+fabio.tifimage.__status__" class="py-name" href="#" onclick="return doclink('link-0', '__status__', 'link-0');">__status__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"stable"</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable fabio.version=fabio-module.html#version"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-1', 'version', 'link-1');">version</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"0.1.2"</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">basicConfig</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-2');">fabioimage</a></tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Module fabio.openimage=fabio.openimage-module.html,Function fabio.openimage.openimage()=fabio.openimage-module.html#openimage"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-3', 'openimage', 'link-3');">openimage</a></tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name" targets="Module fabio.fabioutils=fabio.fabioutils-module.html"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-4', 'fabioutils', 'link-4');">fabioutils</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Variable fabio.fabioutils.COMPRESSORS=fabio.fabioutils-module.html#COMPRESSORS"><a tit [...]
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line">        <tt id="link-8" class="py-name" targets="Function fabio.fabioutils.previous_filename()=fabio.fabioutils-module.html#previous_filename"><a title="fabio.fabioutils.previous_filename" class="py-name" href="#" onclick="return doclink('link-8', 'previous_filename', 'link-8');">previous_filename</a></tt><tt class="py-op">,</tt> <tt id="link-9" class="py-name" targets="Function fabio.fabioutils.next_filename()=fabio.fa [...]
+fabio.fabioutils.deconstruct_filename" class="py-name" href="#" onclick="return doclink('link-10', 'deconstruct_filename', 'link-10');">deconstruct_filename</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">        <tt id="link-11" class="py-name" targets="Function fabio.fabioutils.extract_filenumber()=fabio.fabioutils-module.html#extract_filenumber"><a title="fabio.fabioutils.extract_filenumber" class="py-name" href="#" onclick="return doclink('link-11', 'extract_filenumber', 'link-11');">extract_filenumber</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Function fabio.fabioutils.getnum()=fabio. [...]
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-comment"># Compatibility with outside world:</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-name">filename_object</tt> <tt class="py-op">=</tt> <tt id="link-14" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-14', 'FilenameObject', 'link-7');">FilenameObject</a></tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-15" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-15', 'openimage', 'link-3');">openimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-16', 'openimage', 'link-3');">openimage</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">open</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-17" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-17', 'openimage', 'link-3');">openimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-18" class="py-name" targets="Function fabio.openimage.openheader()=fabio.openimage-module.html#openheader"><a title="fabio.openimage.openheader" class="py-name" href="#" onclick="return doclink('link-18', 'openheader', 'link-18');">openheader</a></tt> <tt class="py-keyword">as</tt> <tt id="link-19" class="py-nam [...]
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Home   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.GEimage-module.html b/epydoc/fabio.GEimage-module.html
new file mode 100644
index 0000000..4af8a81
--- /dev/null
+++ b/epydoc/fabio.GEimage-module.html
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.GEimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module GEimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.GEimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module GEimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.GEimage-pysrc.html">source code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.GEimage.GEimage-class.html" class="summary-name">GEimage</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="demo"></a><span class="summary-sig-name">demo</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage-pysrc.html#demo">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("GEimage")">logging.getLogger("GEimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.GEimage-module.html#GE_HEADER_INFO" class="summary-name">GE_HEADER_INFO</a> = <code title="[('ImageFormat', 10, None),
+ ('VersionOfStandardHeader', 2, '=H'),
+ ('StandardHeaderSizeInBytes', 4, '=L'),
+ ('VersionOfUserHeader', 2, '=H'),
+ ('UserHeaderSizeInBytes', 4, '=L'),
+ ('NumberOfFrames', 2, '=H'),
+ ('NumberOfRowsInFrame', 2, '=H'),
+ ('NumberOfColsInFrame', 2, '=H'),
+..."><code class="variable-group">[</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">ImageFormat</code><code class="variable-quote">'</code><code class="variable-op">, </code>10<code class="variable-op">, </code>None<code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">VersionOfStanda</code><code class="vari [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="GE_HEADER_INFO"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">GE_HEADER_INFO</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">ImageFormat</code><code class="variable-quote">'</code><code class="variable-op">, </code>10<code class="variable-op">, </code>None<code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">VersionOfStandardHeader</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">=H</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">StandardHeaderSizeInBytes</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">=L</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">VersionOfUserHeader</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">=H</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">UserHeaderSizeInBytes</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">=L</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">NumberOfFrames</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">=H</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">NumberOfRowsInFrame</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">=H</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">NumberOfColsInFrame</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">=H</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.GEimage-pysrc.html b/epydoc/fabio.GEimage-pysrc.html
new file mode 100644
index 0000000..ae9147e
--- /dev/null
+++ b/epydoc/fabio.GEimage-pysrc.html
@@ -0,0 +1,638 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.GEimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module GEimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.GEimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.GEimage-module.html">Module fabio.GEimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt>
 </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line">
 </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment">#</tt>
 </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># Reads the header from a GE a-Si Angio Detector</tt>
 </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># Using version 8001 of the header from file:</tt>
 </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment">#     c:\adept\core\DefaultImageInfoConfig.csv</tt>
 </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment">#</tt>
 </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment">#  Antonino Miceli</tt>
 </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment">#  Thu Jan  4 13:46:31 CST 2007</tt>
 </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment">#</tt>
 </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line">
 </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># modifications by Jon Wright for style, pychecker and fabio</tt>
 </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"># </tt>
 </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line">
 </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">struct</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"GEimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-1');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-1');">fabioimage</a></tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module fabio.fabioutils=fabio.fabioutils-module.html"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-3', 'fabioutils', 'link-3');">fabioutils</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Function fabio.fabioutils.next_filename()=fabio.fabioutils-module.html#next_filename" [...]
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">
 </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable fabio.GEimage.GE_HEADER_INFO=fabio.GEimage-module.html#GE_HEADER_INFO"><a title="fabio.GEimage.GE_HEADER_INFO" class="py-name" href="#" onclick="return doclink('link-6', 'GE_HEADER_INFO', 'link-6');">GE_HEADER_INFO</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt>
 </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt class="py-comment"># Name, length in bytes, format for struct (None means string)</tt>
 </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ImageFormat'</tt><tt class="py-op">,</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'VersionOfStandardHeader'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'StandardHeaderSizeInBytes'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'VersionOfUserHeader'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'UserHeaderSizeInBytes'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'NumberOfFrames'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'NumberOfRowsInFrame'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'NumberOfColsInFrame'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ImageDepthInBits'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'AcquisitionDate'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'AcquisitionTime'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DUTID'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'Operator'</tt><tt class="py-op">,</tt> <tt class="py-number">50</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DetectorSignature'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TestSystemName'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TestStationRevision'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'CoreBundleRevision'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'AcquisitionName'</tt><tt class="py-op">,</tt> <tt class="py-number">40</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'AcquisitionParameterRevision'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'OriginalNumberOfRows'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'OriginalNumberOfColumns'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'RowNumberUpperLeftPointArchiveROI'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ColNumberUpperLeftPointArchiveROI'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'Swapped'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'Reordered'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'HorizontalFlipped'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'VerticalFlipped'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'WindowValueDesired'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'LevelValueDesired'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'AcquisitionMode'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'AcquisitionType'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'UserAcquisitionCoffFileName1'</tt><tt class="py-op">,</tt> <tt class="py-number">100</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'UserAcquisitionCoffFileName2'</tt><tt class="py-op">,</tt> <tt class="py-number">100</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FramesBeforeExpose'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FramesDuringExpose'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FramesAfterExpose'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'IntervalBetweenFrames'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ExposeTimeDelayInMicrosecs'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TimeBetweenFramesInMicrosecs'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FramesToSkipExpose'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ExposureMode'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'PrepPresetTimeInMicrosecs'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ExposePresetTimeInMicrosecs'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'AcquisitionFrameRateInFps'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FOVSelect'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ExpertMode'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetVCommon1'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetVCommon2'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetAREF'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetAREFTrim'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetSpareVoltageSource'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetCompensationVoltageSource'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetRowOffVoltage'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetRowOnVoltage'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'StoreCompensationVoltage'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'RampSelection'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TimingMode'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'Bandwidth'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ARCIntegrator'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ARCPostIntegrator'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'NumberOfRows'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'RowEnable'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'EnableStretch'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'CompEnable'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'CompStretch'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'LeftEvenTristate'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'RightOddTristate'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TestModeSelect'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'AnalogTestSource'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'VCommonSelect'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DRCColumnSum'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TestPatternFrameDelta'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TestPatternRowDelta'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TestPatternColumnDelta'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DetectorHorizontalFlip'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DetectorVerticalFlip'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DFNAutoScrubOnOff'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FiberChannelTimeOutInMicrosecs'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DFNAutoScrubDelayInMicrosecs'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'StoreAECROI'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TestPatternSaturationValue'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TestPatternSeed'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ExposureTimeInMillisecs'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FrameRateInFps'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'kVp'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'mA'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'mAs'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FocalSpotInMM'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'GeneratorType'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'StrobeIntensityInFtL'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'NDFilterSelection'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'RefRegTemp1'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'RefRegTemp2'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'RefRegTemp3'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'Humidity1'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'Humidity2'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DetectorControlTemp'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DoseValueInmR'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TargetLevelROIRow0'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TargetLevelROICol0'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TargetLevelROIRow1'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TargetLevelROICol1'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FrameNumberForTargetLevelROI'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'PercentRangeForTargetLevel'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TargetValue'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ComputedMedianValue'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'LoadZero'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'MaxLUTOut'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'MinLUTOut'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'MaxLinear'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'Reserved'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ElectronsPerCount'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ModeGain'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'TemperatureInDegC'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'LineRepaired'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'LineRepairFileName'</tt><tt class="py-op">,</tt> <tt class="py-number">100</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'CurrentLongitudinalInMM'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'CurrentTransverseInMM'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'CurrentCircularInMM'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=f'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'CurrentFilterSelection'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-string">'=L'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DisableScrubAck'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ScanModeSelect'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DetectorAppSwVersion'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DetectorNIOSVersion'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DetectorPeripheralSetVersion'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DetectorPhysicalAddress'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'PowerDown'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'InitialVoltageLevel_VCOMMON'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FinalVoltageLevel_VCOMMON'</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-string">'=d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DmrCollimatorSpotSize'</tt><tt class="py-op">,</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DmrTrack'</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'DmrFilter'</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FilterCarousel'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'Phantom'</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetEnableHighTime'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetEnableLowTime'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetCompHighTime'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetCompLowTime'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetSyncLowTime'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetConvertLowTime'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetSyncHighTime'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetEOLTime'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'SetRampOffsetTime'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FOVStartingValue'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'ColumnBinning'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'RowBinning'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'BorderColumns64'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'BorderRows64'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FETOffRows64'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FOVStartColumn128'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'FOVStartRow128'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'NumberOfColumns128'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'NumberOfRows128'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">'=H'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'VFPAquisition'</tt><tt class="py-op">,</tt> <tt class="py-number">2000</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'Comment'</tt><tt class="py-op">,</tt> <tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt>
 </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">    <tt class="py-op">]</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">
 </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage"></a><div id="GEimage-def"><a name="L181"></a><tt class="py-lineno">181</tt> <a class="py-toggle" href="#" id="GEimage-toggle" onclick="return toggle('GEimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.GEimage.GEimage-class.html">GEimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="GEimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="GEimage-expanded"><a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">
 </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">    <tt id="link-7" class="py-name" targets="Variable fabio.GEimage.GEimage._need_a_seek_to_read=fabio.GEimage.GEimage-class.html#_need_a_seek_to_read,Variable fabio.fabioimage.fabioimage._need_a_seek_to_read=fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read,Variable fabio.tifimage.tifimage._need_a_seek_to_read=fabio.tifimage.tifimage-class.html#_need_a_seek_to_read"><a title="fabio.GEimage.GEimage._need_a_s [...]
+fabio.fabioimage.fabioimage._need_a_seek_to_read
+fabio.tifimage.tifimage._need_a_seek_to_read" class="py-name" href="#" onclick="return doclink('link-7', '_need_a_seek_to_read', 'link-7');">_need_a_seek_to_read</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage._readheader"></a><div id="GEimage._readheader-def"><a name="L185"></a><tt class="py-lineno">185</tt> <a class="py-toggle" href="#" id="GEimage._readheader-toggle" onclick="return toggle('GEimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage.GEimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">infile</tt><t [...]
+</div><div id="GEimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage._readheader-expanded"><a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">        <tt class="py-docstring">""" Read a GE image header """</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">
 </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-8', 'seek', 'link-8');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">
 </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-9', 'header', 'link-9');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">nbytes</tt><tt class="py-op">,</tt> <tt class="py-name">format</tt> <tt class="py-keyword">in</tt> <tt id="link-10" class="py-name"><a title="fabio.GEimage.GE_HEADER_INFO" class="py-name" href="#" onclick="return doclink('link-10', 'GE_HEADER_INFO', 'link-6');">GE_HEADER_INFO</a></tt><tt class="py-op">:</t [...]
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">format</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-11', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt> <tt class="py-name">name</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-12" cla [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-12', 'read', 'link-12');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nbytes</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-13', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt> <tt class="py-name">name</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-14" cla [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-14', 'unpack', 'link-14');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">format</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">                                                     <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-15', 'read', 'link-12');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nbytes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage.read"></a><div id="GEimage.read-def"><a name="L198"></a><tt class="py-lineno">198</tt> <a class="py-toggle" href="#" id="GEimage.read-toggle" onclick="return toggle('GEimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage.GEimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py-param" [...]
+</div><div id="GEimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage.read-expanded"><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"><tt class="py-docstring">        Read in header into self.header and
</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"><tt class="py-docstring">        the data   into self.data
</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">frame</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">            <tt class="py-name">frame</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-16', 'header', 'link-9');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-17', 'resetvals', 'link-17');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-18', '_open', 'link-18');">_open</a></tt><tt class="py-op">(</tt><tt cla [...]
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequencefilename</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._re [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-19', '_readheader', 'link-19');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Variable fabio.edfimage.edfimage.nframes=fabio.edfimage.edfimage-class.html#nframes"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-20', 'nframes', 'link-20');">nframes</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="lin [...]
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method fabio.GEimage.GEimage._readframe()=fabio.GEimage.GEimage-class.html#_readframe"><a title="fabio.GEimage.GEimage._readframe" class="py-name" href="#" onclick="return doclink('link-22', '_readframe', 'link-22');">_readframe</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">,</tt> < [...]
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage._makeframename"></a><div id="GEimage._makeframename-def"><a name="L215"></a><tt class="py-lineno">215</tt> <a class="py-toggle" href="#" id="GEimage._makeframename-toggle" onclick="return toggle('GEimage._makeframename');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage.GEimage-class.html#_makeframename">_makeframename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op" [...]
+</div><div id="GEimage._makeframename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage._makeframename-expanded"><a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">        <tt class="py-docstring">""" The thing to be printed for the user to represent a frame inside
</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"><tt class="py-docstring">        a file """</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s$%04d"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequencefilename</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">                                   <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage._readframe"></a><div id="GEimage._readframe-def"><a name="L221"></a><tt class="py-lineno">221</tt> <a class="py-toggle" href="#" id="GEimage._readframe-toggle" onclick="return toggle('GEimage._readframe');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage.GEimage-class.html#_readframe">_readframe</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filepointer</tt><tt [...]
+</div><div id="GEimage._readframe-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage._readframe-expanded"><a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"><tt class="py-docstring">        # Load only one image from the sequence
</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-docstring">        #    Note: the first image in the sequence 0
</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-docstring">        # raises an exception if you give an invalid image
</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"><tt class="py-docstring">        # otherwise fills in self.data
</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-name">img_num</tt> <tt class="py-op">></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-23', 'nframes', 'link-20');">nframes</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">img_num</tt> <tt  [...]
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Bad image number"</tt><tt class="py-op">)</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">        <tt class="py-name">imgstart</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-24', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'StandardHeaderSizeInBytes'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> \
 </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">                   <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-25', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'UserHeaderSizeInBytes'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> \
 </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">                   <tt class="py-name">img_num</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-26', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NumberOfRowsInFrame'</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> \
 </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">                   <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-27', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NumberOfColsInFrame'</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> \
 </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">                   <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-28', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'ImageDepthInBits'</tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-number">8</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-comment"># whence = 0 means seek from start of file</tt>
 </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-name">filepointer</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-29', 'seek', 'link-8');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">imgstart</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">
 </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-30', 'bpp', 'link-30');">bpp</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name [...]
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-name">imglength</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-32', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NumberOfRowsInFrame'</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> \
 </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-33', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NumberOfColsInFrame'</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt>< [...]
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-35', 'bpp', 'link-30');">bpp</a></tt> <tt class="py-op">!=</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">            <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Using uint16 for GE but seems to be wrong"</tt><tt class="py-op">)</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">
 </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-comment"># Guessing it is always unsigned int?</tt>
 </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-36', 'data', 'link-36');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">filepointer</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-37', 'read', 'link-12');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">imglength</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-38', 'data', 'link-36');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-39', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-s [...]
 </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">                            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-40', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NumberOfColsInFrame'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-41', 'dim2', 'link-41');">dim2</a></tt> <tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-43', 'data', 'link-36');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">img_num</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name" targets="Method fabio.GEimage.GEimage._makeframename()=fabio.GEimage.GEimage-class.html#_makeframename"><a title="fabio.GEimage.GEimage._makeframename" class="py-name" href="#" onclick="return doclink('link-44', '_makeframename', 'link-44');">_makeframename</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">
 </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage.write"></a><div id="GEimage.write-def"><a name="L253"></a><tt class="py-lineno">253</tt> <a class="py-toggle" href="#" id="GEimage.write-toggle" onclick="return toggle('GEimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage.GEimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py- [...]
+</div><div id="GEimage.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage.write-expanded"><a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">        <tt class="py-docstring">""" Not yet implemented"""</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Write is not implemented"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage.getframe"></a><div id="GEimage.getframe-def"><a name="L257"></a><tt class="py-lineno">257</tt> <a class="py-toggle" href="#" id="GEimage.getframe-toggle" onclick="return toggle('GEimage.getframe');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage.GEimage-class.html#getframe">getframe</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">num</tt><tt class="py-op">)</tt [...]
+</div><div id="GEimage.getframe-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage.getframe-expanded"><a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line"><tt class="py-docstring">        Returns a frame as a new fabioimage object
</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">num</tt> <tt class="py-op"><</tt> <tt class="py-number">0</tt> <tt class="py-keyword">or</tt> <tt class="py-name">num</tt> <tt class="py-op">></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-45', 'nframes', 'link-20 [...]
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Requested frame number is out of range"</tt><tt class="py-op">)</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">        <tt class="py-comment"># Do a deep copy of the header to make a new one</tt>
 </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">        <tt class="py-name">newheader</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-46', 'header', 'link-9');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</ [...]
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">            <tt class="py-name">newheader</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-47', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">k</tt> [...]
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">        <tt class="py-name">frame</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name" targets="Module fabio.GEimage=fabio.GEimage-module.html,Class fabio.GEimage.GEimage=fabio.GEimage.GEimage-class.html,Class fabio.GEimage_old.GEimage=fabio.GEimage_old.GEimage-class.html"><a title="fabio.GEimage
+fabio.GEimage.GEimage
+fabio.GEimage_old.GEimage" class="py-name" href="#" onclick="return doclink('link-48', 'GEimage', 'link-48');">GEimage</a></tt><tt class="py-op">(</tt><tt id="link-49" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-49', 'header', 'link-9');">header</a></tt><tt class="py-op">=</tt><tt class="py-name">newheader</tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">        <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-50', 'nframes', 'link-20');">nframes</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onc [...]
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">        <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt class="py-name">sequencefilename</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequencefilename</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-52', '_open', 'link-18');">_open</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequencefilename</tt><tt class= [...]
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">        <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="fabio.GEimage.GEimage._readframe" class="py-name" href="#" onclick="return doclink('link-53', '_readframe', 'link-22');">_readframe</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">,</tt> <tt class="py-name">num</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">frame</tt> </tt>
+</div><a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage.next"></a><div id="GEimage.next-def"><a name="L275"></a><tt class="py-lineno">275</tt> <a class="py-toggle" href="#" id="GEimage.next-toggle" onclick="return toggle('GEimage.next');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage.GEimage-class.html#next">next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="GEimage.next-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage.next-expanded"><a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"><tt class="py-docstring">        Get the next image in a series as a fabio image
</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op"><</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-54', 'nframes', 'link-20');">nframes</a></tt> <tt class [...]
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method fabio.GEimage.GEimage.getframe()=fabio.GEimage.GEimage-class.html#getframe,Method fabio.edfimage.edfimage.getframe()=fabio.edfimage.edfimage-class.html#getframe,Method fabio.fabioimage.fabioimage.getframe()=fabio.fabioimage.fabioimage-class.html#getframe"><a title="fabio. [...]
+fabio.edfimage.edfimage.getframe
+fabio.fabioimage.fabioimage.getframe" class="py-name" href="#" onclick="return doclink('link-56', 'getframe', 'link-56');">getframe</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">            <tt class="py-name">newobj</tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="fabio.GEimage
+fabio.GEimage.GEimage
+fabio.GEimage_old.GEimage" class="py-name" href="#" onclick="return doclink('link-57', 'GEimage', 'link-48');">GEimage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">            <tt class="py-name">newobj</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-58', 'read', 'link-12');">read</a></tt><tt class="py-op">(</tt><tt id="link-59" class="py-name"><a title="fabio.fabioutils.next_filename" class="py-name" href="#" onclick="return doclink('link-59', 'next_filename', 'link-4');">next_filename</a></tt><tt class="py-op">(</tt>
 </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequencefilename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">newobj</tt> </tt>
+</div><a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage.previous"></a><div id="GEimage.previous-def"><a name="L287"></a><tt class="py-lineno">287</tt> <a class="py-toggle" href="#" id="GEimage.previous-toggle" onclick="return toggle('GEimage.previous');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage.GEimage-class.html#previous">previous</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="GEimage.previous-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage.previous-expanded"><a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"><tt class="py-docstring">        Get the previous image in a series as a fabio image
</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="fabio.GEimage.GEimage.getframe
+fabio.edfimage.edfimage.getframe
+fabio.fabioimage.fabioimage.getframe" class="py-name" href="#" onclick="return doclink('link-60', 'getframe', 'link-56');">getframe</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">            <tt class="py-name">newobj</tt> <tt class="py-op">=</tt> <tt id="link-61" class="py-name"><a title="fabio.GEimage
+fabio.GEimage.GEimage
+fabio.GEimage_old.GEimage" class="py-name" href="#" onclick="return doclink('link-61', 'GEimage', 'link-48');">GEimage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">            <tt class="py-name">newobj</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-62', 'read', 'link-12');">read</a></tt><tt class="py-op">(</tt><tt id="link-63" class="py-name"><a title="fabio.fabioutils.previous_filename" class="py-name" href="#" onclick="return doclink('link-63', 'previous_filename', 'link-5');">previous_filename</a></tt><tt class="py-op">(</tt>
 </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sequencefilename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">newobj</tt> </tt>
+</div></div><a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">
 </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">
 </tt>
+<a name="demo"></a><div id="demo-def"><a name="L300"></a><tt class="py-lineno">300</tt> <a class="py-toggle" href="#" id="demo-toggle" onclick="return toggle('demo');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage-module.html#demo">demo</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="demo-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="demo-expanded"><a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">
 </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-64" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-64', 'len', 'link-64');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py [...]
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">"USAGE: GE_script.py <GEaSi_raw_image_file>"</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exit</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">
 </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">    <tt class="py-name">image_file</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">
 </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-string">"init read_GEaSi_data class and load header.."</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">    <tt class="py-name">sequence1</tt> <tt class="py-op">=</tt> <tt id="link-65" class="py-name"><a title="fabio.GEimage
+fabio.GEimage.GEimage
+fabio.GEimage_old.GEimage" class="py-name" href="#" onclick="return doclink('link-65', 'GEimage', 'link-48');">GEimage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">    <tt class="py-name">sequence1</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-66', 'read', 'link-12');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">image_file</tt><tt class="py-op">)</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">
 </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-string">"TimeBetweenFramesInMicrosecs = "</tt><tt class="py-op">,</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-name">sequence1</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-67', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'TimeBetweenFramesInMicrosecs'</tt><tt class="py-op">]</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-string">"AcquisitionTime = "</tt><tt class="py-op">,</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-name">sequence1</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-68', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'AcquisitionTime'</tt><tt class="py-op">]</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">
 </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">
 </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-string">"Mean = "</tt><tt class="py-op">,</tt> <tt class="py-name">sequence1</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-69', 'data', 'link-36');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">ravel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">mean</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">
 </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">        <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">            <tt class="py-name">sequence1</tt> <tt class="py-op">=</tt> <tt class="py-name">sequence1</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name" targets="Method fabio.GEimage.GEimage.next()=fabio.GEimage.GEimage-class.html#next,Method fabio.edfimage.edfimage.next()=fabio.edfimage.edfimage-class.html#next,Method fabio.fabioimage.fabioimage.next()=fabio.fabioimage.fabioimage-class.html#next,Method fabi [...]
+fabio.edfimage.edfimage.next
+fabio.fabioimage.fabioimage.next
+fabio.file_series.file_series.next
+fabio.file_series.filename_series.next" class="py-name" href="#" onclick="return doclink('link-70', 'next', 'link-70');">next</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-name">sequence1</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">,</tt> <tt class="py-name">sequence1</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-71', 'data', 'link-36');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">ravel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">mean</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> \
 </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">                  <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">:</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">ex</tt> </tt>
+</div><a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">
 </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">
 </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">
 </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">
 </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">    <tt id="link-72" class="py-name" targets="Function fabio.GEimage.demo()=fabio.GEimage-module.html#demo"><a title="fabio.GEimage.demo" class="py-name" href="#" onclick="return doclink('link-72', 'demo', 'link-72');">demo</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.GEimage.GEimage-class.html b/epydoc/fabio.GEimage.GEimage-class.html
new file mode 100644
index 0000000..b9904f8
--- /dev/null
+++ b/epydoc/fabio.GEimage.GEimage-class.html
@@ -0,0 +1,565 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.GEimage.GEimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.GEimage-module.html">Module GEimage</a> ::
+        Class GEimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.GEimage.GEimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class GEimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">GEimage</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.GEimage.GEimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Read a GE image header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.GEimage.GEimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in header into self.header and the data   into self.data</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_makeframename"></a><span class="summary-sig-name">_makeframename</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      The thing to be printed for the user to represent a frame inside a 
+      file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage._makeframename">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_readframe"></a><span class="summary-sig-name">_readframe</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filepointer</span>,
+        <span class="summary-sig-arg">img_num</span>)</span><br />
+      # Load only one image from the sequence #    Note: the first image in
+      the sequence 0 # raises an exception if you give an invalid image # 
+      otherwise fills in self.data</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage._readframe">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.GEimage.GEimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">force_type</span>=<span class="summary-sig-default"><type 'numpy.uint16'></span>)</span><br />
+      Not yet implemented</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.GEimage.GEimage-class.html#getframe" class="summary-sig-name">getframe</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num</span>)</span><br />
+      Returns a frame as a new fabioimage object</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.getframe">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.GEimage.GEimage-class.html#next" class="summary-sig-name">next</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Get the next image in a series as a fabio image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.next">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.GEimage.GEimage-class.html#previous" class="summary-sig-name">previous</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Get the previous image in a series as a fabio image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.previous">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="_need_a_seek_to_read"></a><span class="summary-name">_need_a_seek_to_read</span> = <code title="True">True</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read a GE image header</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read in header into self.header and the data   into self.data</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">force_type</span>=<span class="sig-default"><type 'numpy.uint16'></span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Not yet implemented</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="getframe"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">getframe</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">num</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.getframe">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Returns a frame as a new fabioimage object</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#getframe">fabioimage.fabioimage.getframe</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="next"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">next</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.next">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Get the next image in a series as a fabio image</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#next">fabioimage.fabioimage.next</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="previous"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">previous</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.GEimage-pysrc.html#GEimage.previous">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Get the previous image in a series as a fabio image</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#previous">fabioimage.fabioimage.previous</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.GEimage_old-module.html b/epydoc/fabio.GEimage_old-module.html
new file mode 100644
index 0000000..5638d7f
--- /dev/null
+++ b/epydoc/fabio.GEimage_old-module.html
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.GEimage_old</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module GEimage_old
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.GEimage_old-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module GEimage_old</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.GEimage_old-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Reads the header from a GE a-Si Angio Detector
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:erik.knudsen at risoe.dk
+
+        + Jon Wright, ESRF
+
+        The header information has been taken from the script read_GEaSi_data.py
+        by
+        Antonino Miceli
+        Thu Jan  4 13:46:31 CST 2007
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.GEimage_old.GEimage-class.html" class="summary-name">GEimage</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.GEimage_old-pysrc.html b/epydoc/fabio.GEimage_old-pysrc.html
new file mode 100644
index 0000000..c359ea8
--- /dev/null
+++ b/epydoc/fabio.GEimage_old-pysrc.html
@@ -0,0 +1,1056 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.GEimage_old</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module GEimage_old
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.GEimage_old-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.GEimage_old-module.html">Module fabio.GEimage_old</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line">
 </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt>
 </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line">
 </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">"""
</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">Reads the header from a GE a-Si Angio Detector
</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Henning O. Sorensen & Erik Knudsen
</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">         Center for Fundamental Research: Metal Structures in Four Dimensions
</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">         Risoe National Laboratory
</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">         Frederiksborgvej 399
</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring">         DK-4000 Roskilde
</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">         email:erik.knudsen at risoe.dk
</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">        + Jon Wright, ESRF
</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring">        The header information has been taken from the script read_GEaSi_data.py
</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring">        by
</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring">        Antonino Miceli
</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring">        Thu Jan  4 13:46:31 CST 2007
</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">
 </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-0', 'fabioimage', 'link-0');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-0');">fabioimage</a></tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage"></a><div id="GEimage-def"><a name="L26"></a><tt class="py-lineno"> 26</tt> <a class="py-toggle" href="#" id="GEimage-toggle" onclick="return toggle('GEimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.GEimage_old.GEimage-class.html">GEimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="GEimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="GEimage-expanded"><a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">
 </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage._readheader"></a><div id="GEimage._readheader-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="GEimage._readheader-toggle" onclick="return toggle('GEimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage_old.GEimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">infile</tt [...]
+</div><div id="GEimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage._readheader-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">
 </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-2', 'seek', 'link-2');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">
 </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-comment"># ADEPT</tt>
 </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ImageFormat</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-3', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">
 </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-comment"># USHORT --> "=H"</tt>
 </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-comment"># ULONG  --> "=L"</tt>
 </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-comment">#   = means byte order is native</tt>
 </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">
 </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-4', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'HeaderVersion'</tt><tt class="py-op">]</tt> <tt clas [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-5', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-6', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'HeaderSizeInBytes'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name" [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-7', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-8', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'UserHeaderVersion'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-nam [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-9', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-10', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'UserHeaderSizeInBytes'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-11', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">
 </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-12', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NumberOfFrames'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-13', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-14', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NumberOfRowsInFrame'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-15', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-16', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NumberOfColsInFrame'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-17', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-18', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'BitsPerPixel'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name"> [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-19', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">
 </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-20', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'AcquisitionDate'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-21" [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-21', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-22', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'AcquisitionTime'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-23" [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-23', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">
 </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">DUTID</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-24', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">
 </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-25', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Operator'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-26" class= [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-26', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">50</tt><tt class="py-op">)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">
 </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-27', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'DetectorSignature'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-2 [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-28', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-29', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'TestSystemName'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-30"  [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-30', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-31', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'TestStationRevision'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-32', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-33', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'CoreBundleRevision'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link- [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-34', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-35', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'AcquisitionName'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-36" [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-36', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">40</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-37', 'header', 'link-4');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'AcquisitionParameterRevision'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-38', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">
 </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-comment">#         self.OriginalNumberOfRows = infile.read(2)</tt>
 </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-comment">#         self.OriginalNumberOfRows = struct.unpack("=H",self.OriginalNumberOfRows)[0]</tt>
 </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">
 </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-comment">#         self.OriginalNumberOfColumns = infile.read(2)</tt>
 </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-comment">#         self.OriginalNumberOfColumns = struct.unpack("=H",self.OriginalNumberOfColumns)[0]</tt>
 </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">
 </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-comment">#         self.RowNumberUpperLeftPointArchiveROI = infile.read(2)</tt>
 </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-comment">#         self.RowNumberUpperLeftPointArchiveROI = struct.unpack("=H",self.RowNumberUpperLeftPointArchiveROI)[0]</tt>
 </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">
 </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"><tt class="py-comment">#         self.ColNumberUpperLeftPointArchiveROI = infile.read(2)</tt>
 </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-comment">#         self.ColNumberUpperLeftPointArchiveROI = struct.unpack("=H",self.ColNumberUpperLeftPointArchiveROI)[0]</tt>
 </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">
 </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-comment">#         self.Swapped = infile.read(2) </tt>
 </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-comment">#         self.Swapped = struct.unpack("=H",self.Swapped)[0]</tt>
 </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">
 </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt class="py-comment">#         self.Reordered = infile.read(2) </tt>
 </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt class="py-comment">#         self.Reordered = struct.unpack("=H",self.Reordered)[0]</tt>
 </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">
 </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"><tt class="py-comment">#         self.HorizontalFlipped = infile.read(2) </tt>
 </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt class="py-comment">#         self.HorizontalFlipped = struct.unpack("=H",self.HorizontalFlipped)[0]</tt>
 </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">
 </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-comment">#         self.VerticalFlipped = infile.read(2) </tt>
 </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-comment">#         self.VerticalFlipped = struct.unpack("=H",self.VerticalFlipped)[0]</tt>
 </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">
 </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-comment">#         self.WindowValueDesired = infile.read(2) </tt>
 </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-comment">#         self.WindowValueDesired = struct.unpack("=H",self.WindowValueDesired)[0]</tt>
 </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">
 </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-comment">#         self.LevelValueDesired = infile.read(2) </tt>
 </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-comment">#         self.LevelValueDesired = struct.unpack("=H",self.LevelValueDesired)[0]</tt>
 </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">
 </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-comment">#         self.AcquisitionMode = infile.read(2) </tt>
 </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-comment">#         self.AcquisitionMode = struct.unpack("=H",self.AcquisitionMode)[0]</tt>
 </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">
 </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-comment">#         self.AcquisitionType = infile.read(2) </tt>
 </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-comment">#         self.AcquisitionType = struct.unpack("=H",self.AcquisitionType)[0]</tt>
 </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">
 </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-comment">#         self.UserAcquisitionCoffFileName1 = infile.read(100) </tt>
 </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-comment">#         self.UserAcquisitionCoffFileName2 = infile.read(100) </tt>
 </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">
 </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-comment">#         self.FramesBeforeExpose = infile.read(2) </tt>
 </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-comment">#         self.FramesBeforeExpose = struct.unpack("=H",self.FramesBeforeExpose)[0]</tt>
 </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">
 </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-comment">#         self.FramesDuringExpose = infile.read(2)  </tt>
 </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-comment">#         self.FramesDuringExpose = struct.unpack("=H",self.FramesDuringExpose)[0]</tt>
 </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">
 </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-comment">#         self.FramesAfterExpose = infile.read(2) </tt>
 </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-comment">#         self.FramesAfterExpose = struct.unpack("=H",self.FramesAfterExpose)[0]</tt>
 </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">
 </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-comment">#         self.IntervalBetweenFrames = infile.read(2) </tt>
 </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-comment">#         self.IntervalBetweenFrames = struct.unpack("=H",self.IntervalBetweenFrames)[0]</tt>
 </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">
 </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExposeTimeDelayInMicrosecs = infile.read(8) </tt>
 </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExposeTimeDelayInMicrosecs = struct.unpack("=d",self.ExposeTimeDelayInMicrosecs)[0]</tt>
 </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">
 </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-comment">#         self.TimeBetweenFramesInMicrosecs = infile.read(8) </tt>
 </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-comment">#         self.TimeBetweenFramesInMicrosecs = struct.unpack("=d",self.TimeBetweenFramesInMicrosecs)[0]</tt>
 </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">
 </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-comment">#         self.FramesToSkipExpose = infile.read(2) </tt>
 </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-comment">#         self.FramesToSkipExpose = struct.unpack("=H",self.FramesToSkipExpose)[0]</tt>
 </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">
 </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-comment">#         # Rad --> ExposureMode = 1</tt>
 </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExposureMode = infile.read(2) </tt>
 </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExposureMode = struct.unpack("=H",self.ExposureMode)[0]</tt>
 </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">
 </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-comment">#         self.PrepPresetTimeInMicrosecs = infile.read(8) </tt>
 </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-comment">#         self.PrepPresetTimeInMicrosecs = struct.unpack("=d",self.PrepPresetTimeInMicrosecs)[0]</tt>
 </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">
 </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExposePresetTimeInMicrosecs = infile.read(8) </tt>
 </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExposePresetTimeInMicrosecs = struct.unpack("=d",self.ExposePresetTimeInMicrosecs)[0]</tt>
 </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">
 </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-comment">#         self.AcquisitionFrameRateInFps = infile.read(4) </tt>
 </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-comment">#         self.AcquisitionFrameRateInFps = struct.unpack("=f",self.AcquisitionFrameRateInFps)[0]</tt>
 </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">
 </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-comment">#         self.FOVSelect = infile.read(2)</tt>
 </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-comment">#         self.FOVSelect = struct.unpack("=H",self.FOVSelect)[0]</tt>
 </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">
 </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExpertMode = infile.read(2)</tt>
 </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExpertMode = struct.unpack("=H",self.ExpertMode)[0]</tt>
 </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">
 </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetVCommon1 = infile.read(8)</tt>
 </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetVCommon1 = struct.unpack("=d",self.SetVCommon1)[0]</tt>
 </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">
 </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetVCommon2 = infile.read(8)</tt>
 </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetVCommon2 = struct.unpack("=d",self.SetVCommon2)[0]</tt>
 </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">
 </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetAREF = infile.read(8)</tt>
 </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetAREF = struct.unpack("=d",self.SetAREF)[0]</tt>
 </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">
 </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetAREFTrim = infile.read(4)</tt>
 </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetAREFTrim = struct.unpack("=L",self.SetAREFTrim)[0]</tt>
 </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">
 </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetSpareVoltageSource = infile.read(8)</tt>
 </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetSpareVoltageSource = struct.unpack("=d",self.SetSpareVoltageSource)[0]</tt>
 </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">
 </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetCompensationVoltageSource = infile.read(8)</tt>
 </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetCompensationVoltageSource = struct.unpack("=d",self.SetCompensationVoltageSource)[0]</tt>
 </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">
 </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetRowOffVoltage = infile.read(8)</tt>
 </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetRowOffVoltage = struct.unpack("=d",self.SetRowOffVoltage)[0]</tt>
 </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">
 </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetRowOnVoltage = infile.read(8)</tt>
 </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetRowOnVoltage = struct.unpack("=d",self.SetRowOnVoltage)[0]</tt>
 </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">
 </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"><tt class="py-comment">#         self.StoreCompensationVoltage = infile.read(4)</tt>
 </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-comment">#         self.StoreCompensationVoltage = struct.unpack("=L",self.StoreCompensationVoltage)[0]</tt>
 </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">
 </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-comment">#         self.RampSelection = infile.read(2)</tt>
 </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-comment">#         self.RampSelection = struct.unpack("=H",self.RampSelection)[0]</tt>
 </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">
 </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-comment">#         self.TimingMode = infile.read(2)</tt>
 </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-comment">#         self.TimingMode = struct.unpack("=H",self.TimingMode)[0]</tt>
 </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">
 </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-comment">#         self.Bandwidth = infile.read(2)</tt>
 </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-comment">#         self.Bandwidth = struct.unpack("=H",self.Bandwidth)[0]</tt>
 </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">
 </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-comment">#         self.ARCIntegrator = infile.read(2)</tt>
 </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-comment">#         self.ARCIntegrator = struct.unpack("=H",self.ARCIntegrator)[0]</tt>
 </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">
 </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"><tt class="py-comment">#         self.ARCPostIntegrator = infile.read(2)</tt>
 </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"><tt class="py-comment">#         self.ARCPostIntegrator = struct.unpack("=H",self.ARCPostIntegrator)[0]</tt>
 </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">
 </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"><tt class="py-comment">#         self.NumberOfRows = infile.read(4)</tt>
 </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-comment">#         self.NumberOfRows = struct.unpack("=L",self.NumberOfRows)[0]</tt>
 </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">
 </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-comment">#         self.RowEnable = infile.read(2)</tt>
 </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-comment">#         self.RowEnable = struct.unpack("=H",self.RowEnable)[0]</tt>
 </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">
 </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-comment">#         self.EnableStretch = infile.read(2)</tt>
 </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-comment">#         self.EnableStretch = struct.unpack("=H",self.EnableStretch)[0]</tt>
 </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">
 </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt class="py-comment">#         self.CompEnable = infile.read(2)</tt>
 </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"><tt class="py-comment">#         self.CompEnable = struct.unpack("=H",self.CompEnable)[0]</tt>
 </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">
 </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"><tt class="py-comment">#         self.CompStretch = infile.read(2)</tt>
 </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"><tt class="py-comment">#         self.CompStretch = struct.unpack("=H",self.CompStretch)[0]</tt>
 </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">
 </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"><tt class="py-comment">#         self.LeftEvenTristate = infile.read(2)</tt>
 </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"><tt class="py-comment">#         self.LeftEvenTristate = struct.unpack("=H",self.LeftEvenTristate)[0]</tt>
 </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">
 </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"><tt class="py-comment">#         self.RightOddTristate = infile.read(2)</tt>
 </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"><tt class="py-comment">#         self.RightOddTristate = struct.unpack("=H",self.RightOddTristate)[0]</tt>
 </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">
 </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestModeSelect = infile.read(4)</tt>
 </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestModeSelect = struct.unpack("=L",self.TestModeSelect)[0]</tt>
 </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">
 </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line"><tt class="py-comment">#         self.AnalogTestSource = infile.read(4)</tt>
 </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"><tt class="py-comment">#         self.AnalogTestSource = struct.unpack("=L",self.AnalogTestSource)[0]</tt>
 </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">
 </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line"><tt class="py-comment">#         self.VCommonSelect = infile.read(4)</tt>
 </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"><tt class="py-comment">#         self.VCommonSelect = struct.unpack("=L",self.VCommonSelect)[0]</tt>
 </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">
 </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"><tt class="py-comment">#         self.DRCColumnSum = infile.read(4)</tt>
 </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"><tt class="py-comment">#         self.DRCColumnSum = struct.unpack("=L",self.DRCColumnSum)[0]</tt>
 </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">
 </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternFrameDelta = infile.read(4)</tt>
 </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternFrameDelta = struct.unpack("=L",self.TestPatternFrameDelta)[0]</tt>
 </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">
 </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternRowDelta = infile.read(4)</tt>
 </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternRowDelta = struct.unpack("=L",self.TestPatternRowDelta)[0]</tt>
 </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">
 </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternColumnDelta = infile.read(4)</tt>
 </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternColumnDelta = struct.unpack("=L",self.TestPatternColumnDelta)[0]</tt>
 </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">
 </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorHorizontalFlip = infile.read(2)</tt>
 </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorHorizontalFlip = struct.unpack("=H",self.DetectorHorizontalFlip)[0]</tt>
 </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">
 </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorVerticalFlip = infile.read(2)</tt>
 </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorVerticalFlip = struct.unpack("=H",self.DetectorVerticalFlip)[0]</tt>
 </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">
 </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"><tt class="py-comment">#         self.DFNAutoScrubOnOff = infile.read(2)</tt>
 </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"><tt class="py-comment">#         self.DFNAutoScrubOnOff = struct.unpack("=H",self.DFNAutoScrubOnOff)[0]</tt>
 </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">
 </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line"><tt class="py-comment">#         self.FiberChannelTimeOutInMicrosecs = infile.read(4)</tt>
 </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"><tt class="py-comment">#         self.FiberChannelTimeOutInMicrosecs = struct.unpack("=L",self.FiberChannelTimeOutInMicrosecs)[0]</tt>
 </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">
 </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"><tt class="py-comment">#         self.DFNAutoScrubDelayInMicrosecs = infile.read(4)</tt>
 </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-comment">#         self.DFNAutoScrubDelayInMicrosecs = struct.unpack("=L",self.DFNAutoScrubDelayInMicrosecs)[0]</tt>
 </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">
 </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-comment">#         self.StoreAECROI = infile.read(2)</tt>
 </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-comment">#         self.StoreAECROI = struct.unpack("=H",self.StoreAECROI)[0]</tt>
 </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">
 </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternSaturationValue = infile.read(2)</tt>
 </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternSaturationValue = struct.unpack("=H",self.TestPatternSaturationValue)[0]</tt>
 </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">
 </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternSeed = infile.read(4)</tt>
 </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"><tt class="py-comment">#         self.TestPatternSeed = struct.unpack("=L",self.TestPatternSeed)[0]</tt>
 </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">
 </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExposureTimeInMillisecs = infile.read(4) </tt>
 </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line"><tt class="py-comment">#         self.ExposureTimeInMillisecs = struct.unpack("=f",self.ExposureTimeInMillisecs)[0]</tt>
 </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">
 </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line"><tt class="py-comment">#         self.FrameRateInFps = infile.read(4) </tt>
 </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line"><tt class="py-comment">#         self.FrameRateInFps = struct.unpack("=f",self.FrameRateInFps)[0]</tt>
 </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">
 </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line"><tt class="py-comment">#         self.kVp = infile.read(4) </tt>
 </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line"><tt class="py-comment">#         self.kVp = struct.unpack("=f",self.kVp)[0]</tt>
 </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">
 </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"><tt class="py-comment">#         self.mA = infile.read(4) </tt>
 </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-comment">#         self.mA = struct.unpack("=f",self.mA)[0]</tt>
 </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">
 </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"><tt class="py-comment">#         self.mAs = infile.read(4) </tt>
 </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-comment">#         self.mAs = struct.unpack("=f",self.mAs)[0]</tt>
 </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">
 </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"><tt class="py-comment">#         self.FocalSpotInMM = infile.read(4) </tt>
 </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"><tt class="py-comment">#         self.FocalSpotInMM = struct.unpack("=f",self.FocalSpotInMM)[0]</tt>
 </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">
 </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"><tt class="py-comment">#         self.GeneratorType = infile.read(20)</tt>
 </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">
 </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line"><tt class="py-comment">#         self.StrobeIntensityInFtL = infile.read(4) </tt>
 </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line"><tt class="py-comment">#         self.StrobeIntensityInFtL = struct.unpack("=f",self.StrobeIntensityInFtL)[0]</tt>
 </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">
 </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"><tt class="py-comment">#         self.NDFilterSelection = infile.read(2) </tt>
 </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line"><tt class="py-comment">#         self.NDFilterSelection = struct.unpack("=H",self.NDFilterSelection)[0]</tt>
 </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">
 </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"><tt class="py-comment">#         self.RefRegTemp1 = infile.read(8) </tt>
 </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line"><tt class="py-comment">#         self.RefRegTemp1 = struct.unpack("=d",self.RefRegTemp1)[0]</tt>
 </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">
 </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line"><tt class="py-comment">#         self.RefRegTemp2 = infile.read(8) </tt>
 </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line"><tt class="py-comment">#         self.RefRegTemp2 = struct.unpack("=d",self.RefRegTemp2)[0]</tt>
 </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">
 </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line"><tt class="py-comment">#         self.RefRegTemp3 = infile.read(8) </tt>
 </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line"><tt class="py-comment">#         self.RefRegTemp3 = struct.unpack("=d",self.RefRegTemp3)[0]</tt>
 </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">
 </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line"><tt class="py-comment">#         self.Humidity1 = infile.read(4) </tt>
 </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"><tt class="py-comment">#         self.Humidity1 = struct.unpack("=f",self.Humidity1)[0]</tt>
 </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">
 </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"><tt class="py-comment">#         self.Humidity2 = infile.read(4) </tt>
 </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line"><tt class="py-comment">#         self.Humidity2 = struct.unpack("=f",self.Humidity2)[0]</tt>
 </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">
 </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorControlTemp = infile.read(8) </tt>
 </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorControlTemp = struct.unpack("=d",self.DetectorControlTemp)[0]</tt>
 </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">
 </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line"><tt class="py-comment">#         self.DoseValueInmR = infile.read(8) </tt>
 </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"><tt class="py-comment">#         self.DoseValueInmR = struct.unpack("=d",self.DoseValueInmR)[0]</tt>
 </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">
 </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetLevelROIRow0 = infile.read(2)</tt>
 </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetLevelROIRow0 = struct.unpack("=H",self.TargetLevelROIRow0)[0]</tt>
 </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">
 </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetLevelROICol0 = infile.read(2)</tt>
 </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetLevelROICol0 = struct.unpack("=H",self.TargetLevelROICol0)[0]</tt>
 </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">
 </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetLevelROIRow1 = infile.read(2)</tt>
 </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetLevelROIRow1 = struct.unpack("=H",self.TargetLevelROIRow1)[0]</tt>
 </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">
 </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetLevelROICol1 = infile.read(2)</tt>
 </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetLevelROICol1 = struct.unpack("=H",self.TargetLevelROICol1)[0]</tt>
 </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">
 </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line"><tt class="py-comment">#         self.FrameNumberForTargetLevelROI = infile.read(2)</tt>
 </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line"><tt class="py-comment">#         self.FrameNumberForTargetLevelROI = struct.unpack("=H",self.FrameNumberForTargetLevelROI)[0]</tt>
 </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">
 </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line"><tt class="py-comment">#         self.PercentRangeForTargetLevel = infile.read(2)</tt>
 </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line"><tt class="py-comment">#         self.PercentRangeForTargetLevel = struct.unpack("=H",self.PercentRangeForTargetLevel)[0]</tt>
 </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">
 </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetValue = infile.read(2)</tt>
 </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line"><tt class="py-comment">#         self.TargetValue = struct.unpack("=H",self.TargetValue)[0]</tt>
 </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">
 </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line"><tt class="py-comment">#         self.ComputedMedianValue = infile.read(2)</tt>
 </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line"><tt class="py-comment">#         self.ComputedMedianValue = struct.unpack("=H",self.ComputedMedianValue)[0]</tt>
 </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">
 </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"><tt class="py-comment">#         self.LoadZero = infile.read(2)</tt>
 </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line"><tt class="py-comment">#         self.LoadZero = struct.unpack("=H",self.LoadZero)[0]</tt>
 </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">
 </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line"><tt class="py-comment">#         self.MaxLUTOut = infile.read(2)</tt>
 </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line"><tt class="py-comment">#         self.MaxLUTOut = struct.unpack("=H",self.MaxLUTOut)[0]</tt>
 </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">
 </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line"><tt class="py-comment">#         self.MinLUTOut = infile.read(2)</tt>
 </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line"><tt class="py-comment">#         self.MinLUTOut = struct.unpack("=H",self.MinLUTOut)[0]</tt>
 </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">
 </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"><tt class="py-comment">#         self.MaxLinear = infile.read(2)</tt>
 </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"><tt class="py-comment">#         self.MaxLinear = struct.unpack("=H",self.MaxLinear)[0]</tt>
 </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">
 </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line"><tt class="py-comment">#         self.Reserved = infile.read(2)</tt>
 </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"><tt class="py-comment">#         self.Reserved = struct.unpack("=H",self.Reserved)[0]</tt>
 </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">
 </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line"><tt class="py-comment">#         self.ElectronsPerCount = infile.read(2)</tt>
 </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line"><tt class="py-comment">#         self.ElectronsPerCount = struct.unpack("=H",self.ElectronsPerCount)[0]</tt>
 </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">
 </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"><tt class="py-comment">#         self.ModeGain = infile.read(2)</tt>
 </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line"><tt class="py-comment">#         self.ModeGain = struct.unpack("=H",self.ModeGain)[0]</tt>
 </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">
 </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line"><tt class="py-comment">#         self.TemperatureInDegC = infile.read(8)</tt>
 </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line"><tt class="py-comment">#         self.TemperatureInDegC = struct.unpack("=d",self.TemperatureInDegC)[0]</tt>
 </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">
 </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line"><tt class="py-comment">#         self.LineRepaired = infile.read(2)</tt>
 </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line"><tt class="py-comment">#         self.LineRepaired = struct.unpack("=H",self.LineRepaired)[0]</tt>
 </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line">
 </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line"><tt class="py-comment">#         self.LineRepairFileName = infile.read(100)</tt>
 </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">
 </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line"><tt class="py-comment">#         self.CurrentLongitudinalInMM = infile.read(4)</tt>
 </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"><tt class="py-comment">#         self.CurrentLongitudinalInMM = struct.unpack("=f",self.CurrentLongitudinalInMM)[0]</tt>
 </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">
 </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"><tt class="py-comment">#         self.CurrentTransverseInMM = infile.read(4)</tt>
 </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line"><tt class="py-comment">#         self.CurrentTransverseInMM = struct.unpack("=f",self.CurrentTransverseInMM)[0]</tt>
 </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">
 </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line"><tt class="py-comment">#         self.CurrentCircularInMM = infile.read(4)</tt>
 </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line"><tt class="py-comment">#         self.CurrentCircularInMM = struct.unpack("=f",self.CurrentCircularInMM)[0]</tt>
 </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">
 </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line"><tt class="py-comment">#         self.CurrentFilterSelection = infile.read(4)</tt>
 </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line"><tt class="py-comment">#         self.CurrentFilterSelection = struct.unpack("=L",self.CurrentFilterSelection)[0]</tt>
 </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">
 </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line"><tt class="py-comment">#         self.DisableScrubAck = infile.read(2)</tt>
 </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line"><tt class="py-comment">#         self.DisableScrubAck = struct.unpack("=H",self.DisableScrubAck)[0]</tt>
 </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">
 </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line"><tt class="py-comment">#         self.ScanModeSelect = infile.read(2)</tt>
 </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line"><tt class="py-comment">#         self.ScanModeSelect = struct.unpack("=H",self.ScanModeSelect)[0]</tt>
 </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line">
 </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorAppSwVersion = infile.read(20)   </tt>
 </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">
 </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorNIOSVersion = infile.read(20)    </tt>
 </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">
 </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorPeripheralSetVersion = infile.read(20)   </tt>
 </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">
 </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line"><tt class="py-comment">#         self.DetectorPhysicalAddress   = infile.read(20)</tt>
 </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">
 </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line"><tt class="py-comment">#         self.PowerDown = infile.read(2)</tt>
 </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line"><tt class="py-comment">#         self.PowerDown = struct.unpack("=H",self.PowerDown)[0]</tt>
 </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">
 </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line"><tt class="py-comment">#         self.InitialVoltageLevel_VCOMMON = infile.read(8)</tt>
 </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line"><tt class="py-comment">#         self.InitialVoltageLevel_VCOMMON = struct.unpack("=d",self.InitialVoltageLevel_VCOMMON)[0]</tt>
 </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line">
 </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line"><tt class="py-comment">#         self.FinalVoltageLevel_VCOMMON = infile.read(8)</tt>
 </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line"><tt class="py-comment">#         self.FinalVoltageLevel_VCOMMON = struct.unpack("=d",self.FinalVoltageLevel_VCOMMON)[0]</tt>
 </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">
 </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line"><tt class="py-comment">#         self.DmrCollimatorSpotSize     = infile.read(10)</tt>
 </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">
 </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line"><tt class="py-comment">#         self.DmrTrack  = infile.read(5)</tt>
 </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line">
 </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line"><tt class="py-comment">#         self.DmrFilter         = infile.read(5)</tt>
 </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line">
 </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line"><tt class="py-comment">#         self.FilterCarousel = infile.read(2)</tt>
 </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line"><tt class="py-comment">#         self.FilterCarousel = struct.unpack("=H",self.FilterCarousel)[0]</tt>
 </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">
 </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line"><tt class="py-comment">#         self.Phantom   = infile.read(20)</tt>
 </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">
 </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetEnableHighTime = infile.read(2)</tt>
 </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetEnableHighTime = struct.unpack("=H",self.SetEnableHighTime)[0]</tt>
 </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line">
 </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetEnableLowTime = infile.read(2)</tt>
 </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetEnableLowTime = struct.unpack("=H",self.SetEnableLowTime)[0]</tt>
 </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line">
 </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetCompHighTime = infile.read(2)</tt>
 </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetCompHighTime = struct.unpack("=H",self.SetCompHighTime)[0]</tt>
 </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line">
 </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetCompLowTime = infile.read(2)</tt>
 </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetCompLowTime = struct.unpack("=H",self.SetCompLowTime)[0]</tt>
 </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line">
 </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetSyncLowTime = infile.read(2)</tt>
 </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetSyncLowTime = struct.unpack("=H",self.SetSyncLowTime)[0]</tt>
 </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line">
 </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetConvertLowTime = infile.read(2)</tt>
 </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetConvertLowTime = struct.unpack("=H",self.SetConvertLowTime)[0]</tt>
 </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line">
 </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetSyncHighTime = infile.read(2)</tt>
 </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetSyncHighTime = struct.unpack("=H",self.SetSyncHighTime)[0]</tt>
 </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line">
 </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetEOLTime = infile.read(2)</tt>
 </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetEOLTime = struct.unpack("=H",self.SetEOLTime)[0]</tt>
 </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">
 </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetRampOffsetTime = infile.read(2)</tt>
 </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line"><tt class="py-comment">#         self.SetRampOffsetTime = struct.unpack("=H",self.SetRampOffsetTime)[0]</tt>
 </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line">
 </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line"><tt class="py-comment">#         self.FOVStartingValue = infile.read(2)</tt>
 </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt>  <tt class="py-line"><tt class="py-comment">#         self.FOVStartingValue = struct.unpack("=H",self.FOVStartingValue)[0]</tt>
 </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">
 </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line"><tt class="py-comment">#         self.ColumnBinning = infile.read(2)</tt>
 </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line"><tt class="py-comment">#         self.ColumnBinning = struct.unpack("=H",self.ColumnBinning)[0]</tt>
 </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line">
 </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line"><tt class="py-comment">#         self.RowBinning = infile.read(2)</tt>
 </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line"><tt class="py-comment">#         self.RowBinning = struct.unpack("=H",self.RowBinning)[0]</tt>
 </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line">
 </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line"><tt class="py-comment">#         self.BorderColumns64 = infile.read(2)</tt>
 </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt>  <tt class="py-line"><tt class="py-comment">#         self.BorderColumns64 = struct.unpack("=H",self.BorderColumns64)[0]</tt>
 </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt>  <tt class="py-line">
 </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt>  <tt class="py-line"><tt class="py-comment">#         self.BorderRows64 = infile.read(2)</tt>
 </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt>  <tt class="py-line"><tt class="py-comment">#         self.BorderRows64 = struct.unpack("=H",self.BorderRows64)[0]</tt>
 </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt>  <tt class="py-line">
 </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt>  <tt class="py-line"><tt class="py-comment">#         self.FETOffRows64 = infile.read(2)</tt>
 </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt>  <tt class="py-line"><tt class="py-comment">#         self.FETOffRows64 = struct.unpack("=H",self.FETOffRows64)[0]</tt>
 </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt>  <tt class="py-line">
 </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line"><tt class="py-comment">#         self.FOVStartColumn128 = infile.read(2)</tt>
 </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt>  <tt class="py-line"><tt class="py-comment">#         self.FOVStartColumn128 = struct.unpack("=H",self.FOVStartColumn128)[0]</tt>
 </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt>  <tt class="py-line">
 </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt>  <tt class="py-line"><tt class="py-comment">#         self.FOVStartRow128 = infile.read(2)</tt>
 </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt>  <tt class="py-line"><tt class="py-comment">#         self.FOVStartRow128 = struct.unpack("=H",self.FOVStartRow128)[0]</tt>
 </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt>  <tt class="py-line">
 </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt>  <tt class="py-line"><tt class="py-comment">#         self.NumberOfColumns128 = infile.read(2)</tt>
 </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt>  <tt class="py-line"><tt class="py-comment">#         self.NumberOfColumns128 = struct.unpack("=H",self.NumberOfColumns128)[0]</tt>
 </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line">
 </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line"><tt class="py-comment">#         self.NumberOfRows128 = infile.read(2)</tt>
 </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line"><tt class="py-comment">#         self.NumberOfRows128 = struct.unpack("=H",self.NumberOfRows128)[0]</tt>
 </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line">
 </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt>  <tt class="py-line"><tt class="py-comment">#         self.VFPAquisition     = infile.read(2000)</tt>
 </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line">
 </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line"><tt class="py-comment">#         self.Comment   = infile.read(200)</tt>
 </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line">
 </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line">
 </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt>  <tt class="py-line">
 </tt>
+<a name="GEimage.read"></a><div id="GEimage.read-def"><a name="L460"></a><tt class="py-lineno">460</tt> <a class="py-toggle" href="#" id="GEimage.read-toggle" onclick="return toggle('GEimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.GEimage_old.GEimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py-pa [...]
+</div><div id="GEimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GEimage.read-expanded"><a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line"><tt class="py-docstring">        Read in header into self.header and
</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line"><tt class="py-docstring">            the data   into self.data
</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-39', 'header', 'link-4');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-40', 'resetvals', 'link-40');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-41', '_open', 'link-41');">_open</a></tt><tt class="py-op">(</tt><tt cla [...]
+<a name="L468"></a><tt class="py-lineno">468</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._re [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-42', '_readheader', 'link-42');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line">        <tt class="py-comment"># Compute image size</tt>
 </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-43', 'dim1', 'link-43');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">sel [...]
+<a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-45', 'dim2', 'link-45');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">sel [...]
+<a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-47', 'bpp', 'link-47');">bpp</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt [...]
+<a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"GE  file"</tt><tt class="py-op">,</tt> <tt id="link-49" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-49', 'str', 'link-49');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \
 </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line">                                <tt class="py-string">"is corrupt, cannot read it"</tt><tt class="py-op">)</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line">
 </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt>  <tt class="py-line">        <tt class="py-comment"># More than one image can be saved in a GE file</tt>
 </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line">        <tt class="py-comment"># Will only load the first one</tt>
 </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line">
 </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line">
 </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line">        <tt class="py-comment"># Go to the beginning of the file</tt>
 </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-50', 'seek', 'link-2');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-51', 'seek', 'link-2');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="retu [...]
+<a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line">
 </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line">        <tt class="py-name">ReadBytes</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-54', 'dim1', 'link-43');">dim1</a></tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="fabio.edfim [...]
+<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-57', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">ReadBytes</tt><tt class="py-op">)</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line">
 </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line">
 </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-58', 'data', 'link-58');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" on [...]
+<a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt id="link-61" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-61', 'len', 'link-61');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt  [...]
+<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> \
 </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line">              <tt class="py-string">'Size spec in GE-header does not match size of image data field'</tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line">
 </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-64', 'bytecode', 'link-64');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-65', 'data', 'link-58');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div></div><a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.GEimage_old.GEimage-class.html b/epydoc/fabio.GEimage_old.GEimage-class.html
new file mode 100644
index 0000000..4a90ff2
--- /dev/null
+++ b/epydoc/fabio.GEimage_old.GEimage-class.html
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.GEimage_old.GEimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.GEimage_old-module.html">Module GEimage_old</a> ::
+        Class GEimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.GEimage_old.GEimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class GEimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.GEimage_old-pysrc.html#GEimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">GEimage</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.GEimage_old.GEimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Must be overridden in classes</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage_old-pysrc.html#GEimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.GEimage_old.GEimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in header into self.header and...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.GEimage_old-pysrc.html#GEimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#write">write</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.GEimage_old-pysrc.html#GEimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Must be overridden in classes</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.GEimage_old-pysrc.html#GEimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Read in header into self.header and
+    the data   into self.data
+
+</pre>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.HiPiCimage-module.html b/epydoc/fabio.HiPiCimage-module.html
new file mode 100644
index 0000000..97f07fb
--- /dev/null
+++ b/epydoc/fabio.HiPiCimage-module.html
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.HiPiCimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module HiPiCimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.HiPiCimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module HiPiCimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.HiPiCimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:erik.knudsen at risoe.dk
+
+        + Jon Wright, ESRF
+
+Information about the file format from Masakatzu Kobayashi is highly appreciated
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.HiPiCimage.HiPiCimage-class.html" class="summary-name">HiPiCimage</a><br />
+      Read HiPic images e.g.
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("HiPiCimage")">logging.getLogger("HiPiCimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.HiPiCimage-pysrc.html b/epydoc/fabio.HiPiCimage-pysrc.html
new file mode 100644
index 0000000..7142a55
--- /dev/null
+++ b/epydoc/fabio.HiPiCimage-pysrc.html
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.HiPiCimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module HiPiCimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.HiPiCimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.HiPiCimage-module.html">Module fabio.HiPiCimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">         Center for Fundamental Research: Metal Structures in Four Dimensions</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">         Risoe National Laboratory</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">         Frederiksborgvej 399</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">         DK-4000 Roskilde</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">         email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring">        + Jon Wright, ESRF</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-docstring">Information about the file format from Masakatzu Kobayashi is highly appreciated</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"HiPiCimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-1');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-1');">fabioimage</a></tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"> </tt>
+<a name="HiPiCimage"></a><div id="HiPiCimage-def"><a name="L20"></a><tt class="py-lineno"> 20</tt> <a class="py-toggle" href="#" id="HiPiCimage-toggle" onclick="return toggle('HiPiCimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.HiPiCimage.HiPiCimage-class.html">HiPiCimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HiPiCimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="HiPiCimage-expanded"><a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">    <tt class="py-docstring">""" Read HiPic images e.g. collected with a Hamamatsu CCD camera"""</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"> </tt>
+<a name="HiPiCimage._readheader"></a><div id="HiPiCimage._readheader-def"><a name="L24"></a><tt class="py-lineno"> 24</tt> <a class="py-toggle" href="#" id="HiPiCimage._readheader-toggle" onclick="return toggle('HiPiCimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.HiPiCimage.HiPiCimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-par [...]
+</div><div id="HiPiCimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HiPiCimage._readheader-expanded"><a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-docstring">        Read in a header from an already open file</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-name">Image_tag</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXD [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-3', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-name">Image_tag</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">        <tt class="py-name">Comment_len</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-4', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">        <tt class="py-name">Dim_1</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-5', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-name">Dim_2</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-6', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">        <tt class="py-name">Dim_1_offset</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-7', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-name">Dim_2_offset</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-8', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-name">HeaderType</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-9', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-name">Dump</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-10', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">50</tt><tt class="py-op">)</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-name">Comment</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-11', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">Comment_len</tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-12', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Image_tag'</tt><tt class="py-op">]</tt> <tt class [...]
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-13', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Dim_1'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">Dim_1</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-14', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Dim_2'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">Dim_2</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-15', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Dim_1_offset'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">Dim_1_offset</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-16', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Dim_2_offset'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">Dim_2_offset</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-comment">#self.header['Comment'] = Comment</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">Image_tag</tt> <tt class="py-op">!=</tt> <tt class="py-string">'IM'</tt> <tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">            <tt class="py-comment"># This does not look like an HiPic file</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">            <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"no opening.  Corrupt header of HiPic file "</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                            <tt id="link-17" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-17', 'str', 'link-17');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt class="py-name">Comment_split</tt> <tt class="py-op">=</tt> <tt class="py-name">Comment</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">Comment</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'\x00'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><t [...]
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">topcomment</tt> <tt class="py-keyword">in</tt> <tt class="py-name">Comment_split</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">            <tt class="py-name">topsplit</tt> <tt class="py-op">=</tt> <tt class="py-name">topcomment</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">topsplit</tt><tt class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-string">'='</tt> <tt class="py-keyword">in</tt> <tt class="py-name">line</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">                    <tt id="link-18" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-18', 'key', 'link-18');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class= [...]
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">                    <tt class="py-comment"># Users cannot type in significant whitespace</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">                    <tt id="link-19" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-19', 'key', 'link-18');">key</a></tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-20', 'key', 'link-18');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt cla [...]
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Variable fabio.edfimage.edfimage.header_keys=fabio.edfimage.edfimage-class.html#header_keys"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-21', 'header_keys', 'link-21');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt  [...]
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-23', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-24" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-24', 'key', 'link-18');">key</a> [...]
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-25', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-26" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-26', 'key', 'link-18');">key</a> [...]
+</div><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
+<a name="HiPiCimage.read"></a><div id="HiPiCimage.read-def"><a name="L62"></a><tt class="py-lineno"> 62</tt> <a class="py-toggle" href="#" id="HiPiCimage.read-toggle" onclick="return toggle('HiPiCimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.HiPiCimage.HiPiCimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt [...]
+</div><div id="HiPiCimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HiPiCimage.read-expanded"><a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-docstring">        Read in header into self.header and</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-docstring">            the data   into self.data</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-27', 'header', 'link-12');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-28', 'resetvals', 'link-28');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-29', '_open', 'link-29');">_open</a></tt><tt class="py-op">(</tt><tt clas [...]
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._rea [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-30', '_readheader', 'link-30');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-comment"># Compute image size</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-31', 'dim1', 'link-31');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self [...]
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-33', 'dim2', 'link-33');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self [...]
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"HiPic file"</tt><tt class="py-op">,</tt> <tt id="link-35" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-35', 'str', 'link-17');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                                <tt class="py-string">"is corrupt, cannot read it"</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt id="link-36" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-36', 'bytecode', 'link-36');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-37', 'bpp', 'link-37');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-38" class="py-name" targets="Method fabio.file_series.file_series.len()= [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-39', 'bytecode', 'link-36');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-40', 'tostring', 'link-40');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-comment"># Read image data</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-41', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-42', 'dim1', 'link-31');">dim1</a></tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="fab [...]
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-comment">#now read the data into the array</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-45', 'data', 'link-45');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">                <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">,</tt> <tt id="link-46" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-46', 'bytecode', 'link-36');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">                <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-47', 'dim2', 'link-33');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-n [...]
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt id="link-49" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-49', 'len', 'link-38');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-50', 'bytecode', 'link-36');">bytecode</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-51', 'bpp', 'link-37');">bpp</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a  [...]
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> \ </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">              <tt class="py-string">'Size spec in HiPic-header does not match size of image data field'</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-54', 'bytecode', 'link-36');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-55', 'data', 'link-45');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-comment"># Sometimes these files are not saved as 12 bit,</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-comment"># But as 16 bit after bg subtraction - which results </tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-comment"># negative values saved as 16bit. Therefore values higher </tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-comment"># 4095 is really negative values</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-56', 'data', 'link-45');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">4095</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">            <tt class="py-name">gt12bit</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-57', 'data', 'link-45');">data</a></tt> <tt class="py-op">></tt> <tt class="py-number">4095</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-58', 'data', 'link-45');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-59', 'data', 'link-45');">data</a></tt> <tt class="py-op">-</tt> <tt class="py-name">gt12bit</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">16</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-comment"># ensure the PIL image is reset</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div></div><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.HiPiCimage.HiPiCimage-class.html b/epydoc/fabio.HiPiCimage.HiPiCimage-class.html
new file mode 100644
index 0000000..e204ac8
--- /dev/null
+++ b/epydoc/fabio.HiPiCimage.HiPiCimage-class.html
@@ -0,0 +1,369 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.HiPiCimage.HiPiCimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.HiPiCimage-module.html">Module HiPiCimage</a> ::
+        Class HiPiCimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.HiPiCimage.HiPiCimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class HiPiCimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.HiPiCimage-pysrc.html#HiPiCimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">HiPiCimage</strong>
+</pre>
+
+<hr />
+<p>Read HiPic images e.g. collected with a Hamamatsu CCD camera</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.HiPiCimage.HiPiCimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Read in a header from an already open file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.HiPiCimage-pysrc.html#HiPiCimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.HiPiCimage.HiPiCimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in header into self.header and...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.HiPiCimage-pysrc.html#HiPiCimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#write">write</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.HiPiCimage-pysrc.html#HiPiCimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read in a header from an already open file</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.HiPiCimage-pysrc.html#HiPiCimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Read in header into self.header and
+    the data   into self.data
+
+</pre>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.OXDimage-module.html b/epydoc/fabio.OXDimage-module.html
new file mode 100644
index 0000000..91b9a67
--- /dev/null
+++ b/epydoc/fabio.OXDimage-module.html
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.OXDimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module OXDimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.OXDimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module OXDimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.OXDimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Reads Oxford Diffraction Sapphire 3 images
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright, Jérôme Kieffer & Gaël Goret:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.OXDimage.OXDimage-class.html" class="summary-name">OXDimage</a><br />
+      Oxford Diffraction Sapphire 3 images reader/writer class
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.OXDimage.Section-class.html" class="summary-name">Section</a><br />
+      Small helper class for writing binary headers
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.OXDimage-module.html#__doc__" class="summary-name">__doc__</a> = <code title=""""
+Reads Oxford Diffraction Sapphire 3 images
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions\
+;
+...">"<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("OXDimage")">logging.getLogger("OXDimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="rad2deg"></a><span class="summary-name">rad2deg</span> = <code title="<ufunc 'rad2deg'>"><ufunc 'rad2deg'></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="deg2rad"></a><span class="summary-name">deg2rad</span> = <code title="<ufunc 'deg2rad'>"><ufunc 'deg2rad'></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.OXDimage-module.html#DETECTOR_TYPES" class="summary-name">DETECTOR_TYPES</a> = <code title="{0: 'Sapphire/KM4CCD (1x1: 0.06mm, 2x2: 0.12mm)',
+ 1: 'Sapphire2-Kodak (1x1: 0.06mm, 2x2: 0.12mm)',
+ 2: 'Sapphire3-Kodak (1x1: 0.03mm, 2x2: 0.06mm, 4x4: 0.12mm)',
+ 3: 'Onyx-Kodak (1x1: 0.06mm, 2x2: 0.12mm, 4x4: 0.24mm)',
+ 4: 'Unknown Oxford diffraction detector'}"><code class="variable-group">{</code>0<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Sapphire/KM4CCD (1x1: 0.06mm, 2x2: 0.12m</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.OXDimage-module.html#DEFAULT_HEADERS" class="summary-name">DEFAULT_HEADERS</a> = <code title="{'ASCII Section size in Byte': 256,
+ 'Compression': 'TY1',
+ 'General Section size in Byte': 512,
+ 'Header Size In Bytes': 5120,
+ 'Header Version': 'OD SAPPHIRE  3.0',
+ 'History Section in Byte': 2048,
+ 'KM4 Section size in Byte': 1024,
+ 'NSUPPLEMENT': 0,
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">ASCII Section size in Byte</code><code class="variable-quote">'</code><code class="variable-op">: </code>256<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Compres</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__doc__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">__doc__</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+"""
+Reads Oxford Diffraction Sapphire 3 images
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+;
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="DETECTOR_TYPES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">DETECTOR_TYPES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>0<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Sapphire/KM4CCD (1x1: 0.06mm, 2x2: 0.12mm)</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Sapphire2-Kodak (1x1: 0.06mm, 2x2: 0.12mm)</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Sapphire3-Kodak (1x1: 0.03mm, 2x2: 0.06mm, 4x4: 0.12mm)</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Onyx-Kodak (1x1: 0.06mm, 2x2: 0.12mm, 4x4: 0.24mm)</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown Oxford diffraction detector</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="DEFAULT_HEADERS"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">DEFAULT_HEADERS</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">ASCII Section size in Byte</code><code class="variable-quote">'</code><code class="variable-op">: </code>256<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Compression</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">TY1</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">General Section size in Byte</code><code class="variable-quote">'</code><code class="variable-op">: </code>512<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Header Size In Bytes</code><code class="variable-quote">'</code><code class="variable-op">: </code>5120<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Header Version</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">OD SAPPHIRE  3.0</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">History Section in Byte</code><code class="variable-quote">'</code><code class="variable-op">: </code>2048<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">KM4 Section size in Byte</code><code class="variable-quote">'</code><code class="variable-op">: </code>1024<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">NSUPPLEMENT</code><code class="variable-quote">'</code><code class="variable-op">: </code>0<code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.OXDimage-pysrc.html b/epydoc/fabio.OXDimage-pysrc.html
new file mode 100644
index 0000000..11c5af8
--- /dev/null
+++ b/epydoc/fabio.OXDimage-pysrc.html
@@ -0,0 +1,1056 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.OXDimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module OXDimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.OXDimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.OXDimage-module.html">Module fabio.OXDimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt>
 </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8</tt>
 </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line">
 </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">with_statement</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.OXDimage.__doc__=fabio.OXDimage-module.html#__doc__,Variable fabio.binaryimage.__doc__=fabio.binaryimage-module.html#__doc__,Variable fabio.mar345image.__doc__=fabio.mar345image-module.html#__doc__"><a title="fabio.OXDimage.__doc__
+fabio.binaryimage.__doc__
+fabio.mar345image.__doc__" class="py-name" href="#" onclick="return doclink('link-0', '__doc__', 'link-0');">__doc__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"""
</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-string">Reads Oxford Diffraction Sapphire 3 images
</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-string">
</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-string">Authors:
</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-string">........
</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-string">* Henning O. Sorensen & Erik Knudsen:
</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-string">  Center for Fundamental Research: Metal Structures in Four Dimensions;
</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-string">  Risoe National Laboratory;
</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-string">  Frederiksborgvej 399;
</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-string">  DK-4000 Roskilde;
</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-string">  email:erik.knudsen at risoe.dk
</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-string">* Jon Wright, Jérôme Kieffer & Gaël Goret:
</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-string">  European Synchrotron Radiation Facility;
</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-string">  Grenoble (France)
</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-string">
</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-string">"""</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">
 </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt><tt class="py-op">,</tt> <tt class="py-name">struct</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-1', 'logger', 'link-1');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"OXDimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-2');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-3', 'fabioimage', 'link-2');">fabioimage</a></tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name" targets="Module fabio.compression=fabio.compression-module.html"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-4', 'compression', 'link-4');">compression</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Function fabio.compression.decTY1()=fabio.compression-module.html#decTY1"><a tit [...]
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">
 </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">numpy</tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Variable fabio.OXDimage.rad2deg=fabio.OXDimage-module.html#rad2deg"><a title="fabio.OXDimage.rad2deg" class="py-name" href="#" onclick="return doclink('link-7', 'rad2deg', 'link-7');">rad2deg</a></tt><tt class="py-op">,</tt> <tt id="link-8" class="py-name" targets="Variable fab [...]
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> <tt class="py-comment">#naive implementation for very old numpy (v1.0.1 on MacOSX from Risoe)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">    <tt id="link-9" class="py-name"><a title="fabio.OXDimage.rad2deg" class="py-name" href="#" onclick="return doclink('link-9', 'rad2deg', 'link-7');">rad2deg</a></tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-number">180.0</tt> <tt class="py-op">*</tt> <tt class="py-name">x</tt> <tt class="py-op">/</tt> <tt class="py-name">numpy</tt><t [...]
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">    <tt id="link-10" class="py-name"><a title="fabio.OXDimage.deg2rad" class="py-name" href="#" onclick="return doclink('link-10', 'deg2rad', 'link-8');">deg2rad</a></tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt> <tt class="py-op">*</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">pi</tt> <tt cl [...]
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">
 </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt id="link-11" class="py-name" targets="Variable fabio.OXDimage.DETECTOR_TYPES=fabio.OXDimage-module.html#DETECTOR_TYPES"><a title="fabio.OXDimage.DETECTOR_TYPES" class="py-name" href="#" onclick="return doclink('link-11', 'DETECTOR_TYPES', 'link-11');">DETECTOR_TYPES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-number">0</tt><tt class="py-op">:</tt> <tt class="py-string">'Sapphire/KM4CCD ( [...]
 </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-number">1</tt><tt class="py-op">:</tt> <tt class="py-string">'Sapphire2-Kodak (1x1: 0.06mm, 2x2: 0.12mm)'</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-number">2</tt><tt class="py-op">:</tt> <tt class="py-string">'Sapphire3-Kodak (1x1: 0.03mm, 2x2: 0.06mm, 4x4: 0.12mm)'</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-number">3</tt><tt class="py-op">:</tt> <tt class="py-string">'Onyx-Kodak (1x1: 0.06mm, 2x2: 0.12mm, 4x4: 0.24mm)'</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-number">4</tt><tt class="py-op">:</tt> <tt class="py-string">'Unknown Oxford diffraction detector'</tt><tt class="py-op">}</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">
 </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt id="link-12" class="py-name" targets="Variable fabio.OXDimage.DEFAULT_HEADERS=fabio.OXDimage-module.html#DEFAULT_HEADERS"><a title="fabio.OXDimage.DEFAULT_HEADERS" class="py-name" href="#" onclick="return doclink('link-12', 'DEFAULT_HEADERS', 'link-12');">DEFAULT_HEADERS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'Header Version'</tt><tt class="py-op">:</tt>  <tt class="py-strin [...]
 </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">                   <tt class="py-string">'Compression'</tt><tt class="py-op">:</tt> <tt class="py-string">"TY1"</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">                   <tt class="py-string">'Header Size In Bytes'</tt><tt class="py-op">:</tt> <tt class="py-number">5120</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">                   <tt class="py-string">"ASCII Section size in Byte"</tt><tt class="py-op">:</tt> <tt class="py-number">256</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">                   <tt class="py-string">"General Section size in Byte"</tt><tt class="py-op">:</tt> <tt class="py-number">512</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">                   <tt class="py-string">"Special Section size in Byte"</tt><tt class="py-op">:</tt> <tt class="py-number">768</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                   <tt class="py-string">"KM4 Section size in Byte"</tt><tt class="py-op">:</tt> <tt class="py-number">1024</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">                   <tt class="py-string">"Statistic Section in Byte"</tt><tt class="py-op">:</tt> <tt class="py-number">512</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                   <tt class="py-string">"History Section in Byte"</tt><tt class="py-op">:</tt> <tt class="py-number">2048</tt><tt class="py-op">,</tt>
 </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">                   <tt class="py-string">'NSUPPLEMENT'</tt><tt class="py-op">:</tt><tt class="py-number">0</tt>
 </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">                   <tt class="py-op">}</tt> </tt>
+<a name="OXDimage"></a><div id="OXDimage-def"><a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">
 </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="OXDimage-toggle" onclick="return toggle('OXDimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.OXDimage.OXDimage-class.html">OXDimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OXDimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="OXDimage-expanded"><a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">    <tt class="py-docstring">"""
</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-docstring">    Oxford Diffraction Sapphire 3 images reader/writer class
</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="OXDimage._readheader"></a><div id="OXDimage._readheader-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="OXDimage._readheader-toggle" onclick="return toggle('OXDimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.OXDimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">infile</ [...]
+</div><div id="OXDimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OXDimage._readheader-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">
 </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-13', 'seek', 'link-13');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">
 </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-comment"># Ascii header part 256 byes long</tt>
 </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-14', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Header Version'</tt><tt class="py-op">]</tt> <tt  [...]
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-15', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Compression'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt><tt class="py-op">[</tt><tt class="py-number [...]
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-16', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NX'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">block</tt>< [...]
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-17', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NY'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">block</tt>< [...]
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-18', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'OI'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">block</tt>< [...]
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-19', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'OL'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">block</tt>< [...]
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-20', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Header Size In Bytes'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py [...]
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-21', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'General Section size in Byte'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt c [...]
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-22', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Special Section size in Byte'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt c [...]
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-23', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'KM4 Section size in Byte'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class [...]
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-24', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Statistic Section in Byte'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt clas [...]
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-25', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'History Section in Byte'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class= [...]
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-26', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NSUPPLEMENT'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">bl [...]
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-27', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Time'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt><tt class="py-op">[</tt><tt class="py-number">5</tt [...]
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-28', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"ASCII Section size in Byte"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id [...]
 </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                                                <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-30', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'General Section size in Byte'</tt><tt class="py-op">]</tt>\
 </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">                                                <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-31', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Special Section size in Byte'</tt><tt class="py-op">]</tt> \
 </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">                                                <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-32', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'KM4 Section size in Byte'</tt><tt class="py-op">]</tt>\
 </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">                                                <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-33', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Statistic Section in Byte'</tt><tt class="py-op">]</tt>\
 </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                                                <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-34', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'History Section in Byte'</tt><tt class="py-op">]</tt>\
 </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-comment"># Skip to general section (NG) 512 byes long <<<<<<"</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-35', 'seek', 'link-13');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="retu [...]
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDima [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-37', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-38', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'General Section size in Byte'</tt><tt class="py-op">]</tt><tt class="py [...]
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-39', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Binning in x'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-40', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Binning in y'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-41', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Detector size x'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-na [...]
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-42', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Detector size y'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-na [...]
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-43', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Pixels in x'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name"> [...]
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-44', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Pixels in y'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name"> [...]
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-45', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'No of pixels'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">
 </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-comment"># Speciel section (NS) 768 bytes long</tt>
 </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-46', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-47', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Special Section size in Byte'</tt><tt class="py-op">]</tt><tt class="py [...]
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-48', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Gain'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstr [...]
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-49', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Overflows flag'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-na [...]
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-50', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Overflow after remeasure flag'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt>< [...]
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-51', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Overflow threshold'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="p [...]
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-52', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Exposure time in sec'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class= [...]
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-53', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Overflow time in sec'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class= [...]
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-54', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Monitor counts of raw image 1'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt>< [...]
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-55', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Monitor counts of raw image 2'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt>< [...]
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-56', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Monitor counts of overflow raw image 1'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op [...]
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-57', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Monitor counts of overflow raw image 2'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op [...]
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-58', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Unwarping'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">f [...]
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-59', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Detector type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="fabio.OXDimage.DETECTOR_TYPE [...]
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-61', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Real pixel size x (mm)'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt clas [...]
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-62', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Real pixel size y (mm)'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt clas [...]
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">
 </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-comment"># KM4 goniometer section (NK) 1024 bytes long</tt>
 </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-63', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-64', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'KM4 Section size in Byte'</tt><tt class="py-op">]</tt><tt class="py-op" [...]
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-comment"># Spatial correction file</tt>
 </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-65', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Spatial correction file'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt><tt class="py-op">[</tt><tt cla [...]
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-66', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Spatial correction file date'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt><tt class="py-op">[</tt><t [...]
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-comment"># Angles are in steps due to stepper motors - conversion factor RAD</tt>
 </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-comment"># angle[0] = omega, angle[1] = theta, angle[2] = kappa, angle[3] = phi,   </tt>
 </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-name">start_angles_step</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">[</tt><tt class="py-number">284</tt><tt class="py-op">:</tt><tt class="py-number">304</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-o [...]
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-name">end_angles_step</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">[</tt><tt class="py-number">324</tt><tt class="py-op">:</tt><tt class="py-number">344</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op" [...]
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-name">step2rad</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">[</tt><tt class="py-number">368</tt><tt class="py-op">:</tt><tt class="py-number">408</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt> [...]
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-name">step_angles_deg</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name"><a title="fabio.OXDimage.rad2deg" class="py-name" href="#" onclick="return doclink('link-67', 'rad2deg', 'link-7');">rad2deg</a></tt><tt class="py-op">(</tt><tt class="py-name">step2rad</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-comment"># calc angles</tt>
 </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-name">start_angles_deg</tt> <tt class="py-op">=</tt> <tt class="py-name">start_angles_step</tt> <tt class="py-op">*</tt> <tt class="py-name">step_angles_deg</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-name">end_angles_deg</tt> <tt class="py-op">=</tt> <tt class="py-name">end_angles_step</tt> <tt class="py-op">*</tt> <tt class="py-name">step_angles_deg</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-68', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Omega start in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">start_angles_deg</tt><tt class="py-op">[</tt>< [...]
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-69', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Theta start in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">start_angles_deg</tt><tt class="py-op">[</tt>< [...]
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-70', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Kappa start in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">start_angles_deg</tt><tt class="py-op">[</tt>< [...]
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-71', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Phi start in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">start_angles_deg</tt><tt class="py-op">[</tt><tt [...]
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-72', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Omega end in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">end_angles_deg</tt><tt class="py-op">[</tt><tt c [...]
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-73', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Theta end in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">end_angles_deg</tt><tt class="py-op">[</tt><tt c [...]
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-74', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Kappa end in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">end_angles_deg</tt><tt class="py-op">[</tt><tt c [...]
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-75', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Phi end in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">end_angles_deg</tt><tt class="py-op">[</tt><tt cla [...]
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-76', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Omega step in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">step_angles_deg</tt><tt class="py-op">[</tt><tt [...]
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-77', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Theta step in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">step_angles_deg</tt><tt class="py-op">[</tt><tt [...]
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-78', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Kappa step in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">step_angles_deg</tt><tt class="py-op">[</tt><tt [...]
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-79', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Phi step in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">step_angles_deg</tt><tt class="py-op">[</tt><tt c [...]
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">
 </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">
 </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-name">zero_correction_soft_step</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">[</tt><tt class="py-number">512</tt><tt class="py-op">:</tt><tt class="py-number">532</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt cla [...]
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">        <tt class="py-name">zero_correction_soft_deg</tt> <tt class="py-op">=</tt> <tt class="py-name">zero_correction_soft_step</tt> <tt class="py-op">*</tt> <tt class="py-name">step_angles_deg</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-80', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Omega zero corr. in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">zero_correction_soft_deg</tt><tt class="p [...]
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-81', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Theta zero corr. in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">zero_correction_soft_deg</tt><tt class="p [...]
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-82', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Kappa zero corr. in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">zero_correction_soft_deg</tt><tt class="p [...]
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-83', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Phi zero corr. in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">zero_correction_soft_deg</tt><tt class="py- [...]
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt class="py-comment"># Beam rotation about e2,e3</tt>
 </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-84', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Beam rot in deg (e2)'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class= [...]
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-85', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Beam rot in deg (e3)'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class= [...]
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">        <tt class="py-comment"># Wavelenghts alpha1, alpha2, beta</tt>
 </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-86', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Wavelength alpha1'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py [...]
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-87', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Wavelength alpha2'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py [...]
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-88', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Wavelength alpha'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py- [...]
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-89', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Wavelength beta'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-n [...]
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">
 </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-comment"># Detector tilts around e1,e2,e3 in deg</tt>
 </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-90', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Detector tilt e1 in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt cla [...]
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-91', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Detector tilt e2 in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt cla [...]
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-92', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Detector tilt e3 in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt cla [...]
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">
 </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">
 </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-comment"># Beam center</tt>
 </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-93', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Beam center x'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-nam [...]
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-94', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Beam center y'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-nam [...]
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">        <tt class="py-comment"># Angle (alpha) between kappa rotation axis and e3 (ideally 50 deg)</tt>
 </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-95', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Alpha angle in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="p [...]
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-comment"># Angle (beta) between phi rotation axis and e3 (ideally 0 deg)</tt>
 </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-96', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Beta angle in deg'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py [...]
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">
 </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-comment"># Detector distance</tt>
 </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-97', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Distance in mm'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-na [...]
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">        <tt class="py-comment"># Statistics section (NS) 512 bytes long</tt>
 </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-98', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-99', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Statistic Section in Byte'</tt><tt class="py-op">]</tt><tt class="py-op [...]
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-100', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Stat: Min '</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name [...]
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-101', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Stat: Max '</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name [...]
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-102', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Stat: Average '</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py- [...]
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-103', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Stat: Stddev '</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-n [...]
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-104', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Stat: Skewness '</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py [...]
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">
 </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-comment"># History section (NH) 2048 bytes long</tt>
 </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-105', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-106', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'History Section in Byte'</tt><tt class="py-op">]</tt><tt class="py-o [...]
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-107', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Flood field image'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt><tt class="py-op">[</tt><tt class=" [...]
+</div><a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">
 </tt>
+<a name="OXDimage.read"></a><div id="OXDimage.read-def"><a name="L185"></a><tt class="py-lineno">185</tt> <a class="py-toggle" href="#" id="OXDimage.read-toggle" onclick="return toggle('OXDimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.OXDimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py- [...]
+</div><div id="OXDimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OXDimage.read-expanded"><a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-docstring">        Read in header into self.header and
</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-docstring">            the data   into self.data
</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-108', 'header', 'link-14');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-109', 'resetvals', 'link-109');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-110', '_open', 'link-110');">_open</a></tt><tt class="py-op">(</tt><tt  [...]
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._r [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-111', '_readheader', 'link-111');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">
 </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-112', 'seek', 'link-13');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick=" [...]
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">
 </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-comment"># Compute image size</tt>
 </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-114', 'dim1', 'link-114');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name"> [...]
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-116', 'dim2', 'link-116');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name"> [...]
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Oxford  file"</tt><tt class="py-op">,</tt> <tt id="link-118" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-118', 'str', 'link-118');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \
 </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">                                <tt class="py-string">"is corrupt, cannot read it"</tt><tt class="py-op">)</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-comment">#</tt>
 </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-119', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Compression'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'TY1'</tt><tt cla [...]
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">            <tt class="py-comment">#Compressed with the KM4CCD compression</tt>
 </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">            <tt class="py-name">raw8</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-120', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-121', 'dim1', 'link-114');">dim1</a></tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a titl [...]
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">            <tt class="py-name">raw16</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">            <tt class="py-name">raw32</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-123', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'OI'</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py- [...]
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">                <tt class="py-name">raw16</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-124', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-125', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'OI'</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class= [...]
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-126', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'OL'</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py- [...]
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">                <tt class="py-name">raw32</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-127', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-128', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'OL'</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class= [...]
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">            <tt class="py-comment">#DEBUG stuff ... </tt>
 </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">raw8</tt> <tt class="py-op">=</tt> <tt class="py-name">raw8</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">raw16</tt> <tt class="py-op">=</tt> <tt class="py-name">raw16</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">raw32</tt> <tt class="py-op">=</tt> <tt class="py-name">raw32</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">            <tt class="py-comment">#END DEBUG</tt>
 </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">            <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt id="link-129" class="py-name"><a title="fabio.compression.decTY1" class="py-name" href="#" onclick="return doclink('link-129', 'decTY1', 'link-5');">decTY1</a></tt><tt class="py-op">(</tt><tt class="py-name">raw8</tt><tt class="py-op">,</tt> <tt class="py-name">raw16</tt><tt class="py-op">,</tt> <tt class="py-name">raw32</tt><tt class="py-op">)</t [...]
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">            <tt id="link-130" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-130', 'bytecode', 'link-130');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">
 </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">            <tt id="link-131" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-131', 'bytecode', 'link-130');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-132', 'bpp', 'link-132');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-133" class="py-name" targets="Method fabio.file_series.file_seri [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-134', 'bytecode', 'link-130');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-135', 'tostring', 'link-135');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">            <tt class="py-name">ReadBytes</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-136', 'dim1', 'link-114');">dim1</a></tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="fab [...]
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">            <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-139', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">ReadBytes</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-140" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-140', 'bytecode', 'link-130');">bytecode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">
 </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">        <tt id="link-141" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-141', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'OVER_SHORT2: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">block</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">        <tt id="link-142" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-142', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"%s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">block</tt> <tt class="py-op"><</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt>< [...]
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt id="link-143" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-143', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"BYTECODE: %s"</tt><tt class="py-op">,</tt> <tt id="link-144" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-144', 'bytecode', 'link-130');">bytecode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-145', 'data', 'link-145');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-146', 'dim2', 'link-116' [...]
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-148', 'bytecode', 'link-130');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-149', 'data', 'link-145');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">
 </tt>
+<a name="OXDimage._writeheader"></a><div id="OXDimage._writeheader-def"><a name="L237"></a><tt class="py-lineno">237</tt> <a class="py-toggle" href="#" id="OXDimage._writeheader-toggle" onclick="return toggle('OXDimage._writeheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.OXDimage-class.html#_writeheader">_writeheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt [...]
+</div><div id="OXDimage._writeheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OXDimage._writeheader-expanded"><a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"><tt class="py-docstring">        @return a string containing the header for Oxford images
</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt class="py-name">linesep</tt> <tt class="py-op">=</tt> <tt class="py-string">"\r\n"</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-150" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-150', 'key', 'link-150');">key</a></tt> <tt class="py-keyword">in</tt> <tt id="link-151" class="py-name"><a title="fabio.OXDimage.DEFAULT_HEADERS" class="py-name" href="#" onclick="return [...]
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-152" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-152', 'key', 'link-150');">key</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Variable fabio.edfimage.edfimage.header_keys=fabio.edfimag [...]
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-154', 'header_keys', 'link-153');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-155" class="py-name"><a title="fabio.fabioutils.key" class="py-name"  [...]
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-156', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt id="link-157" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-157', 'key', 'link-150');">key</ [...]
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">
 </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"NX"</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-160', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt cl [...]
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-162', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NX'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="lin [...]
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-164', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NY'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="lin [...]
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">        <tt class="py-name">ascii_headers</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-166', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Header Version'</tt><tt class="py-op">]</tt><tt cl [...]
 </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">                       <tt class="py-string">"COMPRESSION=%s (%5.1f)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-167', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"Compression"</tt><tt c [...]
 </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">                       <tt class="py-string">"NX=%4i NY=%4i OI=%7i OL=%7i "</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-169', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"NX"</tt><tt clas [...]
 </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">                       <tt class="py-string">"NHEADER=%7i NG=%7i NS=%7i NK=%7i NS=%7i NH=%7i"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-173', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string" [...]
 </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">                                                                                 <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-174', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'General Section size in Byte'</tt><tt class="py-op">]</tt><tt cla [...]
 </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">                                                                                 <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-175', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Special Section size in Byte'</tt><tt class="py-op">]</tt><tt cla [...]
 </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">                                                                                 <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-176', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'KM4 Section size in Byte'</tt><tt class="py-op">]</tt><tt class=" [...]
 </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">                                                                                 <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-177', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Statistic Section in Byte'</tt><tt class="py-op">]</tt><tt class= [...]
 </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">                                                                                 <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-178', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'History Section in Byte'</tt><tt class="py-op">]</tt><tt class="p [...]
 </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">                        <tt class="py-string">"NSUPPLEMENT=%7i"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-179', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"NSUPPLEMENT"</tt><tt class=" [...]
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"Time"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-180', 'header', 'link-14');">header</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">            <tt class="py-name">ascii_headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"TIME=%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-181', 'header', 'link-14');">header</a></tt><t [...]
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">
 </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">            <tt class="py-name">ascii_headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"TIME=%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">ctime</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">
 </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">        <tt id="link-182" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-182', 'header', 'link-14');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">linesep</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">ascii_headers</tt><tt class="py-op">)</tt><tt class="py-op" [...]
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">
 </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">
 </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">        <tt class="py-name">NG</tt> <tt class="py-op">=</tt> <tt id="link-183" class="py-name" targets="Class fabio.OXDimage.Section=fabio.OXDimage.Section-class.html"><a title="fabio.OXDimage.Section" class="py-name" href="#" onclick="return doclink('link-183', 'Section', 'link-183');">Section</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a tit [...]
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">        <tt class="py-name">NG</tt><tt class="py-op">.</tt><tt id="link-186" class="py-name" targets="Method fabio.OXDimage.Section.setData()=fabio.OXDimage.Section-class.html#setData,Method fabio.edfimage.Frame.setData()=fabio.edfimage.Frame-class.html#setData,Method fabio.edfimage.edfimage.setData()=fabio.edfimage.edfimage-class.html#setData"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-186', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Binning in x'</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">        <tt class="py-name">NG</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-187', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Binning in y'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">        <tt class="py-name">NG</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-188', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Detector size x'</tt><tt class="py-op">,</tt> <tt class="py-number">22</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">        <tt class="py-name">NG</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-189', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Detector size y'</tt><tt class="py-op">,</tt> <tt class="py-number">24</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">        <tt class="py-name">NG</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-190', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Pixels in x'</tt><tt class="py-op">,</tt> <tt class="py-number">26</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">        <tt class="py-name">NG</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-191', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Pixels in y'</tt><tt class="py-op">,</tt> <tt class="py-number">28</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-name">NG</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-192', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'No of pixels'</tt><tt class="py-op">,</tt> <tt class="py-number">36</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">)</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">        <tt id="link-193" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-193', 'header', 'link-14');">header</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">NG</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name" targets="Method fabio.OXDimage.Section.__repr__()=fabio.OXDimage.Section-class.html#__repr__"><a title="fabio.OXDimage.Section [...]
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">
 </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">        <tt class="py-name">NS</tt> <tt class="py-op">=</tt> <tt id="link-195" class="py-name"><a title="fabio.OXDimage.Section" class="py-name" href="#" onclick="return doclink('link-195', 'Section', 'link-183');">Section</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="ret [...]
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-198', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Gain'</tt><tt class="py-op">,</tt> <tt class="py-number">56</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-199', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Overflows flag'</tt><tt class="py-op">,</tt> <tt class="py-number">464</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int16</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-200" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-200', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Overflow after remeasure flag'</tt><tt class="py-op">,</tt> <tt class="py-number">466</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int16</tt><tt class="py-op">)</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-201', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Overflow threshold'</tt><tt class="py-op">,</tt> <tt class="py-number">472</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">)</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-202', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Exposure time in sec'</tt><tt class="py-op">,</tt> <tt class="py-number">480</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-203', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Overflow time in sec'</tt><tt class="py-op">,</tt> <tt class="py-number">488</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-204', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Monitor counts of raw image 1'</tt><tt class="py-op">,</tt> <tt class="py-number">528</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">)</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-205', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Monitor counts of raw image 2'</tt><tt class="py-op">,</tt> <tt class="py-number">532</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">)</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-206', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Monitor counts of overflow raw image 1'</tt><tt class="py-op">,</tt> <tt class="py-number">536</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-207', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Monitor counts of overflow raw image 2'</tt><tt class="py-op">,</tt> <tt class="py-number">540</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-208', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unwarping'</tt><tt class="py-op">,</tt> <tt class="py-number">544</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">)</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'Detector type'</tt> <tt class="py-keyword">in</tt>  <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-209', 'header', 'link-14');">header</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-210" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-210', 'key', 'link-150');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt>  <tt id="link-211" class="py-name"><a title="fabio.OXDimage.DETECTOR_TYPES" class="py-name" href="#" onclick="return doclink('link [...]
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-212', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Detector type'</tt><tt class="py-op">]</tt [...]
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">                    <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-213', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">548</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">default</tt><tt class="py-op">=</tt><tt id="link-214" class="py-name"><a title="fabio.fabioutil [...]
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-215', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Real pixel size x (mm)'</tt><tt class="py-op">,</tt> <tt class="py-number">568</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">        <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-216', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Real pixel size y (mm)'</tt><tt class="py-op">,</tt> <tt class="py-number">576</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">        <tt id="link-217" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-217', 'header', 'link-14');">header</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">NS</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="fabio.OXDimage.Section.__repr__" class="py-name" href="#" onclick="return doclink('link-218', '__repr__', 'link-194' [...]
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">
 </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">        <tt class="py-name">KM</tt> <tt class="py-op">=</tt> <tt id="link-219" class="py-name"><a title="fabio.OXDimage.Section" class="py-name" href="#" onclick="return doclink('link-219', 'Section', 'link-183');">Section</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="ret [...]
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-222', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Spatial correction file date'</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">"|S26"</tt><tt class="py-op">)</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-223', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Spatial correction file'</tt><tt class="py-op">,</tt> <tt class="py-number">26</tt><tt class="py-op">,</tt> <tt class="py-string">"|S246"</tt><tt class="py-op">)</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-comment"># Angles are in steps due to stepper motors - conversion factor RAD</tt>
 </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt class="py-comment"># angle[0] = omega, angle[1] = theta, angle[2] = kappa, angle[3] = phi,</tt>
 </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-224', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Omega step in deg'</tt><tt class="py-op">,</tt> <tt cla [...]
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">            <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-225', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">368</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">,</tt> <tt id="link-226" class="py-name"><a title="fabio.OXDimage.deg2rad" class="py-name" href="#" onclick="return docl [...]
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-228', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Omega start in deg'</tt><tt class="py-op">,</tt> <t [...]
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-229', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">284</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-230" class="py-name"><a title="fabio.edfimage.edf [...]
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-232', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Omega end in deg'</tt><tt class="py-op">,</tt> <tt  [...]
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-233', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">324</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="fabio.edfimage.edf [...]
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-236', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Omega zero corr. in deg'</tt><tt class="py-op">,</t [...]
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-237', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">512</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="fabio.edfimage.edf [...]
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">
 </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-240', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Theta step in deg'</tt><tt class="py-op">,</tt> <tt cla [...]
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">            <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-241', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">368</tt> <tt class="py-op">+</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">,</tt> <tt id="link-242" class="py-name"><a title="fabio.OXDimage. [...]
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-244', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Theta start in deg'</tt><tt class="py-op">,</tt> <t [...]
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-245', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">284</tt> <tt class="py-op">+</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id=" [...]
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-248', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Theta end in deg'</tt><tt class="py-op">,</tt> <tt  [...]
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-249" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-249', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">324</tt> <tt class="py-op">+</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id=" [...]
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-252', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Theta zero corr. in deg'</tt><tt class="py-op">,</t [...]
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-253" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-253', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">512</tt> <tt class="py-op">+</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id=" [...]
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">
 </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-256', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Kappa step in deg'</tt><tt class="py-op">,</tt> <tt cla [...]
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">            <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-257', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">368</tt> <tt class="py-op">+</tt> <tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">,</tt> <tt id="link-258" class="py-name"><a title="fabio.OXDimage [...]
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-260', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Kappa start in deg'</tt><tt class="py-op">,</tt> <t [...]
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-261', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">284</tt> <tt class="py-op">+</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id=" [...]
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-264" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-264', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Kappa end in deg'</tt><tt class="py-op">,</tt> <tt  [...]
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-265" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-265', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">324</tt> <tt class="py-op">+</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id=" [...]
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-268" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-268', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Kappa zero corr. in deg'</tt><tt class="py-op">,</t [...]
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-269" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-269', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">512</tt> <tt class="py-op">+</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id=" [...]
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">
 </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-272" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-272', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Phi step in deg'</tt><tt class="py-op">,</tt> <tt class [...]
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">            <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-273" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-273', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">368</tt> <tt class="py-op">+</tt> <tt class="py-number">24</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">,</tt> <tt id="link-274" class="py-name"><a title="fabio.OXDimage [...]
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-276" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-276', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Phi start in deg'</tt><tt class="py-op">,</tt> <tt  [...]
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-277" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-277', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">284</tt> <tt class="py-op">+</tt> <tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id= [...]
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-280" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-280', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Phi end in deg'</tt><tt class="py-op">,</tt> <tt cl [...]
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-281" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-281', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">324</tt> <tt class="py-op">+</tt> <tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id= [...]
+<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-284" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-284', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Phi zero corr. in deg'</tt><tt class="py-op">,</tt> [...]
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">                <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-285', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">512</tt> <tt class="py-op">+</tt> <tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id= [...]
+<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">
 </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">        <tt class="py-comment"># Beam rotation about e2,e3</tt>
 </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-288" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-288', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Beam rot in deg (e2)'</tt><tt class="py-op">,</tt> <tt class="py-number">552</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-289" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-289', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Beam rot in deg (e3)'</tt><tt class="py-op">,</tt> <tt class="py-number">560</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">        <tt class="py-comment"># Wavelenghts alpha1, alpha2, beta</tt>
 </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-290" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-290', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Wavelength alpha1'</tt><tt class="py-op">,</tt> <tt class="py-number">568</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-291" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-291', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Wavelength alpha2'</tt><tt class="py-op">,</tt> <tt class="py-number">576</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-292', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Wavelength alpha'</tt><tt class="py-op">,</tt> <tt class="py-number">584</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-293" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-293', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Wavelength beta'</tt><tt class="py-op">,</tt> <tt class="py-number">592</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line">
 </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">        <tt class="py-comment"># Detector tilts around e1,e2,e3 in deg</tt>
 </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-294" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-294', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Detector tilt e1 in deg'</tt><tt class="py-op">,</tt> <tt class="py-number">640</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-295" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-295', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Detector tilt e2 in deg'</tt><tt class="py-op">,</tt> <tt class="py-number">648</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-296" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-296', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Detector tilt e3 in deg'</tt><tt class="py-op">,</tt> <tt class="py-number">656</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">
 </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line">        <tt class="py-comment"># Beam center</tt>
 </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-297" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-297', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Beam center x'</tt><tt class="py-op">,</tt> <tt class="py-number">664</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-298', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Beam center y'</tt><tt class="py-op">,</tt> <tt class="py-number">672</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">        <tt class="py-comment"># Angle (alpha) between kappa rotation axis and e3 (ideally 50 deg)</tt>
 </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-299" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-299', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Alpha angle in deg'</tt><tt class="py-op">,</tt> <tt class="py-number">672</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">        <tt class="py-comment"># Angle (beta) between phi rotation axis and e3 (ideally 0 deg)</tt>
 </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-300', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Beta angle in deg'</tt><tt class="py-op">,</tt> <tt class="py-number">672</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line">
 </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">        <tt class="py-comment"># Detector distance</tt>
 </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">        <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-301" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-301', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Distance in mm'</tt><tt class="py-op">,</tt> <tt class="py-number">712</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">        <tt id="link-302" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-302', 'header', 'link-14');">header</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">KM</tt><tt class="py-op">.</tt><tt id="link-303" class="py-name"><a title="fabio.OXDimage.Section.__repr__" class="py-name" href="#" onclick="return doclink('link-303', '__repr__', 'link-194' [...]
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">
 </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line">        <tt class="py-name">SS</tt> <tt class="py-op">=</tt> <tt id="link-304" class="py-name"><a title="fabio.OXDimage.Section" class="py-name" href="#" onclick="return doclink('link-304', 'Section', 'link-183');">Section</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="ret [...]
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">        <tt class="py-name">SS</tt><tt class="py-op">.</tt><tt id="link-307" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-307', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Stat: Min '</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">)</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line">        <tt class="py-name">SS</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-308', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Stat: Max '</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">)</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">        <tt class="py-name">SS</tt><tt class="py-op">.</tt><tt id="link-309" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-309', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Stat: Average '</tt><tt class="py-op">,</tt> <tt class="py-number">24</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-310" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-310', 'header', 'link-14');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'Stat: Stddev '</tt><tt class="py-op">,</tt> <tt class=" [...]
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">            <tt class="py-name">SS</tt><tt class="py-op">.</tt><tt id="link-311" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-311', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">32</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-312" class="py-name"><a title="fabio.edfimage.ed [...]
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">        <tt class="py-name">SS</tt><tt class="py-op">.</tt><tt id="link-313" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-313', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Stat: Skewness '</tt><tt class="py-op">,</tt> <tt class="py-number">40</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">)</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">        <tt id="link-314" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-314', 'header', 'link-14');">header</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">SS</tt><tt class="py-op">.</tt><tt id="link-315" class="py-name"><a title="fabio.OXDimage.Section.__repr__" class="py-name" href="#" onclick="return doclink('link-315', '__repr__', 'link-194' [...]
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">
 </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">        <tt class="py-name">HS</tt> <tt class="py-op">=</tt> <tt id="link-316" class="py-name"><a title="fabio.OXDimage.Section" class="py-name" href="#" onclick="return doclink('link-316', 'Section', 'link-183');">Section</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="ret [...]
+<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">        <tt class="py-name">HS</tt><tt class="py-op">.</tt><tt id="link-319" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-319', 'setData', 'link-186');">setData</a></tt><tt class="py-op">(</tt><tt class="py-string">'Flood field image'</tt><tt class="py-op">,</tt> <tt class="py-number">99</tt><tt class="py-op">,</tt> <tt class="py-string">"|S27"</tt><tt class="py-op">)</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">        <tt id="link-320" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-320', 'header', 'link-14');">header</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">HS</tt><tt class="py-op">.</tt><tt id="link-321" class="py-name"><a title="fabio.OXDimage.Section.__repr__" class="py-name" href="#" onclick="return doclink('link-321', '__repr__', 'link-194' [...]
+<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">
 </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-322" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-322', 'header', 'link-14');">header</a></tt> </tt>
+</div><a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">
 </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">
 </tt>
+<a name="OXDimage.write"></a><div id="OXDimage.write-def"><a name="L382"></a><tt class="py-lineno">382</tt> <a class="py-toggle" href="#" id="OXDimage.write-toggle" onclick="return toggle('OXDimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.OXDimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">)</tt><tt class [...]
+</div><div id="OXDimage.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OXDimage.write-expanded"><a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write Oxford diffraction images: this is still beta
</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line"><tt class="py-docstring">        @param fname: output filename 
</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">        <tt class="py-name">datablock8</tt><tt class="py-op">,</tt> <tt class="py-name">datablock16</tt><tt class="py-op">,</tt> <tt class="py-name">datablock32</tt> <tt class="py-op">=</tt> <tt id="link-323" class="py-name"><a title="fabio.compression.compTY1" class="py-name" href="#" onclick="return doclink('link-323', 'compTY1', 'link-6');">compTY1</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt cl [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-324', 'data', 'link-145');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-325" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-325', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"OI"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-326" class="py-name"><a title="fabio.file_series.file_series.len" c [...]
+<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-327', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"OL"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-328" class="py-name"><a title="fabio.file_series.file_series.len" c [...]
+<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-329', '_open', 'link-110');">_open</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-stri [...]
+<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name" targets="Method fabio.GEimage.GEimage.write()=fabio.GEimage.GEimage-class.html#write,Method fabio.OXDimage.OXDimage.write()=fabio.OXDimage.OXDimage-class.html#write,Method fabio.adscimage.adscimage.write()=fabio.adscimage.adscimage-class.html#write,Method fabio.binaryimage.binaryimage.write()=fabio.binaryimage.binaryi [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-330', 'write', 'link-330');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-331" class="py-name" targets="Method fabio.OXDimage.OXDimage._writeheader()=fabio.OXDimage.OXDimage-class.html#_writeheader,Method fabio.mar345image.mar345image._writeheader()=fabio.mar345image.mar345image-class.html#_writeheader"><a title="fabio.OXDimage.OXDimage._writeheader
+fabio.mar345image.mar345image._writeheader" class="py-name" href="#" onclick="return doclink('link-331', '_writeheader', 'link-331');">_writeheader</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-332" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-332', 'write', 'link-330');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">datablock8</tt><tt class="py-op">)</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-333', 'write', 'link-330');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">datablock16</tt><tt class="py-op">)</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-334', 'write', 'link-330');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">datablock32</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">
 </tt>
+<a name="OXDimage.getCompressionRatio"></a><div id="OXDimage.getCompressionRatio-def"><a name="L395"></a><tt class="py-lineno">395</tt> <a class="py-toggle" href="#" id="OXDimage.getCompressionRatio-toggle" onclick="return toggle('OXDimage.getCompressionRatio');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.OXDimage-class.html#getCompressionRatio">getCompressionRatio</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt c [...]
+</div><div id="OXDimage.getCompressionRatio-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OXDimage.getCompressionRatio-expanded"><a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">        <tt class="py-docstring">"calculate the compression factor obtained vs raw data"</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-number">100.0</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-335" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-335', 'data', 'link-145');">data</a></tt><tt class="py-op">.</tt><tt id="link-336" class="py-name" targets="Variable fabio.fabioutils.BZ2File.size=fabio.fabioutils.BZ2File-class.html#size,Variable fabio.fabioutils.File.size=fabio.fabioutils.File-class.html#size,Variable fabio.fabioutils.GzipFile.size=fabio.fabioutils.GzipFile-class.html#size,Variable fabio.fabioutils.StringIO.size=fabio.fabioutils.String [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-336', 'size', 'link-336');">size</a></tt> <tt class="py-op">+</tt> <tt class="py-number">2</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-337" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-337', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"OI"</tt>< [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-339', 'data', 'link-145');">data</a></tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-340', 'size', 'link-336');">size</a></tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">
 </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="OXDimage.checkData"></a><div id="OXDimage.checkData-def"><a name="L400"></a><tt class="py-lineno">400</tt> <a class="py-toggle" href="#" id="OXDimage.checkData-toggle" onclick="return toggle('OXDimage.checkData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.OXDimage-class.html#checkData">checkData</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="p [...]
+</div><div id="OXDimage.checkData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OXDimage.checkData-expanded"><a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-341" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-341', 'data', 'link-145');">data</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-342" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-342', 'data', 'link-145');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line">
 </tt>
+<a name="Section"></a><div id="Section-def"><a name="L406"></a><tt class="py-lineno">406</tt> <a class="py-toggle" href="#" id="Section-toggle" onclick="return toggle('Section');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.OXDimage.Section-class.html">Section</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Section-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Section-expanded"><a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line">    <tt class="py-docstring">"""
</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line"><tt class="py-docstring">    Small helper class for writing binary headers
</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="Section.__init__"></a><div id="Section.__init__-def"><a name="L410"></a><tt class="py-lineno">410</tt> <a class="py-toggle" href="#" id="Section.__init__-toggle" onclick="return toggle('Section.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.Section-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">,</ [...]
+</div><div id="Section.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Section.__init__-expanded"><a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line"><tt class="py-docstring">        @param size: size of the header section in bytes
</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt>  <tt class="py-line"><tt class="py-docstring">        @param dictHeader: headers of the image
</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-343', 'size', 'link-336');">size</a></tt> <tt class="py-op">=</tt> <tt id="link-344" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-344', 'size', 'link-336');">size</a></tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-345" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-345', 'header', 'link-14');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dictHeader</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lstChr</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"\x00"</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt id="link-346" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-346', 'size', 'link-336');">size</a></tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dictSize</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+</div><a name="Section.__repr__"></a><div id="Section.__repr__-def"><a name="L419"></a><tt class="py-lineno">419</tt> <a class="py-toggle" href="#" id="Section.__repr__-toggle" onclick="return toggle('Section.__repr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.Section-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Section.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Section.__repr__-expanded"><a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lstChr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line">
 </tt>
+<a name="Section.getSize"></a><div id="Section.getSize-def"><a name="L422"></a><tt class="py-lineno">422</tt> <a class="py-toggle" href="#" id="Section.getSize-toggle" onclick="return toggle('Section.getSize');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.Section-class.html#getSize">getSize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">dtype</tt><tt class="py-op">)</tt><t [...]
+</div><div id="Section.getSize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Section.getSize-expanded"><a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">dtype</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dictSize</tt><tt class="py-op">:</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dictSize</tt><tt class="py-op">[</tt><tt class="py-name">dtype</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-347" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-347', 'len', 'link-133');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">n [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-348', 'tostring', 'link-135');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dictSize</tt><tt class="py-op">[</tt><tt class="py-name">dtype</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">
 </tt>
+<a name="Section.setData"></a><div id="Section.setData-def"><a name="L427"></a><tt class="py-lineno">427</tt> <a class="py-toggle" href="#" id="Section.setData-toggle" onclick="return toggle('Section.setData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.OXDimage.Section-class.html#setData">setData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> <tt [...]
+</div><div id="Section.setData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Section.setData-expanded"><a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line">        <tt class="py-docstring">"""
</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line"><tt class="py-docstring">        @param offset: int, starting position in the section
</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line"><tt class="py-docstring">        @param key: name of the header key
</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line"><tt class="py-docstring">        @param dtype: type of the data to insert (defines the size!)
</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-349" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-349', 'key', 'link-150');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-350" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-350',  [...]
+<a name="L434"></a><tt class="py-lineno">434</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-351" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-351', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt id="link-352" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="r [...]
+<a name="L435"></a><tt class="py-lineno">435</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-353" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-353', 'key', 'link-150');">key</a></tt> <tt class="py-keyword">in</tt> <tt id="link-354" class="py-name"><a title="fabio.OXDimage.DEFAULT_HEADERS" class="py-name" href="#" onclick="return doclink('link-354', 'DEFAULT_HEADERS', 'link-12');">DEFAULT_HEADERS</a> [...]
+<a name="L436"></a><tt class="py-lineno">436</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-355" class="py-name"><a title="fabio.OXDimage.DEFAULT_HEADERS" class="py-name" href="#" onclick="return doclink('link-355', 'DEFAULT_HEADERS', 'link-12');">DEFAULT_HEADERS</a></tt><tt class="py-op">[</tt><tt id="link-356" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-356', 'key', 'l [...]
+<a name="L437"></a><tt class="py-lineno">437</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">default</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-string">"\x00"</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-357" class="py-name" targets="Method fabio.OXDimage.Section.getSize()=fabio.OXDimage.Section-class.html#getSize,Method fabio.fabioutils.BZ2File.getSize()=fabio.fabioutils.BZ2File-class.html#getSize,Method fabio.fabioutils.File.g [...]
+fabio.fabioutils.BZ2File.getSize
+fabio.fabioutils.File.getSize
+fabio.fabioutils.GzipFile.getSize
+fabio.fabioutils.StringIO.getSize" class="py-name" href="#" onclick="return doclink('link-357', 'getSize', 'link-357');">getSize</a></tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line">            <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-358" class="py-name"> [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-358', 'tostring', 'link-135');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lstChr</tt><tt class="py-op">[</tt><tt class="py-name">offset</tt><tt class="py-op">:</tt><tt class="py-name">offset</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-359" class="py-name"><a title="fabio.OXDimage.Section.getSize
+fabio.fabioutils.BZ2File.getSize
+fabio.fabioutils.File.getSize
+fabio.fabioutils.GzipFile.getSize
+fabio.fabioutils.StringIO.getSize" class="py-name" href="#" onclick="return doclink('link-359', 'getSize', 'link-357');">getSize</a></tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
+</div></div><a name="L444"></a><tt class="py-lineno">444</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.OXDimage.OXDimage-class.html b/epydoc/fabio.OXDimage.OXDimage-class.html
new file mode 100644
index 0000000..c2d6a11
--- /dev/null
+++ b/epydoc/fabio.OXDimage.OXDimage-class.html
@@ -0,0 +1,490 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.OXDimage.OXDimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.OXDimage-module.html">Module OXDimage</a> ::
+        Class OXDimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.OXDimage.OXDimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class OXDimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">OXDimage</strong>
+</pre>
+
+<hr />
+<p>Oxford Diffraction Sapphire 3 images reader/writer class</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.OXDimage.OXDimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Must be overridden in classes</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.OXDimage.OXDimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in header into self.header and...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_writeheader"></a><span class="summary-sig-name">_writeheader</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      @return a string containing the header for Oxford images</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage._writeheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.OXDimage.OXDimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      Write Oxford diffraction images: this is still beta</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getCompressionRatio"></a><span class="summary-sig-name">getCompressionRatio</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      calculate the compression factor obtained vs raw data</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage.getCompressionRatio">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.OXDimage.OXDimage-class.html#checkData" class="summary-sig-name">checkData</a>(<span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Empty for fabioimage but may be populated by others classes, 
+      especially for format accepting only integers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage.checkData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Must be overridden in classes</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Read in header into self.header and
+    the data   into self.data
+
+</pre>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Write Oxford diffraction images: this is still beta</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>fname</code></strong> - output filename</li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="checkData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">checkData</span>(<span class="sig-arg">data</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.OXDimage-pysrc.html#OXDimage.checkData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Empty for fabioimage but may be populated by others classes, 
+  especially for format accepting only integers</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#checkData">fabioimage.fabioimage.checkData</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.OXDimage.Section-class.html b/epydoc/fabio.OXDimage.Section-class.html
new file mode 100644
index 0000000..85f5cbb
--- /dev/null
+++ b/epydoc/fabio.OXDimage.Section-class.html
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.OXDimage.Section</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.OXDimage-module.html">Module OXDimage</a> ::
+        Class Section
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.OXDimage.Section-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Section</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.OXDimage-pysrc.html#Section">source code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Section</strong>
+</pre>
+
+<hr />
+<p>Small helper class for writing binary headers</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.OXDimage.Section-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">size</span>,
+        <span class="summary-sig-arg">dictHeader</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#Section.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.OXDimage.Section-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      repr(x)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#Section.__repr__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getSize"></a><span class="summary-sig-name">getSize</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">dtype</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#Section.getSize">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.OXDimage.Section-class.html#setData" class="summary-sig-name">setData</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">key</span>,
+        <span class="summary-sig-arg">offset</span>,
+        <span class="summary-sig-arg">dtype</span>,
+        <span class="summary-sig-arg">default</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.OXDimage-pysrc.html#Section.setData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">size</span>,
+        <span class="sig-arg">dictHeader</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.OXDimage-pysrc.html#Section.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>size</code></strong> - size of the header section in bytes</li>
+        <li><strong class="pname"><code>dictHeader</code></strong> - headers of the image</li>
+    </ul></dd>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.OXDimage-pysrc.html#Section.__repr__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>repr(x)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__repr__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setData</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">key</span>,
+        <span class="sig-arg">offset</span>,
+        <span class="sig-arg">dtype</span>,
+        <span class="sig-arg">default</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.OXDimage-pysrc.html#Section.setData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>offset</code></strong> - int, starting position in the section</li>
+        <li><strong class="pname"><code>key</code></strong> - name of the header key</li>
+        <li><strong class="pname"><code>dtype</code></strong> - type of the data to insert (defines the size!)</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.TiffIO-module.html b/epydoc/fabio.TiffIO-module.html
new file mode 100644
index 0000000..81e18f9
--- /dev/null
+++ b/epydoc/fabio.TiffIO-module.html
@@ -0,0 +1,454 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.TiffIO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module TiffIO
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.TiffIO-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module TiffIO</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.TiffIO-pysrc.html">source code</a></span></p>
+<hr />
+<div class="fields">      <p><strong>Author:</strong>
+        V.A. Sole - ESRF Data Analysis
+      </p>
+</div><!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.TiffIO.TiffIO-class.html" class="summary-name">TiffIO</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__revision__"></a><span class="summary-name">__revision__</span> = <code title="1501">1501</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="0">0</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="ALLOW_MULTIPLE_STRIPS"></a><span class="summary-name">ALLOW_MULTIPLE_STRIPS</span> = <code title="False">False</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.TiffIO-module.html#TAG_ID" class="summary-name">TAG_ID</a> = <code title="{256: 'NumberOfColumns',
+ 257: 'NumberOfRows',
+ 258: 'BitsPerSample',
+ 259: 'Compression',
+ 262: 'PhotometricInterpretation',
+ 270: 'ImageDescription',
+ 273: 'StripOffsets',
+ 278: 'RowsPerStrip',
+..."><code class="variable-group">{</code>256<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">NumberOfColumns</code><code class="variable-quote">'</code><code class="variable-op">, </code>257<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">NumberOfRows</code><code class="variable-quote">'</code><code class="variable-op">, </code>258<code class="variable-op">: </code><code class="vari [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_NUMBER_OF_COLUMNS"></a><span class="summary-name">TAG_NUMBER_OF_COLUMNS</span> = <code title="256">256</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_NUMBER_OF_ROWS"></a><span class="summary-name">TAG_NUMBER_OF_ROWS</span> = <code title="257">257</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_BITS_PER_SAMPLE"></a><span class="summary-name">TAG_BITS_PER_SAMPLE</span> = <code title="258">258</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_PHOTOMETRIC_INTERPRETATION"></a><span class="summary-name">TAG_PHOTOMETRIC_INTERPRETATION</span> = <code title="262">262</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_COMPRESSION"></a><span class="summary-name">TAG_COMPRESSION</span> = <code title="259">259</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_IMAGE_DESCRIPTION"></a><span class="summary-name">TAG_IMAGE_DESCRIPTION</span> = <code title="270">270</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_STRIP_OFFSETS"></a><span class="summary-name">TAG_STRIP_OFFSETS</span> = <code title="273">273</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_ROWS_PER_STRIP"></a><span class="summary-name">TAG_ROWS_PER_STRIP</span> = <code title="278">278</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_STRIP_BYTE_COUNTS"></a><span class="summary-name">TAG_STRIP_BYTE_COUNTS</span> = <code title="279">279</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_SOFTWARE"></a><span class="summary-name">TAG_SOFTWARE</span> = <code title="305">305</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_DATE"></a><span class="summary-name">TAG_DATE</span> = <code title="306">306</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_COLORMAP"></a><span class="summary-name">TAG_COLORMAP</span> = <code title="320">320</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="TAG_SAMPLE_FORMAT"></a><span class="summary-name">TAG_SAMPLE_FORMAT</span> = <code title="339">339</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.TiffIO-module.html#FIELD_TYPE" class="summary-name">FIELD_TYPE</a> = <code title="{1: ('BYTE', 'B'),
+ 2: ('ASCII', 's'),
+ 3: ('SHORT', 'H'),
+ 4: ('LONG', 'I'),
+ 5: ('RATIONAL', 'II'),
+ 6: ('SBYTE', 'b'),
+ 7: ('UNDEFINED', 'B'),
+ 8: ('SSHORT', 'h'),
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">BYTE</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">B</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code c [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.TiffIO-module.html#FIELD_TYPE_OUT" class="summary-name">FIELD_TYPE_OUT</a> = <code title="{'B': 1,
+ 'H': 3,
+ 'I': 4,
+ 'II': 5,
+ 'b': 6,
+ 'd': 12,
+ 'f': 11,
+ 'h': 8,
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">B</code><code class="variable-quote">'</code><code class="variable-op">: </code>1<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">H</code><code class="variable-quote">'</code><code class="variable-op">: </code>3<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">I</code><code cla [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="SAMPLE_FORMAT_UINT"></a><span class="summary-name">SAMPLE_FORMAT_UINT</span> = <code title="1">1</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="SAMPLE_FORMAT_INT"></a><span class="summary-name">SAMPLE_FORMAT_INT</span> = <code title="2">2</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="SAMPLE_FORMAT_FLOAT"></a><span class="summary-name">SAMPLE_FORMAT_FLOAT</span> = <code title="3">3</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="SAMPLE_FORMAT_VOID"></a><span class="summary-name">SAMPLE_FORMAT_VOID</span> = <code title="4">4</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="SAMPLE_FORMAT_COMPLEXINT"></a><span class="summary-name">SAMPLE_FORMAT_COMPLEXINT</span> = <code title="5">5</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="SAMPLE_FORMAT_COMPLEXIEEEFP"></a><span class="summary-name">SAMPLE_FORMAT_COMPLEXIEEEFP</span> = <code title="6">6</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="TAG_ID"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">TAG_ID</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>256<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">NumberOfColumns</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 257<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">NumberOfRows</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 258<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">BitsPerSample</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 259<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Compression</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 262<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">PhotometricInterpretation</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 270<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ImageDescription</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 273<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">StripOffsets</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 278<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">RowsPerStrip</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="FIELD_TYPE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">FIELD_TYPE</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">BYTE</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">B</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">ASCII</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">s</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">SHORT</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">H</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">LONG</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">I</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">RATIONAL</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">II</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">SBYTE</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">b</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">UNDEFINED</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">B</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ 8<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">SSHORT</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">h</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="FIELD_TYPE_OUT"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">FIELD_TYPE_OUT</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">B</code><code class="variable-quote">'</code><code class="variable-op">: </code>1<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">H</code><code class="variable-quote">'</code><code class="variable-op">: </code>3<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">I</code><code class="variable-quote">'</code><code class="variable-op">: </code>4<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">II</code><code class="variable-quote">'</code><code class="variable-op">: </code>5<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">b</code><code class="variable-quote">'</code><code class="variable-op">: </code>6<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">d</code><code class="variable-quote">'</code><code class="variable-op">: </code>12<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">f</code><code class="variable-quote">'</code><code class="variable-op">: </code>11<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">h</code><code class="variable-quote">'</code><code class="variable-op">: </code>8<code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.TiffIO-pysrc.html b/epydoc/fabio.TiffIO-pysrc.html
new file mode 100644
index 0000000..d2900b1
--- /dev/null
+++ b/epydoc/fabio.TiffIO-pysrc.html
@@ -0,0 +1,1786 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.TiffIO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module TiffIO
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.TiffIO-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.TiffIO-module.html">Module fabio.TiffIO</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">   1</tt>  <tt class="py-line"><tt class="py-comment">#/*##########################################################################</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">   2</tt>  <tt class="py-line"><tt class="py-comment"># Copyright (C) 2012 European Synchrotron Radiation Facility</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">   3</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">   4</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of the PyMca X-ray Fluorescence Toolkit developed at</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">   5</tt>  <tt class="py-line"><tt class="py-comment"># the ESRF by the Software group.</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">   6</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">   7</tt>  <tt class="py-line"><tt class="py-comment"># This file is free software; you can redistribute it and/or modify it </tt> </tt>
+<a name="L8"></a><tt class="py-lineno">   8</tt>  <tt class="py-line"><tt class="py-comment"># under the terms of the GNU Lesser General Public License as published by the Free</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">   9</tt>  <tt class="py-line"><tt class="py-comment"># Software Foundation; either version 2 of the License, or (at your option) </tt> </tt>
+<a name="L10"></a><tt class="py-lineno">  10</tt>  <tt class="py-line"><tt class="py-comment"># any later version.</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">  11</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">  12</tt>  <tt class="py-line"><tt class="py-comment"># PyMca is distributed in the hope that it will be useful, but WITHOUT ANY</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">  13</tt>  <tt class="py-line"><tt class="py-comment"># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">  14</tt>  <tt class="py-line"><tt class="py-comment"># FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">  15</tt>  <tt class="py-line"><tt class="py-comment"># details.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">  16</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">  17</tt>  <tt class="py-line"><tt class="py-comment">#############################################################################*/</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">  18</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-docstring">"V.A. Sole - ESRF Data Analysis"</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">  19</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.TiffIO.__revision__=fabio.TiffIO-module.html#__revision__"><a title="fabio.TiffIO.__revision__" class="py-name" href="#" onclick="return doclink('link-0', '__revision__', 'link-0');">__revision__</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1501</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">  20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno">  21</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">  22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">  23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">struct</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">  24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">  25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">  26</tt>  <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable fabio.TiffIO.DEBUG=fabio.TiffIO-module.html#DEBUG"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-1', 'DEBUG', 'link-1');">DEBUG</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">  27</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable fabio.TiffIO.ALLOW_MULTIPLE_STRIPS=fabio.TiffIO-module.html#ALLOW_MULTIPLE_STRIPS"><a title="fabio.TiffIO.ALLOW_MULTIPLE_STRIPS" class="py-name" href="#" onclick="return doclink('link-2', 'ALLOW_MULTIPLE_STRIPS', 'link-2');">ALLOW_MULTIPLE_STRIPS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">  28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">  29</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable fabio.TiffIO.TAG_ID=fabio.TiffIO-module.html#TAG_ID"><a title="fabio.TiffIO.TAG_ID" class="py-name" href="#" onclick="return doclink('link-3', 'TAG_ID', 'link-3');">TAG_ID</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-number">256</tt><tt class="py-op">:</tt><tt class="py-string">"NumberOfColumns"</tt><tt class="py-op">,</tt> <tt class="py-com [...]
+<a name="L30"></a><tt class="py-lineno">  30</tt>  <tt class="py-line">            <tt class="py-number">257</tt><tt class="py-op">:</tt><tt class="py-string">"NumberOfRows"</tt><tt class="py-op">,</tt> <tt class="py-comment"># S or L ImageHeight</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">  31</tt>  <tt class="py-line">            <tt class="py-number">258</tt><tt class="py-op">:</tt><tt class="py-string">"BitsPerSample"</tt><tt class="py-op">,</tt> <tt class="py-comment"># S Number of bits per component</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">  32</tt>  <tt class="py-line">            <tt class="py-number">259</tt><tt class="py-op">:</tt><tt class="py-string">"Compression"</tt><tt class="py-op">,</tt> <tt class="py-comment"># SHORT (1 - NoCompression, ... </tt> </tt>
+<a name="L33"></a><tt class="py-lineno">  33</tt>  <tt class="py-line">            <tt class="py-number">262</tt><tt class="py-op">:</tt><tt class="py-string">"PhotometricInterpretation"</tt><tt class="py-op">,</tt> <tt class="py-comment"># SHORT (0 - WhiteIsZero, 1 -BlackIsZero, 2 - RGB, 3 - Palette color</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">  34</tt>  <tt class="py-line">            <tt class="py-number">270</tt><tt class="py-op">:</tt><tt class="py-string">"ImageDescription"</tt><tt class="py-op">,</tt> <tt class="py-comment"># ASCII</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">  35</tt>  <tt class="py-line">            <tt class="py-number">273</tt><tt class="py-op">:</tt><tt class="py-string">"StripOffsets"</tt><tt class="py-op">,</tt> <tt class="py-comment"># S or L, for each strip, the byte offset of the strip</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">  36</tt>  <tt class="py-line">            <tt class="py-number">278</tt><tt class="py-op">:</tt><tt class="py-string">"RowsPerStrip"</tt><tt class="py-op">,</tt> <tt class="py-comment"># S or L, number of rows in each back may be not for the last</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">  37</tt>  <tt class="py-line">            <tt class="py-number">279</tt><tt class="py-op">:</tt><tt class="py-string">"StripByteCounts"</tt><tt class="py-op">,</tt> <tt class="py-comment"># S or L, The number of bytes in the strip AFTER any compression</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">  38</tt>  <tt class="py-line">            <tt class="py-number">305</tt><tt class="py-op">:</tt><tt class="py-string">"Software"</tt><tt class="py-op">,</tt> <tt class="py-comment"># ASCII</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">  39</tt>  <tt class="py-line">            <tt class="py-number">306</tt><tt class="py-op">:</tt><tt class="py-string">"Date"</tt><tt class="py-op">,</tt> <tt class="py-comment"># ASCII</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">  40</tt>  <tt class="py-line">            <tt class="py-number">320</tt><tt class="py-op">:</tt><tt class="py-string">"Colormap"</tt><tt class="py-op">,</tt> <tt class="py-comment"># Colormap of Palette-color Images </tt> </tt>
+<a name="L41"></a><tt class="py-lineno">  41</tt>  <tt class="py-line">            <tt class="py-number">339</tt><tt class="py-op">:</tt><tt class="py-string">"SampleFormat"</tt><tt class="py-op">,</tt> <tt class="py-comment"># SHORT Interpretation of data in each pixel</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">  42</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">  43</tt>  <tt class="py-line"> </tt>
+<a name="L44"></a><tt class="py-lineno">  44</tt>  <tt class="py-line"><tt class="py-comment">#TILES ARE TO BE SUPPORTED TOO ...</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">  45</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable fabio.TiffIO.TAG_NUMBER_OF_COLUMNS=fabio.TiffIO-module.html#TAG_NUMBER_OF_COLUMNS"><a title="fabio.TiffIO.TAG_NUMBER_OF_COLUMNS" class="py-name" href="#" onclick="return doclink('link-4', 'TAG_NUMBER_OF_COLUMNS', 'link-4');">TAG_NUMBER_OF_COLUMNS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">256</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">  46</tt>  <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable fabio.TiffIO.TAG_NUMBER_OF_ROWS=fabio.TiffIO-module.html#TAG_NUMBER_OF_ROWS"><a title="fabio.TiffIO.TAG_NUMBER_OF_ROWS" class="py-name" href="#" onclick="return doclink('link-5', 'TAG_NUMBER_OF_ROWS', 'link-5');">TAG_NUMBER_OF_ROWS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">257</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">  47</tt>  <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable fabio.TiffIO.TAG_BITS_PER_SAMPLE=fabio.TiffIO-module.html#TAG_BITS_PER_SAMPLE"><a title="fabio.TiffIO.TAG_BITS_PER_SAMPLE" class="py-name" href="#" onclick="return doclink('link-6', 'TAG_BITS_PER_SAMPLE', 'link-6');">TAG_BITS_PER_SAMPLE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">258</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">  48</tt>  <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable fabio.TiffIO.TAG_PHOTOMETRIC_INTERPRETATION=fabio.TiffIO-module.html#TAG_PHOTOMETRIC_INTERPRETATION"><a title="fabio.TiffIO.TAG_PHOTOMETRIC_INTERPRETATION" class="py-name" href="#" onclick="return doclink('link-7', 'TAG_PHOTOMETRIC_INTERPRETATION', 'link-7');">TAG_PHOTOMETRIC_INTERPRETATION</a></tt> <tt class="py-op">=</tt> <tt class="py-number">262</tt> </tt>
+<a name="L49"></a><tt class="py-lineno">  49</tt>  <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable fabio.TiffIO.TAG_COMPRESSION=fabio.TiffIO-module.html#TAG_COMPRESSION"><a title="fabio.TiffIO.TAG_COMPRESSION" class="py-name" href="#" onclick="return doclink('link-8', 'TAG_COMPRESSION', 'link-8');">TAG_COMPRESSION</a></tt> <tt class="py-op">=</tt> <tt class="py-number">259</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">  50</tt>  <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable fabio.TiffIO.TAG_IMAGE_DESCRIPTION=fabio.TiffIO-module.html#TAG_IMAGE_DESCRIPTION"><a title="fabio.TiffIO.TAG_IMAGE_DESCRIPTION" class="py-name" href="#" onclick="return doclink('link-9', 'TAG_IMAGE_DESCRIPTION', 'link-9');">TAG_IMAGE_DESCRIPTION</a></tt> <tt class="py-op">=</tt> <tt class="py-number">270</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line"><tt id="link-10" class="py-name" targets="Variable fabio.TiffIO.TAG_STRIP_OFFSETS=fabio.TiffIO-module.html#TAG_STRIP_OFFSETS"><a title="fabio.TiffIO.TAG_STRIP_OFFSETS" class="py-name" href="#" onclick="return doclink('link-10', 'TAG_STRIP_OFFSETS', 'link-10');">TAG_STRIP_OFFSETS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">273</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">  52</tt>  <tt class="py-line"><tt id="link-11" class="py-name" targets="Variable fabio.TiffIO.TAG_ROWS_PER_STRIP=fabio.TiffIO-module.html#TAG_ROWS_PER_STRIP"><a title="fabio.TiffIO.TAG_ROWS_PER_STRIP" class="py-name" href="#" onclick="return doclink('link-11', 'TAG_ROWS_PER_STRIP', 'link-11');">TAG_ROWS_PER_STRIP</a></tt> <tt class="py-op">=</tt> <tt class="py-number">278</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">  53</tt>  <tt class="py-line"><tt id="link-12" class="py-name" targets="Variable fabio.TiffIO.TAG_STRIP_BYTE_COUNTS=fabio.TiffIO-module.html#TAG_STRIP_BYTE_COUNTS"><a title="fabio.TiffIO.TAG_STRIP_BYTE_COUNTS" class="py-name" href="#" onclick="return doclink('link-12', 'TAG_STRIP_BYTE_COUNTS', 'link-12');">TAG_STRIP_BYTE_COUNTS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">279</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">  54</tt>  <tt class="py-line"><tt id="link-13" class="py-name" targets="Variable fabio.TiffIO.TAG_SOFTWARE=fabio.TiffIO-module.html#TAG_SOFTWARE"><a title="fabio.TiffIO.TAG_SOFTWARE" class="py-name" href="#" onclick="return doclink('link-13', 'TAG_SOFTWARE', 'link-13');">TAG_SOFTWARE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">305</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line"><tt id="link-14" class="py-name" targets="Variable fabio.TiffIO.TAG_DATE=fabio.TiffIO-module.html#TAG_DATE"><a title="fabio.TiffIO.TAG_DATE" class="py-name" href="#" onclick="return doclink('link-14', 'TAG_DATE', 'link-14');">TAG_DATE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">306</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line"><tt id="link-15" class="py-name" targets="Variable fabio.TiffIO.TAG_COLORMAP=fabio.TiffIO-module.html#TAG_COLORMAP"><a title="fabio.TiffIO.TAG_COLORMAP" class="py-name" href="#" onclick="return doclink('link-15', 'TAG_COLORMAP', 'link-15');">TAG_COLORMAP</a></tt> <tt class="py-op">=</tt> <tt class="py-number">320</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line"><tt id="link-16" class="py-name" targets="Variable fabio.TiffIO.TAG_SAMPLE_FORMAT=fabio.TiffIO-module.html#TAG_SAMPLE_FORMAT"><a title="fabio.TiffIO.TAG_SAMPLE_FORMAT" class="py-name" href="#" onclick="return doclink('link-16', 'TAG_SAMPLE_FORMAT', 'link-16');">TAG_SAMPLE_FORMAT</a></tt> <tt class="py-op">=</tt> <tt class="py-number">339</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line"> </tt>
+<a name="L59"></a><tt class="py-lineno">  59</tt>  <tt class="py-line"><tt id="link-17" class="py-name" targets="Variable fabio.TiffIO.FIELD_TYPE=fabio.TiffIO-module.html#FIELD_TYPE"><a title="fabio.TiffIO.FIELD_TYPE" class="py-name" href="#" onclick="return doclink('link-17', 'FIELD_TYPE', 'link-17');">FIELD_TYPE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'BYTE'</tt><tt class [...]
+<a name="L60"></a><tt class="py-lineno">  60</tt>  <tt class="py-line">               <tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'ASCII'</tt><tt class="py-op">,</tt> <tt class="py-string">"s"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-comment">#string ending with binary zero</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line">               <tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'SHORT'</tt><tt class="py-op">,</tt> <tt class="py-string">"H"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line">               <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'LONG'</tt><tt class="py-op">,</tt> <tt class="py-string">"I"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-line">               <tt class="py-number">5</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'RATIONAL'</tt><tt class="py-op">,</tt> <tt class="py-string">"II"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line">               <tt class="py-number">6</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'SBYTE'</tt><tt class="py-op">,</tt> <tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line">               <tt class="py-number">7</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'UNDEFINED'</tt><tt class="py-op">,</tt> <tt class="py-string">"B"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-line">               <tt class="py-number">8</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'SSHORT'</tt><tt class="py-op">,</tt> <tt class="py-string">"h"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">  67</tt>  <tt class="py-line">               <tt class="py-number">9</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'SLONG'</tt><tt class="py-op">,</tt> <tt class="py-string">"i"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line">               <tt class="py-number">10</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'SRATIONAL'</tt><tt class="py-op">,</tt> <tt class="py-string">"ii"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line">               <tt class="py-number">11</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'FLOAT'</tt><tt class="py-op">,</tt> <tt class="py-string">"f"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">  70</tt>  <tt class="py-line">               <tt class="py-number">12</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-string">'DOUBLE'</tt><tt class="py-op">,</tt> <tt class="py-string">"d"</tt><tt class="py-op">)</tt><tt class="py-op">}</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line"> </tt>
+<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line"><tt id="link-18" class="py-name" targets="Variable fabio.TiffIO.FIELD_TYPE_OUT=fabio.TiffIO-module.html#FIELD_TYPE_OUT"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-18', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-string">'B'</tt><tt class="py-op">:</tt>   <tt class="py-number">1</tt><tt class="p [...]
+<a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line">                   <tt class="py-string">'s'</tt><tt class="py-op">:</tt>   <tt class="py-number">2</tt><tt class="py-op">,</tt> </tt>
+<a name="L74"></a><tt class="py-lineno">  74</tt>  <tt class="py-line">                   <tt class="py-string">'H'</tt><tt class="py-op">:</tt>   <tt class="py-number">3</tt><tt class="py-op">,</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line">                   <tt class="py-string">'I'</tt><tt class="py-op">:</tt>   <tt class="py-number">4</tt><tt class="py-op">,</tt> </tt>
+<a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line">                   <tt class="py-string">'II'</tt><tt class="py-op">:</tt>  <tt class="py-number">5</tt><tt class="py-op">,</tt> </tt>
+<a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line">                   <tt class="py-string">'b'</tt><tt class="py-op">:</tt>   <tt class="py-number">6</tt><tt class="py-op">,</tt> </tt>
+<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line">                   <tt class="py-string">'h'</tt><tt class="py-op">:</tt>   <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
+<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line">                   <tt class="py-string">'i'</tt><tt class="py-op">:</tt>   <tt class="py-number">9</tt><tt class="py-op">,</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line">                   <tt class="py-string">'ii'</tt><tt class="py-op">:</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line">                   <tt class="py-string">'f'</tt><tt class="py-op">:</tt>  <tt class="py-number">11</tt><tt class="py-op">,</tt> </tt>
+<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line">                   <tt class="py-string">'d'</tt><tt class="py-op">:</tt>  <tt class="py-number">12</tt><tt class="py-op">}</tt> </tt>
+<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line"> </tt>
+<a name="L84"></a><tt class="py-lineno">  84</tt>  <tt class="py-line"><tt class="py-comment">#sample formats (http://www.awaresystems.be/imaging/tiff/tiffflags/sampleformat.html)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno">  85</tt>  <tt class="py-line"><tt id="link-19" class="py-name" targets="Variable fabio.TiffIO.SAMPLE_FORMAT_UINT=fabio.TiffIO-module.html#SAMPLE_FORMAT_UINT"><a title="fabio.TiffIO.SAMPLE_FORMAT_UINT" class="py-name" href="#" onclick="return doclink('link-19', 'SAMPLE_FORMAT_UINT', 'link-19');">SAMPLE_FORMAT_UINT</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line"><tt id="link-20" class="py-name" targets="Variable fabio.TiffIO.SAMPLE_FORMAT_INT=fabio.TiffIO-module.html#SAMPLE_FORMAT_INT"><a title="fabio.TiffIO.SAMPLE_FORMAT_INT" class="py-name" href="#" onclick="return doclink('link-20', 'SAMPLE_FORMAT_INT', 'link-20');">SAMPLE_FORMAT_INT</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
+<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line"><tt id="link-21" class="py-name" targets="Variable fabio.TiffIO.SAMPLE_FORMAT_FLOAT=fabio.TiffIO-module.html#SAMPLE_FORMAT_FLOAT"><a title="fabio.TiffIO.SAMPLE_FORMAT_FLOAT" class="py-name" href="#" onclick="return doclink('link-21', 'SAMPLE_FORMAT_FLOAT', 'link-21');">SAMPLE_FORMAT_FLOAT</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt>   <tt class="py-comment">#floating point</tt> </tt>
+<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line"><tt id="link-22" class="py-name" targets="Variable fabio.TiffIO.SAMPLE_FORMAT_VOID=fabio.TiffIO-module.html#SAMPLE_FORMAT_VOID"><a title="fabio.TiffIO.SAMPLE_FORMAT_VOID" class="py-name" href="#" onclick="return doclink('link-22', 'SAMPLE_FORMAT_VOID', 'link-22');">SAMPLE_FORMAT_VOID</a></tt> <tt class="py-op">=</tt> <tt class="py-number">4</tt>   <tt class="py-comment">#undefined data, usually assumed UINT</tt> </tt>
+<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line"><tt id="link-23" class="py-name" targets="Variable fabio.TiffIO.SAMPLE_FORMAT_COMPLEXINT=fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXINT"><a title="fabio.TiffIO.SAMPLE_FORMAT_COMPLEXINT" class="py-name" href="#" onclick="return doclink('link-23', 'SAMPLE_FORMAT_COMPLEXINT', 'link-23');">SAMPLE_FORMAT_COMPLEXINT</a></tt> <tt class="py-op">=</tt> <tt class="py-number">5</tt> </tt>
+<a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable fabio.TiffIO.SAMPLE_FORMAT_COMPLEXIEEEFP=fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXIEEEFP"><a title="fabio.TiffIO.SAMPLE_FORMAT_COMPLEXIEEEFP" class="py-name" href="#" onclick="return doclink('link-24', 'SAMPLE_FORMAT_COMPLEXIEEEFP', 'link-24');">SAMPLE_FORMAT_COMPLEXIEEEFP</a></tt> <tt class="py-op">=</tt> <tt class="py-number">6</tt> </tt>
+<a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line"> </tt>
+<a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line"> </tt>
+<a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO"></a><div id="TiffIO-def"><a name="L94"></a><tt class="py-lineno">  94</tt> <a class="py-toggle" href="#" id="TiffIO-toggle" onclick="return toggle('TiffIO');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html">TiffIO</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TiffIO-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TiffIO-expanded"><a name="TiffIO.__init__"></a><div id="TiffIO.__init__-def"><a name="L95"></a><tt class="py-lineno">  95</tt> <a class="py-toggle" href="#" id="TiffIO.__init__-toggle" onclick="return toggle('TiffIO.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#__init__">__init__</a><tt class="py-op">(</tt>< [...]
+</div><div id="TiffIO.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO.__init__-expanded"><a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">mode</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line">            <tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-string">'rb'</tt> </tt>
+<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'b'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line">            <tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-name">mode</tt> <tt class="py-op">+</tt> <tt class="py-string">'b'</tt> </tt>
+<a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'a'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">"Mode %s makes no sense on TIFF files. Consider 'rb+'"</tt> <tt class="py-op">%</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'w'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'+'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno"> 104</tt>  <tt class="py-line">                <tt class="py-name">mode</tt> <tt class="py-op">+=</tt> <tt class="py-string">'+'</tt> </tt>
+<a name="L105"></a><tt class="py-lineno"> 105</tt>  <tt class="py-line">        <tt class="py-comment">#if isinstance(filename, file): #does not work in python 3</tt> </tt>
+<a name="L106"></a><tt class="py-lineno"> 106</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">"seek"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno"> 107</tt>  <tt class="py-line">            <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
+<a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_access</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L109"></a><tt class="py-lineno"> 109</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno"> 110</tt>  <tt class="py-line">            <tt class="py-comment">#the b is needed for windows and python 3</tt> </tt>
+<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line">            <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_access</tt> <tt class="py-op">=</tt> <tt class="py-name">mode</tt> </tt>
+<a name="L113"></a><tt class="py-lineno"> 113</tt>  <tt class="py-line"> </tt>
+<a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method fabio.TiffIO.TiffIO._initInternalVariables()=fabio.TiffIO.TiffIO-class.html#_initInternalVariables"><a title="fabio.TiffIO.TiffIO._initInternalVariables" class="py-name" href="#" onclick="return doclink('link-25', '_initInternalVariables', 'link-25');">_initInternalVariables</a></tt><tt class="py-op">(</tt><t [...]
+<a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_maxImageCacheLength</tt> <tt class="py-op">=</tt> <tt class="py-name">cache_length</tt> </tt>
+<a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forceMonoOutput</tt> <tt class="py-op">=</tt> <tt class="py-name">mono_output</tt> </tt>
+</div><a name="L117"></a><tt class="py-lineno"> 117</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO._initInternalVariables"></a><div id="TiffIO._initInternalVariables-def"><a name="L118"></a><tt class="py-lineno"> 118</tt> <a class="py-toggle" href="#" id="TiffIO._initInternalVariables-toggle" onclick="return toggle('TiffIO._initInternalVariables');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#_initInternalVariables">_initInternalVariables</a><tt class="py-op">(</tt><tt class="py-param">self</t [...]
+</div><div id="TiffIO._initInternalVariables-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO._initInternalVariables-expanded"><a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line">            <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> </tt>
+<a name="L121"></a><tt class="py-lineno"> 121</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L122"></a><tt class="py-lineno"> 122</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
+<a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line">        <tt class="py-comment"># read the order</tt> </tt>
+<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-26', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line">        <tt class="py-name">order</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-27', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-28" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-28', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">order</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">order</tt> <tt class="py-op">==</tt> <tt class="py-string">"II"</tt><tt class="py-op">:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno"> 128</tt>  <tt class="py-line">                <tt class="py-comment">#intel, little endian</tt> </tt>
+<a name="L129"></a><tt class="py-lineno"> 129</tt>  <tt class="py-line">                <tt class="py-name">fileOrder</tt> <tt class="py-op">=</tt> <tt class="py-string">"little"</tt> </tt>
+<a name="L130"></a><tt class="py-lineno"> 130</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> <tt class="py-op">=</tt> <tt class="py-string">'<'</tt> </tt>
+<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">order</tt> <tt class="py-op">==</tt> <tt class="py-string">"MM"</tt><tt class="py-op">:</tt> </tt>
+<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line">                <tt class="py-comment">#motorola, high endian</tt> </tt>
+<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line">                <tt class="py-name">fileOrder</tt> <tt class="py-op">=</tt> <tt class="py-string">"big"</tt> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> <tt class="py-op">=</tt> <tt class="py-string">'>'</tt> </tt>
+<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">"File is not a Mar CCD file, nor a TIFF file"</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line">            <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-29', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line">            <tt class="py-name">fortyTwo</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method fabio.edfimage.edfimage.unpack()=fabio.edfimage.edfimage-class.html#unpack,Method fabio.tifimage.Image_File_Directory.unpack()=fabio.tifimage.Image_File_Directory-class.html#unpack,Method fabio.tifimage.Image_File_Directory_entry.unpack()=fabio. [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-30', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> <tt class="py-op">+</tt> <tt class="py-string">"H"</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">fortyTwo</tt> <tt class="py-op">!=</tt> <tt class="py-number">42</tt><tt class="py-op">:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">"Invalid TIFF version %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">fortyTwo</tt><tt class="py-op">)</tt> </tt>
+<a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-31" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-31', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line">                    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"VALID TIFF VERSION"</tt><tt class="py-op">)</tt> </tt>
+<a name="L144"></a><tt class="py-lineno"> 144</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">byteorder</tt> <tt class="py-op">!=</tt> <tt class="py-name">fileOrder</tt><tt class="py-op">:</tt> </tt>
+<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">                <tt class="py-name">swap</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line">                <tt class="py-name">swap</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">byteorder</tt> <tt class="py-op">==</tt> <tt class="py-string">"little"</tt><tt class="py-op">:</tt> </tt>
+<a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> <tt class="py-op">=</tt> <tt class="py-string">'<'</tt> </tt>
+<a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L152"></a><tt class="py-lineno"> 152</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> <tt class="py-op">=</tt> <tt class="py-string">'>'</tt> </tt>
+<a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line">            <tt class="py-name">swap</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_swap</tt> <tt class="py-op">=</tt> <tt class="py-name">swap</tt> </tt>
+<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_IFD</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCacheIndex</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCache</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCacheIndex</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCache</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method fabio.TiffIO.TiffIO.getImageFileDirectories()=fabio.TiffIO.TiffIO-class.html#getImageFileDirectories"><a title="fabio.TiffIO.TiffIO.getImageFileDirectories" class="py-name" href="#" onclick="return doclink('link-32', 'getImageFileDirectories', 'link-32');">getImageFileDirectories</a></tt><tt class="py-op">(</ [...]
+</div><a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO.__makeSureFileIsOpen"></a><div id="TiffIO.__makeSureFileIsOpen-def"><a name="L162"></a><tt class="py-lineno"> 162</tt> <a class="py-toggle" href="#" id="TiffIO.__makeSureFileIsOpen-toggle" onclick="return toggle('TiffIO.__makeSureFileIsOpen');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#__makeSureFileIsOpen">__makeSureFileIsOpen</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class= [...]
+</div><div id="TiffIO.__makeSureFileIsOpen-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO.__makeSureFileIsOpen-expanded"><a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Variable fabio.fabioutils.GzipFile.closed=fab [...]
+<a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-34" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-34', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Reopening closed file"</tt><tt class="py-op">)</tt> </tt>
+<a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line">        <tt class="py-name">fileName</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> </tt>
+<a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_access</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L169"></a><tt class="py-lineno"> 169</tt>  <tt class="py-line">            <tt class="py-comment">#we do not own the file</tt> </tt>
+<a name="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line">            <tt class="py-comment">#open in read mode</tt> </tt>
+<a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line">            <tt class="py-name">newFile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">fileName</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno"> 172</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line">            <tt class="py-name">newFile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">fileName</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_access</tt><tt class="py-op">)</tt> </tt>
+<a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">newFile</tt> </tt>
+</div><a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO.__makeSureFileIsClosed"></a><div id="TiffIO.__makeSureFileIsClosed-def"><a name="L176"></a><tt class="py-lineno"> 176</tt> <a class="py-toggle" href="#" id="TiffIO.__makeSureFileIsClosed-toggle" onclick="return toggle('TiffIO.__makeSureFileIsClosed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#__makeSureFileIsClosed">__makeSureFileIsClosed</a><tt class="py-op">(</tt><tt class="py-param">self</t [...]
+</div><div id="TiffIO.__makeSureFileIsClosed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO.__makeSureFileIsClosed-expanded"><a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_access</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L178"></a><tt class="py-lineno"> 178</tt>  <tt class="py-line">            <tt class="py-comment">#we do not own the file</tt> </tt>
+<a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-35" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-35', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Not closing not owned file"</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line"> </tt>
+<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="fabio.fabioutils.GzipFile.closed" class="py-name" href="#" onclick="return doclink('link-36', 'closed', 'link-33');">closed</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO.getNumberOfImages"></a><div id="TiffIO.getNumberOfImages-def"><a name="L186"></a><tt class="py-lineno"> 186</tt> <a class="py-toggle" href="#" id="TiffIO.getNumberOfImages-toggle" onclick="return toggle('TiffIO.getNumberOfImages');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#getNumberOfImages">getNumberOfImages</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt  [...]
+</div><div id="TiffIO.getNumberOfImages-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO.getNumberOfImages-expanded"><a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line">        <tt class="py-comment">#update for the case someone has done anything?</tt> </tt>
+<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method fabio.TiffIO.TiffIO._updateIFD()=fabio.TiffIO.TiffIO-class.html#_updateIFD"><a title="fabio.TiffIO.TiffIO._updateIFD" class="py-name" href="#" onclick="return doclink('link-37', '_updateIFD', 'link-37');">_updateIFD</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-38" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-38', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_IFD</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO._updateIFD"></a><div id="TiffIO._updateIFD-def"><a name="L191"></a><tt class="py-lineno"> 191</tt> <a class="py-toggle" href="#" id="TiffIO._updateIFD-toggle" onclick="return toggle('TiffIO._updateIFD');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#_updateIFD">_updateIFD</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TiffIO._updateIFD-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO._updateIFD-expanded"><a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method fabio.TiffIO.TiffIO.__makeSureFileIsOpen()=fabio.TiffIO.TiffIO-class.html#__makeSureFileIsOpen"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsOpen" class="py-name" href="#" [...]
+<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="fabio.TiffIO.TiffIO.getImageFileDirectories" class="py-name" href="#" onclick="return doclink('link-40', 'getImageFileDirectories', 'link-32');">getImageFileDirectories</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Method fabio.TiffIO.TiffIO.__makeSureFileIsClosed()=fabio.TiffIO.TiffIO-class.html#__makeSureFileIsClosed"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsClosed" class="py-name" href="#" onclick="return doclink('link-41', '__makeSureFileIsClosed', 'link-41');">__makeSureFileIsClosed</a></tt><tt class="py-op">(</tt><t [...]
+</div><a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO.getImageFileDirectories"></a><div id="TiffIO.getImageFileDirectories-def"><a name="L196"></a><tt class="py-lineno"> 196</tt> <a class="py-toggle" href="#" id="TiffIO.getImageFileDirectories-toggle" onclick="return toggle('TiffIO.getImageFileDirectories');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#getImageFileDirectories">getImageFileDirectories</a><tt class="py-op">(</tt><tt class="py-param">s [...]
+</div><div id="TiffIO.getImageFileDirectories-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO.getImageFileDirectories-expanded"><a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line">            <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> </tt>
+<a name="L199"></a><tt class="py-lineno"> 199</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
+<a name="L201"></a><tt class="py-lineno"> 201</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> </tt>
+<a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-42', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_IFD</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line">        <tt class="py-name">nImages</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'I'</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line">        <tt class="py-name">inStr</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-43', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">calcsize</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-44" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-44', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">inStr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">            <tt class="py-name">offsetToIFD</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line">            <tt class="py-name">offsetToIFD</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-45', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">inStr</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L211"></a><tt class="py-lineno"> 211</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-46" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-46', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Offset to first IFD = %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">offsetToIFD</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">offsetToIFD</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_IFD</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">offsetToIFD</tt><tt class="py-op">)</tt> </tt>
+<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line">            <tt class="py-name">nImages</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-47', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">offsetToIFD</tt><tt class="py-op">)</tt> </tt>
+<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'H'</tt> </tt>
+<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line">            <tt class="py-name">numberOfDirectoryEntries</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-48', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-49', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">calcsize</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-50" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-50', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Number of directory entries = %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">numberOfDirectoryEntries</tt><tt class="py-op">)</tt> </tt>
+<a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line"> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'I'</tt> </tt>
+<a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-51', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">offsetToIFD</tt> <tt class="py-op">+</tt> <tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py-number">12</tt> <tt class="py-op"> [...]
+<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">            <tt class="py-name">offsetToIFD</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-52', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-53', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">calcsize</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-54" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-54', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Next Offset to IFD = %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">offsetToIFD</tt><tt class="py-op">)</tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line">            <tt class="py-comment">#offsetToIFD = 0 </tt> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-55" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-55', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Number of images found = %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">nImages</tt><tt class="py-op">)</tt> </tt>
+<a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">nImages</tt> </tt>
+</div><a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO._parseImageFileDirectory"></a><div id="TiffIO._parseImageFileDirectory-def"><a name="L232"></a><tt class="py-lineno"> 232</tt> <a class="py-toggle" href="#" id="TiffIO._parseImageFileDirectory-toggle" onclick="return toggle('TiffIO._parseImageFileDirectory');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#_parseImageFileDirectory">_parseImageFileDirectory</a><tt class="py-op">(</tt><tt class="py-pa [...]
+</div><div id="TiffIO._parseImageFileDirectory-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO._parseImageFileDirectory-expanded"><a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">        <tt class="py-name">offsetToIFD</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_IFD</tt><tt class="py-op">[</tt><tt class="py-name">nImage</tt><tt class="py-op">]</tt> </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt>  <tt class="py-line">        <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-56', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">offsetToIFD</tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'H'</tt> </tt>
+<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line">        <tt class="py-name">numberOfDirectoryEntries</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-57', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-58', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">calcsize</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-59" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-59', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L240"></a><tt class="py-lineno"> 240</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Number of directory entries = %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">numberOfDirectoryEntries</tt><tt class="py-op">)</tt> </tt>
+<a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line"> </tt>
+<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHI4s'</tt> </tt>
+<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line">        <tt class="py-name">tagIDList</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L244"></a><tt class="py-lineno"> 244</tt>  <tt class="py-line">        <tt class="py-name">fieldTypeList</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line">        <tt class="py-name">nValuesList</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-line">        <tt class="py-name">valueOffsetList</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L247"></a><tt class="py-lineno"> 247</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-60" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-60', 'i', 'link-60');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">numberOfDirectoryEntries</tt><tt class="py-op">)</tt>< [...]
+<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line">            <tt class="py-name">tagID</tt><tt class="py-op">,</tt> <tt class="py-name">fieldType</tt><tt class="py-op">,</tt> <tt class="py-name">nValues</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffset</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-61', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-62', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">12</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line">            <tt class="py-name">tagIDList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">tagID</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno"> 250</tt>  <tt class="py-line">            <tt class="py-name">fieldTypeList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">fieldType</tt><tt class="py-op">)</tt> </tt>
+<a name="L251"></a><tt class="py-lineno"> 251</tt>  <tt class="py-line">            <tt class="py-name">nValuesList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">nValues</tt><tt class="py-op">)</tt> </tt>
+<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">nValues</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line">                <tt class="py-name">ftype</tt><tt class="py-op">,</tt> <tt class="py-name">vfmt</tt> <tt class="py-op">=</tt> <tt id="link-63" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE" class="py-name" href="#" onclick="return doclink('link-63', 'FIELD_TYPE', 'link-17');">FIELD_TYPE</a></tt><tt class="py-op">[</tt><tt class="py-name">fieldType</tt><tt class="py-op">]</tt> </tt>
+<a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">ftype</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'ASCII'</tt><tt class="py-op">,</tt> <tt class="py-string">'RATIONAL'</tt><tt class="py-op">,</tt> <tt class="py-string">'SRATIONAL'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line">                    <tt class="py-name">vfmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-name">vfmt</tt> </tt>
+<a name="L256"></a><tt class="py-lineno"> 256</tt>  <tt class="py-line">                    <tt class="py-name">actualValue</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-64', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">vfmt</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffset</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">calcsize</tt><tt class="py-op">(</tt><tt class="py-name">vfmt</tt><tt class="p [...]
+<a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line">                    <tt class="py-name">valueOffsetList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">actualValue</tt><tt class="py-op">)</tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line">                    <tt class="py-name">valueOffsetList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">valueOffset</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">nValues</tt> <tt class="py-op"><</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">fieldType</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L261"></a><tt class="py-lineno"> 261</tt>  <tt class="py-line">                <tt class="py-name">ftype</tt><tt class="py-op">,</tt> <tt class="py-name">vfmt</tt> <tt class="py-op">=</tt> <tt id="link-65" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE" class="py-name" href="#" onclick="return doclink('link-65', 'FIELD_TYPE', 'link-17');">FIELD_TYPE</a></tt><tt class="py-op">[</tt><tt class="py-name">fieldType</tt><tt class="py-op">]</tt> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt>  <tt class="py-line">                <tt class="py-name">vfmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">"%d%s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">nValues</tt><tt class="py-op">,</tt> <tt class="py-name">vfmt</tt><tt class="py-op">)</tt> </tt>
+<a name="L263"></a><tt class="py-lineno"> 263</tt>  <tt class="py-line">                <tt class="py-name">actualValue</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-66', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">vfmt</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffset</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">calcsize</tt><tt class="py-op">(</tt><tt class="py-name">vfmt</tt><tt class="p [...]
+<a name="L264"></a><tt class="py-lineno"> 264</tt>  <tt class="py-line">                <tt class="py-name">valueOffsetList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">actualValue</tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line">                <tt class="py-name">valueOffsetList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">valueOffset</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-67" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-67', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">tagID</tt> <tt class="py-keyword">in</tt> <tt id="link-68" class="py-name"><a title="fabio.TiffIO.TAG_ID" class="py-name" href="#" onclick="return doclink('link-68', 'TAG_ID', 'link-3');">TAG_ID</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L269"></a><tt class="py-lineno"> 269</tt>  <tt class="py-line">                    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"tagID = %s"</tt> <tt class="py-op">%</tt> <tt id="link-69" class="py-name"><a title="fabio.TiffIO.TAG_ID" class="py-name" href="#" onclick="return doclink('link-69', 'TAG_ID', 'link-3');">TAG_ID</a></tt><tt class="py-op">[</tt><tt class="py-name">tagID</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line">                    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"tagID        = %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">tagID</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"fieldType    = %s"</tt> <tt class="py-op">%</tt> <tt id="link-70" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE" class="py-name" href="#" onclick="return doclink('link-70', 'FIELD_TYPE', 'link-17');">FIELD_TYPE</a></tt><tt class="py-op">[</tt><tt class="py-name">fieldType</tt><tt class="py-op">]</tt><tt class="py-op">[ [...]
+<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"nValues      = %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">nValues</tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line">                <tt class="py-comment">#if nValues == 1:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line">                <tt class="py-comment">#    print("valueOffset =  %s" % valueOffset)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt> </tt>
+</div><a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line"> </tt>
+<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line"> </tt>
+<a name="L279"></a><tt class="py-lineno"> 279</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO._readIFDEntry"></a><div id="TiffIO._readIFDEntry-def"><a name="L280"></a><tt class="py-lineno"> 280</tt> <a class="py-toggle" href="#" id="TiffIO._readIFDEntry-toggle" onclick="return toggle('TiffIO._readIFDEntry');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#_readIFDEntry">_readIFDEntry</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</t [...]
+</div><div id="TiffIO._readIFDEntry-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO._readIFDEntry-expanded"><a name="L281"></a><tt class="py-lineno"> 281</tt>  <tt class="py-line">        <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> </tt>
+<a name="L282"></a><tt class="py-lineno"> 282</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> </tt>
+<a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line">        <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt> </tt>
+<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line">        <tt class="py-name">nValues</tt> <tt class="py-op">=</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt> </tt>
+<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line">        <tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line">        <tt class="py-name">ftype</tt><tt class="py-op">,</tt> <tt class="py-name">vfmt</tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE" class="py-name" href="#" onclick="return doclink('link-71', 'FIELD_TYPE', 'link-17');">FIELD_TYPE</a></tt><tt class="py-op">[</tt><tt class="py-name">fieldTypeList</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt><tt class="py- [...]
+<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line">        <tt class="py-name">vfmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">"%d%s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">nValues</tt><tt class="py-op">,</tt> <tt class="py-name">vfmt</tt><tt class="py-op">)</tt> </tt>
+<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line">        <tt class="py-name">requestedBytes</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">calcsize</tt><tt class="py-op">(</tt><tt class="py-name">vfmt</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nValues</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line">            <tt class="py-name">output</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">valueOffsetList</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">requestedBytes</tt> <tt class="py-op"><</tt> <tt class="py-number">5</tt><tt class="py-op">:</tt> </tt>
+<a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line">            <tt class="py-name">output</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">valueOffsetList</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line">            <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-72', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="fabio.edf [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-73', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">"I"</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]< [...]
+<a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line">            <tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-74', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">vfmt</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-75', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">requestedBytes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">output</tt> </tt>
+</div><a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO.getData"></a><div id="TiffIO.getData-def"><a name="L298"></a><tt class="py-lineno"> 298</tt> <a class="py-toggle" href="#" id="TiffIO.getData-toggle" onclick="return toggle('TiffIO.getData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#getData">getData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nImage</tt><tt class="py-op">,</tt> <tt cl [...]
+</div><div id="TiffIO.getData-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO.getData-expanded"><a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nImage</tt> <tt class="py-op">>=</tt> <tt id="link-76" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-76', 'len', 'link-28');">len</a></tt><tt class="py-op"> [...]
+<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line">            <tt class="py-comment">#update prior to raise an index error error</tt> </tt>
+<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="fabio.TiffIO.TiffIO._updateIFD" class="py-name" href="#" onclick="return doclink('link-77', '_updateIFD', 'link-37');">_updateIFD</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method fabio.TiffIO.TiffIO._readImage()=fabio.TiffIO.TiffIO-class.html#_readImage"><a title="fabio.TiffIO.TiffIO._readImage" class="py-name" href="#" onclick="return doclink('link-78', '_readImage', 'link-78');">_readImage</a></tt><tt class="py-op">(</tt><tt class="py-name">nImage< [...]
+</div><a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO.getImage"></a><div id="TiffIO.getImage-def"><a name="L304"></a><tt class="py-lineno"> 304</tt> <a class="py-toggle" href="#" id="TiffIO.getImage-toggle" onclick="return toggle('TiffIO.getImage');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#getImage">getImage</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nImage</tt><tt class="py-op">)</tt>< [...]
+</div><div id="TiffIO.getImage-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO.getImage-expanded"><a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method fabio.TiffIO.TiffIO.getData()=fabio.TiffIO.TiffIO-class.html#getData,Method fabio.edfimage.Frame.getData()=fabio.edfimage.Frame-class.html#ge [...]
+fabio.edfimage.Frame.getData
+fabio.edfimage.edfimage.getData" class="py-name" href="#" onclick="return doclink('link-79', 'getData', 'link-79');">getData</a></tt><tt class="py-op">(</tt><tt class="py-name">nImage</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO.getInfo"></a><div id="TiffIO.getInfo-def"><a name="L307"></a><tt class="py-lineno"> 307</tt> <a class="py-toggle" href="#" id="TiffIO.getInfo-toggle" onclick="return toggle('TiffIO.getInfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#getInfo">getInfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nImage</tt><tt class="py-op">,</tt> <tt cl [...]
+</div><div id="TiffIO.getInfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO.getInfo-expanded"><a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nImage</tt> <tt class="py-op">>=</tt> <tt id="link-80" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-80', 'len', 'link-28');">len</a></tt><tt class="py-op"> [...]
+<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">            <tt class="py-comment">#update prior to raise an index error error</tt> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="fabio.TiffIO.TiffIO._updateIFD" class="py-name" href="#" onclick="return doclink('link-81', '_updateIFD', 'link-37');">_updateIFD</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line">        <tt id="link-82" class="py-name" targets="Method fabio.file_series.file_series.current()=fabio.file_series.file_series-class.html#current,Method fabio.file_series.filename_series.current()=fabio.file_series.filename_series-class.html#current"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-82', 'current', 'link-82');">current</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_IFD</tt><tt class="py-op">[</tt><tt class="py-name">nImage</tt><tt class="py-op">]</tt> </tt>
+<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method fabio.TiffIO.TiffIO._readInfo()=fabio.TiffIO.TiffIO-class.html#_readInfo"><a title="fabio.TiffIO.TiffIO._readInfo" class="py-name" href="#" onclick="return doclink('link-83', '_readInfo', 'link-83');">_readInfo</a></tt><tt class="py-op">(</tt><tt class="py-name">nImage</tt>< [...]
+</div><a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO._readInfo"></a><div id="TiffIO._readInfo-def"><a name="L314"></a><tt class="py-lineno"> 314</tt> <a class="py-toggle" href="#" id="TiffIO._readInfo-toggle" onclick="return toggle('TiffIO._readInfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#_readInfo">_readInfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nImage</tt><tt class="py-op">, [...]
+</div><div id="TiffIO._readInfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO._readInfo-expanded"><a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nImage</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCacheIndex</tt><tt class="py-op">:</tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-84" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-84', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Reading info from cache"</tt><tt class="py-op">)</tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCache</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCacheIndex</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-name">nImage</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line"> </tt>
+<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line">        <tt class="py-comment">#read the header</tt> </tt>
+<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsOpen" class="py-name" href="#" onclick="return doclink('link-85', '__makeSureFileIsOpen', 'link-39');">__makeSureFileIsOpen</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line">        <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method fabio.TiffIO.TiffIO._parseImageFileDirectory()=fabio.TiffIO.T [...]
+<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line"> </tt>
+<a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line">        <tt class="py-comment">#rows and columns</tt> </tt>
+<a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line">        <tt class="py-name">nColumns</tt> <tt class="py-op">=</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">[</tt><tt class="py-name">tagIDList</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt id="link-87" class="py-name"><a title="fabio.TiffIO.TAG_NUMBER_OF_COLUMNS" class="py-name" href="#" onclick="return doclink('link-87', 'TAG_NUMBER_OF_COLUMNS', 'link-4');">T [...]
+<a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line">        <tt class="py-name">nRows</tt> <tt class="py-op">=</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">[</tt><tt class="py-name">tagIDList</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt id="link-88" class="py-name"><a title="fabio.TiffIO.TAG_NUMBER_OF_ROWS" class="py-name" href="#" onclick="return doclink('link-88', 'TAG_NUMBER_OF_ROWS', 'link-5');">TAG_NUMBER [...]
+<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line"> </tt>
+<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line">        <tt class="py-comment">#bits per sample</tt> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line">        <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt id="link-89" class="py-name"><a title="fabio.TiffIO.TAG_BITS_PER_SAMPLE" class="py-name" href="#" onclick="return doclink('link-89', 'TAG_BITS_PER_SAMPLE', 'link-6');">TAG_BITS_PER_SAMPLE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">        <tt class="py-name">nBits</tt> <tt class="py-op">=</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line">            <tt class="py-comment">#this happens with RGB and friends, nBits is not a single value</tt> </tt>
+<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line">            <tt class="py-name">nBits</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name" targets="Method fabio.TiffIO.TiffIO._readIFDEntry()=fabio.TiffIO.TiffIO-class.html#_readIFDEntry"><a title="fabio.TiffIO.TiffIO._readIFDEntry" class="py-name" href="#" onclick="return doclink('link-90', '_readIFDEntry', 'link-90');">_readIFDEntry</a></tt><tt class=" [...]
+<a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line">                                          <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">)</tt> </tt>
+<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line"> </tt>
+<a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line"> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-92" class="py-name"><a title="fabio.TiffIO.TAG_COLORMAP" class="py-name" href="#" onclick="return doclink('link-92', 'TAG_COLORMAP', 'link-15');">TAG_COLORMAP</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">:</tt> </tt>
+<a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line">            <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt id="link-93" class="py-name"><a title="fabio.TiffIO.TAG_COLORMAP" class="py-name" href="#" onclick="return doclink('link-93', 'TAG_COLORMAP', 'link-15');">TAG_COLORMAP</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line">            <tt class="py-name">tmpColormap</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="fabio.TiffIO.TiffIO._readIFDEntry" class="py-name" href="#" onclick="return doclink('link-94', '_readIFDEntry', 'link-90');">_readIFDEntry</a></tt><tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="fabio.TiffIO.TAG_COLORMAP" class="py [...]
+<a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line">                                          <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">)</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">tmpColormap</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">255</tt><tt class="py-op">:</tt> </tt>
+<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line">                <tt class="py-name">tmpColormap</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">tmpColormap</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line">                <tt class="py-name">tmpColormap</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">tmpColormap</tt> <tt class="py-op">/</tt> <tt class="py-number">256.</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">)</tt> </tt>
+<a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line">                <tt class="py-name">tmpColormap</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">tmpColormap</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">)</tt> </tt>
+<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line">            <tt class="py-name">tmpColormap</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line">            <tt class="py-name">colormap</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">tmpColormap</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <t [...]
+<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line">            <tt class="py-name">colormap</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">tmpColormap</tt><tt class="py-op">.</tt><tt class="py-name">T</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line">            <tt class="py-name">tmpColormap</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">            <tt class="py-name">colormap</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line"> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line">        <tt class="py-comment">#sample format</tt> </tt>
+<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-96" class="py-name"><a title="fabio.TiffIO.TAG_SAMPLE_FORMAT" class="py-name" href="#" onclick="return doclink('link-96', 'TAG_SAMPLE_FORMAT', 'link-16');">TAG_SAMPLE_FORMAT</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">:</tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line">            <tt class="py-name">sampleFormat</tt> <tt class="py-op">=</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">[</tt><tt class="py-name">tagIDList</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt id="link-97" class="py-name"><a title="fabio.TiffIO.TAG_SAMPLE_FORMAT" class="py-name" href="#" onclick="return doclink('link-97', 'TAG_SAMPLE_FORMAT', 'link-16');"> [...]
+<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line">            <tt class="py-comment">#set to unknown</tt> </tt>
+<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line">            <tt class="py-name">sampleFormat</tt> <tt class="py-op">=</tt> <tt id="link-98" class="py-name"><a title="fabio.TiffIO.SAMPLE_FORMAT_VOID" class="py-name" href="#" onclick="return doclink('link-98', 'SAMPLE_FORMAT_VOID', 'link-22');">SAMPLE_FORMAT_VOID</a></tt> </tt>
+<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line"> </tt>
+<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line">        <tt class="py-comment"># compression</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line">        <tt id="link-99" class="py-name" targets="Module fabio.compression=fabio.compression-module.html"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-99', 'compression', 'link-99');">compression</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line">        <tt class="py-name">compression_type</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-100" class="py-name"><a title="fabio.TiffIO.TAG_COMPRESSION" class="py-name" href="#" onclick="return doclink('link-100', 'TAG_COMPRESSION', 'link-8');">TAG_COMPRESSION</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">:</tt> </tt>
+<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line">            <tt class="py-name">compression_type</tt> <tt class="py-op">=</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">[</tt><tt class="py-name">tagIDList</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="fabio.TiffIO.TAG_COMPRESSION" class="py-name" href="#" onclick="return doclink('link-101', 'TAG_COMPRESSION', 'link-8');" [...]
+<a name="L365"></a><tt class="py-lineno"> 365</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">compression_type</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line">                <tt id="link-102" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-102', 'compression', 'link-99');">compression</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line">                <tt id="link-103" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-103', 'compression', 'link-99');">compression</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line"> </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line">        <tt class="py-comment">#photometric interpretation</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line">        <tt class="py-name">interpretation</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-104" class="py-name"><a title="fabio.TiffIO.TAG_PHOTOMETRIC_INTERPRETATION" class="py-name" href="#" onclick="return doclink('link-104', 'TAG_PHOTOMETRIC_INTERPRETATION', 'link-7');">TAG_PHOTOMETRIC_INTERPRETATION</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">:</tt> </tt>
+<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line">            <tt class="py-name">interpretation</tt> <tt class="py-op">=</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">[</tt><tt class="py-name">tagIDList</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt id="link-105" class="py-name"><a title="fabio.TiffIO.TAG_PHOTOMETRIC_INTERPRETATION" class="py-name" href="#" onclick="return doclink('link-105', 'TAG_PHOTOMETRIC_ [...]
+<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"WARNING: Non standard TIFF. Photometric interpretation TAG missing"</tt><tt class="py-op">)</tt> </tt>
+<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line">        <tt class="py-name">helpString</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Variable fabio.version=fabio-module.html#version"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-106', 'version', 'link-106');">version</a></tt> <tt class="py-op">></tt> <tt class="py-string">'2.6'</tt><tt class="py-op">:</tt> </tt>
+<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line">            <tt class="py-name">helpString</tt> <tt class="py-op">=</tt> <tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-string">'b""'</tt><tt class="py-op">)</tt> </tt>
+<a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line"> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-107" class="py-name"><a title="fabio.TiffIO.TAG_IMAGE_DESCRIPTION" class="py-name" href="#" onclick="return doclink('link-107', 'TAG_IMAGE_DESCRIPTION', 'link-9');">TAG_IMAGE_DESCRIPTION</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">:</tt> </tt>
+<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line">            <tt class="py-name">imageDescription</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="fabio.TiffIO.TiffIO._readIFDEntry" class="py-name" href="#" onclick="return doclink('link-108', '_readIFDEntry', 'link-90');">_readIFDEntry</a></tt><tt class="py-op">(</tt><tt id="link-109" class="py-name"><a title="fabio.TiffIO.TAG_IMAGE_DESCR [...]
+<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">                    <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">)</tt> </tt>
+<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">imageDescription</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">type< [...]
+<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line">                <tt class="py-name">imageDescription</tt> <tt class="py-op">=</tt> <tt class="py-name">helpString</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">imageDescription</tt><tt class="py-op">)</tt> </tt>
+<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line">            <tt class="py-name">imageDescription</tt> <tt class="py-op">=</tt> <tt class="py-string">"%d/%d"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">nImage</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt id="link-110" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-110', 'len',  [...]
+<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line"> </tt>
+<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-111', 'version', 'link-106');">version</a></tt> <tt class="py-op"><</tt> <tt class="py-string">'3.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line">            <tt class="py-name">defaultSoftware</tt> <tt class="py-op">=</tt> <tt class="py-string">"Unknown Software"</tt> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line">            <tt class="py-name">defaultSoftware</tt> <tt class="py-op">=</tt> <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown Software"</tt><tt class="py-op">,</tt> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line">                                    <tt class="py-name">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-112" class="py-name"><a title="fabio.TiffIO.TAG_SOFTWARE" class="py-name" href="#" onclick="return doclink('link-112', 'TAG_SOFTWARE', 'link-13');">TAG_SOFTWARE</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">:</tt> </tt>
+<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line">            <tt class="py-name">software</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="fabio.TiffIO.TiffIO._readIFDEntry" class="py-name" href="#" onclick="return doclink('link-113', '_readIFDEntry', 'link-90');">_readIFDEntry</a></tt><tt class="py-op">(</tt><tt id="link-114" class="py-name"><a title="fabio.TiffIO.TAG_SOFTWARE" class="py [...]
+<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line">                    <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">)</tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">software</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt  [...]
+<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line">                <tt class="py-name">software</tt> <tt class="py-op">=</tt> <tt class="py-name">helpString</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">software</tt><tt class="py-op">)</tt> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line">            <tt class="py-name">software</tt> <tt class="py-op">=</tt> <tt class="py-name">defaultSoftware</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line"> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">software</tt> <tt class="py-op">==</tt> <tt class="py-name">defaultSoftware</tt><tt class="py-op">:</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-115', 'version', 'link-106');">version</a></tt> <tt class="py-op"><</tt> <tt class="py-string">'3.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">imageDescription</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"IMAGEJ"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line">                        <tt class="py-name">software</tt> <tt class="py-op">=</tt> <tt class="py-name">imageDescription</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"="</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line">                    <tt class="py-name">tmpString</tt> <tt class="py-op">=</tt> <tt class="py-name">imageDescription</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">tmpString</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"IMAGEJ"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line">                        <tt class="py-name">software</tt> <tt class="py-op">=</tt> <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">tmpString</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"="</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line">                                         <tt class="py-name">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line"> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-116" class="py-name"><a title="fabio.TiffIO.TAG_DATE" class="py-name" href="#" onclick="return doclink('link-116', 'TAG_DATE', 'link-14');">TAG_DATE</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">:</tt> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line">            <tt class="py-name">date</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="fabio.TiffIO.TiffIO._readIFDEntry" class="py-name" href="#" onclick="return doclink('link-117', '_readIFDEntry', 'link-90');">_readIFDEntry</a></tt><tt class="py-op">(</tt><tt id="link-118" class="py-name"><a title="fabio.TiffIO.TAG_DATE" class="py-name" h [...]
+<a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line">                    <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">)</tt> </tt>
+<a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt clas [...]
+<a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line">                <tt class="py-name">date</tt> <tt class="py-op">=</tt> <tt class="py-name">helpString</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">)</tt> </tt>
+<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line">            <tt class="py-name">date</tt> <tt class="py-op">=</tt> <tt class="py-string">"Unknown Date"</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line"> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">        <tt class="py-name">stripOffsets</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="fabio.TiffIO.TiffIO._readIFDEntry" class="py-name" href="#" onclick="return doclink('link-119', '_readIFDEntry', 'link-90');">_readIFDEntry</a></tt><tt class="py-op">(</tt><tt id="link-120" class="py-name"><a title="fabio.TiffIO.TAG_STRIP_OFFSETS" clas [...]
+<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line">                        <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">)</tt> </tt>
+<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-121" class="py-name"><a title="fabio.TiffIO.TAG_ROWS_PER_STRIP" class="py-name" href="#" onclick="return doclink('link-121', 'TAG_ROWS_PER_STRIP', 'link-11');">TAG_ROWS_PER_STRIP</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">:</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">            <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="fabio.TiffIO.TiffIO._readIFDEntry" class="py-name" href="#" onclick="return doclink('link-122', '_readIFDEntry', 'link-90');">_readIFDEntry</a></tt><tt class="py-op">(</tt><tt id="link-123" class="py-name"><a title="fabio.TiffIO.TAG_ROWS_PER_STRIP" [...]
+<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">                        <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">            <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">nRows</tt> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"WARNING: Non standard TIFF. Rows per strip TAG missing"</tt><tt class="py-op">)</tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line"> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-124" class="py-name"><a title="fabio.TiffIO.TAG_STRIP_BYTE_COUNTS" class="py-name" href="#" onclick="return doclink('link-124', 'TAG_STRIP_BYTE_COUNTS', 'link-12');">TAG_STRIP_BYTE_COUNTS</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tagIDList</tt><tt class="py-op">:</tt> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line">            <tt class="py-name">stripByteCounts</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="fabio.TiffIO.TiffIO._readIFDEntry" class="py-name" href="#" onclick="return doclink('link-125', '_readIFDEntry', 'link-90');">_readIFDEntry</a></tt><tt class="py-op">(</tt><tt id="link-126" class="py-name"><a title="fabio.TiffIO.TAG_STRIP_BYTE_C [...]
+<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">                        <tt class="py-name">tagIDList</tt><tt class="py-op">,</tt> <tt class="py-name">fieldTypeList</tt><tt class="py-op">,</tt> <tt class="py-name">nValuesList</tt><tt class="py-op">,</tt> <tt class="py-name">valueOffsetList</tt><tt class="py-op">)</tt> </tt>
+<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"WARNING: Non standard TIFF. Strip byte counts TAG missing"</tt><tt class="py-op">)</tt> </tt>
+<a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">nBits</tt><tt class="py-op">,</tt> <tt class="py-string">'index'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line">                <tt class="py-name">expectedSum</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">n</tt> <tt class="py-keyword">in</tt> <tt class="py-name">nBits</tt><tt class="py-op">:</tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">                    <tt class="py-name">expectedSum</tt> <tt class="py-op">+=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">*</tt> <tt class="py-name">nColumns</tt> <tt class="py-op">*</tt> <tt class="py-name">n</tt> <tt class="py-op">/</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">                <tt class="py-name">expectedSum</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">*</tt> <tt class="py-name">nColumns</tt> <tt class="py-op">*</tt> <tt class="py-name">nBits</tt> <tt class="py-op">/</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line">            <tt class="py-name">stripByteCounts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">expectedSum</tt><tt class="py-op">]</tt> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line"> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">close</tt><tt class="py-op">:</tt> </tt>
+<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsClosed" class="py-name" href="#" onclick="return doclink('link-127', '__makeSureFileIsClosed', 'link-41');">__makeSureFileIsClosed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line"> </tt>
+<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forceMonoOutput</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">interpretation</tt> <tt class="py-op">></tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line">            <tt class="py-comment">#color image but asked monochrome output</tt> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line">            <tt class="py-name">nBits</tt> <tt class="py-op">=</tt> <tt class="py-number">32</tt> </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line">            <tt class="py-name">colormap</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line">            <tt class="py-name">sampleFormat</tt> <tt class="py-op">=</tt> <tt id="link-128" class="py-name"><a title="fabio.TiffIO.SAMPLE_FORMAT_FLOAT" class="py-name" href="#" onclick="return doclink('link-128', 'SAMPLE_FORMAT_FLOAT', 'link-21');">SAMPLE_FORMAT_FLOAT</a></tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">            <tt class="py-name">interpretation</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line">            <tt class="py-comment">#we cannot rely on any cache in this case</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">            <tt class="py-name">useInfoCache</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-129" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-129', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"FORCED MONO"</tt><tt class="py-op">)</tt> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">            <tt class="py-name">useInfoCache</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line"> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line">        <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nRows"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">nRows</tt> </tt>
+<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nColumns"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">nColumns</tt> </tt>
+<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nBits"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">nBits</tt> </tt>
+<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"compression"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-130" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-130', 'compression', 'link-99');">compression</a></tt> </tt>
+<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"compression_type"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">compression_type</tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"imageDescription"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">imageDescription</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripOffsets"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">stripOffsets</tt> <tt class="py-comment">#This contains the file offsets to the data positions</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"rowsPerStrip"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">rowsPerStrip</tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripByteCounts"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">stripByteCounts</tt> <tt class="py-comment">#bytes in strip since I do not support compression</tt> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"software"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">software</tt> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"date"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">date</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"colormap"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">colormap</tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"sampleFormat"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">sampleFormat</tt> </tt>
+<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"photometricInterpretation"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">interpretation</tt> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">        <tt class="py-name">infoDict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-131', 'version', 'link-106');">version</a></tt> <tt class="py-op"><</tt> <tt class="py-string">'3.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line">            <tt class="py-name">testString</tt> <tt class="py-op">=</tt> <tt class="py-string">'PyMca'</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line">            <tt class="py-name">testString</tt> <tt class="py-op">=</tt> <tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-string">'b"PyMca"'</tt><tt class="py-op">)</tt> </tt>
+<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">software</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-name">testString</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">            <tt class="py-comment">#str to make sure python 2.x sees it as string and not unicode</tt> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-132', 'version', 'link-106');">version</a></tt> <tt class="py-op"><</tt> <tt class="py-string">'3.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line">                <tt class="py-name">descriptionString</tt> <tt class="py-op">=</tt> <tt class="py-name">imageDescription</tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">                <tt class="py-name">descriptionString</tt> <tt class="py-op">=</tt> <tt id="link-133" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-133', 'str', 'link-133');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">imageDescription</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line">            <tt class="py-comment">#interpret the image description in terms of supplied</tt> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line">            <tt class="py-comment">#information at writing time</tt> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line">            <tt class="py-name">items</tt> <tt class="py-op">=</tt> <tt class="py-name">descriptionString</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt><tt class="py-op">)</tt> </tt>
+<a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-134" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-134', 'i', 'link-60');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-135" class="py-name"><a title="fabio.file_series.file_series.len" class= [...]
+<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line">                <tt id="link-136" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-136', 'key', 'link-136');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">items</tt><tt class="py-op">[</tt><tt id="link-137" class="py-name"> [...]
+<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line">                <tt class="py-comment">#get rid of the \n at the end of the value </tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">items</tt><tt class="py-op">[</tt><tt id="link-138" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-138', 'i', 'link-60');">i</a></tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt  [...]
+<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line">                <tt class="py-name">infoDict</tt><tt class="py-op">[</tt><tt id="link-139" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-139', 'key', 'link-136');">key</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
+<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">'info'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infoDict</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line"> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_maxImageCacheLength</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">useInfoCache</tt><tt class="py-op">:</tt> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCacheIndex</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">nImage</tt><tt class="py-op">)</tt> </tt>
+<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCache</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">info</tt><tt class="py-op">)</tt> </tt>
+<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-140" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-140', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCacheIndex</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">self</tt>< [...]
+<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCacheIndex</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCacheIndex</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_maxImageCacheLength</tt><tt class="py-op">]</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCache</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageInfoCache</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_maxImageCacheLength</tt><tt class="py-op">]</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">info</tt> </tt>
+</div><a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO._readImage"></a><div id="TiffIO._readImage-def"><a name="L504"></a><tt class="py-lineno"> 504</tt> <a class="py-toggle" href="#" id="TiffIO._readImage-toggle" onclick="return toggle('TiffIO._readImage');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#_readImage">_readImage</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nImage</tt><tt class="py [...]
+</div><div id="TiffIO._readImage-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO._readImage-expanded"><a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-141" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-141', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Reading image %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">nImage</tt><tt class="py-op">)</tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'close'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kw</tt><tt class="py-op">:</tt> </tt>
+<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line">            <tt class="py-name">close</tt> <tt class="py-op">=</tt> <tt class="py-name">kw</tt><tt class="py-op">[</tt><tt class="py-string">'close'</tt><tt class="py-op">]</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line">            <tt class="py-name">close</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line">        <tt class="py-name">rowMin</tt> <tt class="py-op">=</tt> <tt class="py-name">kw</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'rowMin'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line">        <tt class="py-name">rowMax</tt> <tt class="py-op">=</tt> <tt class="py-name">kw</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">'rowMax'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nImage</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCacheIndex</tt><tt class="py-op">:</tt> </tt>
+<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-142" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-142', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Reading image data from cache"</tt><tt class="py-op">)</tt> </tt>
+<a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCache</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCacheIndex</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-name">nImage</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line"> </tt>
+<a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsOpen" class="py-name" href="#" onclick="return doclink('link-143', '__makeSureFileIsOpen', 'link-39');">__makeSureFileIsOpen</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forceMonoOutput</tt><tt class="py-op">:</tt> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line">            <tt class="py-name">oldMono</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line">            <tt class="py-name">oldMono</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forceMonoOutput</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line">            <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="fabio.TiffIO.TiffIO._readInfo" class="py-name" href="#" onclick="return doclink('link-144', '_readInfo', 'link-83');">_readInfo</a></tt><tt class="py-op">(</tt><tt class="py-name">nImage</tt><tt class="py-op">,</tt> <tt class="py-name">close</tt><tt class= [...]
+<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forceMonoOutput</tt> <tt class="py-op">=</tt> <tt class="py-name">oldMono</tt> </tt>
+<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forceMonoOutput</tt> <tt class="py-op">=</tt> <tt class="py-name">oldMono</tt> </tt>
+<a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> </tt>
+<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line">        <tt id="link-145" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-145', 'compression', 'link-99');">compression</a></tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">'compression'</tt><tt class="py-op">]</tt> </tt>
+<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">        <tt class="py-name">compression_type</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">'compression_type'</tt><tt class="py-op">]</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-146" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-146', 'compression', 'link-99');">compression</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">compression_type</tt> <tt class="py-op">!=</tt> <tt class="py-number">32773</tt><tt class="py-op">:</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">"Compressed TIFF images not supported except packbits"</tt><tt class="py-op">)</tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line">                <tt class="py-comment">#PackBits compression</tt> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-147" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-147', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">                    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Using PackBits compression"</tt><tt class="py-op">)</tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line"> </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">        <tt class="py-name">interpretation</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"photometricInterpretation"</tt><tt class="py-op">]</tt> </tt>
+<a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">interpretation</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line">            <tt class="py-comment">#RGB</tt> </tt>
+<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line">            <tt class="py-comment">#raise IOError("RGB Image. Only grayscale images supported")</tt> </tt>
+<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">interpretation</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
+<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line">            <tt class="py-comment">#Palette Color Image</tt> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line">            <tt class="py-comment">#raise IOError("Palette-color Image. Only grayscale images supported")</tt> </tt>
+<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">interpretation</tt> <tt class="py-op">></tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">            <tt class="py-comment">#Palette Color Image</tt> </tt>
+<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">"Only grayscale images supported"</tt><tt class="py-op">)</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line"> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">        <tt class="py-name">nRows</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nRows"</tt><tt class="py-op">]</tt> </tt>
+<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line">        <tt class="py-name">nColumns</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nColumns"</tt><tt class="py-op">]</tt> </tt>
+<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">        <tt class="py-name">nBits</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nBits"</tt><tt class="py-op">]</tt> </tt>
+<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">        <tt class="py-name">colormap</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"colormap"</tt><tt class="py-op">]</tt> </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line">        <tt class="py-name">sampleFormat</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"sampleFormat"</tt><tt class="py-op">]</tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line"> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">rowMin</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line">            <tt class="py-name">rowMin</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line"> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">rowMax</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">            <tt class="py-name">rowMax</tt> <tt class="py-op">=</tt> <tt class="py-name">nRows</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line"> </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">rowMin</tt> <tt class="py-op"><</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line">            <tt class="py-name">rowMin</tt> <tt class="py-op">=</tt> <tt class="py-name">nRows</tt> <tt class="py-op">-</tt> <tt class="py-name">rowMin</tt> </tt>
+<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line"> </tt>
+<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">rowMax</tt> <tt class="py-op"><</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">            <tt class="py-name">rowMax</tt> <tt class="py-op">=</tt> <tt class="py-name">nRows</tt> <tt class="py-op">-</tt> <tt class="py-name">rowMax</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line"> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">rowMax</tt> <tt class="py-op"><</tt> <tt class="py-name">rowMin</tt><tt class="py-op">:</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">            <tt class="py-name">txt</tt> <tt class="py-op">=</tt> <tt class="py-string">"Max Row smaller than Min Row. Reverse selection not supported"</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplemented</tt><tt class="py-op">(</tt><tt class="py-name">txt</tt><tt class="py-op">)</tt> </tt>
+<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line"> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">rowMin</tt> <tt class="py-op">>=</tt> <tt class="py-name">nRows</tt><tt class="py-op">:</tt> </tt>
+<a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IndexError</tt><tt class="py-op">(</tt><tt class="py-string">"Image only has %d rows"</tt> <tt class="py-op">%</tt> <tt class="py-name">nRows</tt><tt class="py-op">)</tt> </tt>
+<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line"> </tt>
+<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">rowMax</tt> <tt class="py-op">>=</tt> <tt class="py-name">nRows</tt><tt class="py-op">:</tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IndexError</tt><tt class="py-op">(</tt><tt class="py-string">"Image only has %d rows"</tt> <tt class="py-op">%</tt> <tt class="py-name">nRows</tt><tt class="py-op">)</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line"> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sampleFormat</tt> <tt class="py-op">==</tt> <tt id="link-148" class="py-name"><a title="fabio.TiffIO.SAMPLE_FORMAT_FLOAT" class="py-name" href="#" onclick="return doclink('link-148', 'SAMPLE_FORMAT_FLOAT', 'link-21');">SAMPLE_FORMAT_FLOAT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">nBits</tt> <tt class="py-op">==</tt> <tt class="py-number">32</tt><tt class="py-op">:</tt> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">nBits</tt> <tt class="py-op">==</tt> <tt class="py-number">64</tt><tt class="py-op">:</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Unsupported number of bits for a float: %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">nBits</tt><tt class="py-op">)</tt> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">sampleFormat</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-149" class="py-name"><a title="fabio.TiffIO.SAMPLE_FORMAT_UINT" class="py-name" href="#" onclick="return doclink('link-149', 'SAMPLE_FORMAT_UINT', 'link-19');">SAMPLE_FORMAT_UINT</a></tt><tt class="py-op">,</tt> <tt id="link-150" class="py-name"><a title="fabio.TiffIO.SAMP [...]
+<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">nBits</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt cla [...]
+<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">nBits</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-number">16</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt>< [...]
+<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">nBits</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">32</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">32</tt><tt class="py-op">,</tt> <tt class="py-number">32</tt><tt class="py-op">,</tt> <tt class="py-number">32</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt>< [...]
+<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">nBits</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">64</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">64</tt><tt class="py-op">,</tt> <tt class="py-number">64</tt><tt class="py-op">,</tt> <tt class="py-number">64</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt>< [...]
+<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint64</tt> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Unsupported number of bits for unsigned int: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">nBits</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">sampleFormat</tt> <tt class="py-op">==</tt> <tt id="link-151" class="py-name"><a title="fabio.TiffIO.SAMPLE_FORMAT_INT" class="py-name" href="#" onclick="return doclink('link-151', 'SAMPLE_FORMAT_INT', 'link-20');">SAMPLE_FORMAT_INT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">nBits</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt cla [...]
+<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int8</tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">nBits</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-number">16</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt>< [...]
+<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int16</tt> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">nBits</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">32</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">32</tt><tt class="py-op">,</tt> <tt class="py-number">32</tt><tt class="py-op">,</tt> <tt class="py-number">32</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt>< [...]
+<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">nBits</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">64</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">64</tt><tt class="py-op">,</tt> <tt class="py-number">64</tt><tt class="py-op">,</tt> <tt class="py-number">64</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt>< [...]
+<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int64</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Unsupported number of bits for signed int: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">nBits</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Unsupported combination. Bits = %s  Format = %d"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">nBits</tt><tt class="py-op">,</tt> <tt class="py-name">sampleFormat</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">nBits</tt><tt class="py-op">,</tt> <tt class="py-string">'index'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">            <tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">,</tt> <tt id="link-152" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onc [...]
+<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">colormap</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">            <tt class="py-comment">#should I use colormap dtype?</tt> </tt>
+<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">            <tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt> [...]
+<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">            <tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">dtype</tt [...]
+<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line"> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">        <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">        <tt class="py-name">stripOffsets</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripOffsets"</tt><tt class="py-op">]</tt> <tt class="py-comment">#This contains the file offsets to the data positions</tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line">        <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"rowsPerStrip"</tt><tt class="py-op">]</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">        <tt class="py-name">stripByteCounts</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripByteCounts"</tt><tt class="py-op">]</tt> <tt class="py-comment">#bytes in strip since I do not support compression</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line"> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">        <tt class="py-name">rowStart</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-153" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-153', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">stripOffsets</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line">            <tt class="py-name">bytesPerRow</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">stripByteCounts</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-name">rowsPerStrip</tt><tt class="py-op">)</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-154', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">stripOffsets</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">row [...]
+<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">            <tt class="py-name">nBytes</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">rowMax</tt> <tt class="py-op">-</tt> <tt class="py-name">rowMin</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">bytesPerRow</tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_swap</tt><tt class="py-op">:</tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line">                <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-155', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nBytes</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line">                <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-156', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nBytes</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">nBits</tt><tt class="py-op">,</tt> <tt class="py-string">'index'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line">                <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">,</tt> <tt id="link-157" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-157', 'len', 'link-28') [...]
+<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">'colormap'</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line">                <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">colormap</tt><tt class="py-op">[</tt><tt class="py-name">readout</tt><tt class="py-op">]</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line">                <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">            <tt class="py-name">image</tt><tt class="py-op">[</tt><tt class="py-name">rowMin</tt><tt class="py-op">:</tt><tt class="py-name">rowMax</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">readout</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-158" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-158', 'i', 'link-60');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt id="link-159" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-159 [...]
+<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line">                <tt class="py-comment">#the amount of rows</tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line">                <tt class="py-name">nRowsToRead</tt> <tt class="py-op">=</tt> <tt class="py-name">rowsPerStrip</tt> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">                <tt class="py-name">rowEnd</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">rowStart</tt> <tt class="py-op">+</tt> <tt class="py-name">nRowsToRead</tt><tt class="py-op">,</tt> <tt class="py-name">nRows</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">rowEnd</tt> <tt class="py-op"><</tt> <tt class="py-name">rowMin</tt><tt class="py-op">:</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line">                    <tt class="py-name">rowStart</tt> <tt class="py-op">+=</tt> <tt class="py-name">nRowsToRead</tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line">                    <tt class="py-keyword">continue</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">rowStart</tt> <tt class="py-op">></tt> <tt class="py-name">rowMax</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line">                <tt class="py-comment">#we are in position</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line">                <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-160', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">stripOffsets</tt><tt class="py-op">[</tt><tt id="link-161" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick= [...]
+<a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line">                <tt class="py-comment">#the amount of bytes to read</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">                <tt class="py-name">nBytes</tt> <tt class="py-op">=</tt> <tt class="py-name">stripByteCounts</tt><tt class="py-op">[</tt><tt id="link-162" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-162', 'i', 'link-60');">i</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">compression_type</tt> <tt class="py-op">==</tt> <tt class="py-number">32773</tt><tt class="py-op">:</tt> </tt>
+<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line">                        <tt class="py-name">bufferBytes</tt> <tt class="py-op">=</tt> <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">                        <tt class="py-comment">#python 2.5 ...</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line">                        <tt class="py-name">bufferBytes</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line">                    <tt class="py-comment">#packBits</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line">                    <tt class="py-name">readBytes</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line">                    <tt class="py-comment">#intermediate buffer</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line">                    <tt class="py-name">tmpBuffer</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-163', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nBytes</tt><tt class="py-op">)</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line">                    <tt class="py-keyword">while</tt> <tt class="py-name">readBytes</tt> <tt class="py-op"><</tt> <tt class="py-name">nBytes</tt><tt class="py-op">:</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line">                        <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-164', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-name">tmpBuffer</tt><tt class="py-op">[</tt><tt class="py-name">readBytes</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-name">readBytes</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="p [...]
+<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line">                        <tt class="py-name">readBytes</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">>=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line">                            <tt class="py-comment">#should I prevent reading more than the</tt> </tt>
+<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line">                            <tt class="py-comment">#length of the chain? Let's python raise</tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line">                            <tt class="py-comment">#the exception...</tt> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">                            <tt class="py-name">bufferBytes</tt> <tt class="py-op">+=</tt> <tt class="py-name">tmpBuffer</tt><tt class="py-op">[</tt><tt class="py-name">readBytes</tt><tt class="py-op">:</tt>\ </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">                                                      <tt class="py-name">readBytes</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line">                            <tt class="py-name">readBytes</tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line">                        <tt class="py-keyword">elif</tt> <tt class="py-name">n</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">128</tt><tt class="py-op">:</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line">                            <tt class="py-name">bufferBytes</tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-name">n</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">tmpBuffer</tt><tt class="py-op">[</tt><tt class="py-name">readBytes</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class=" [...]
+<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line">                            <tt class="py-name">readBytes</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">                            <tt class="py-comment">#if read -128 ignore the byte</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line">                            <tt class="py-keyword">continue</tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_swap</tt><tt class="py-op">:</tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">                        <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">bufferBytes</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line">                        <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">bufferBytes</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">nBits</tt><tt class="py-op">,</tt> <tt class="py-string">'index'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">                        <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">,</tt> <tt id="link-165" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-165', 'len', 'l [...]
+<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line">                    <tt class="py-keyword">elif</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">'colormap'</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">                        <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">colormap</tt><tt class="py-op">[</tt><tt class="py-name">readout</tt><tt class="py-op">]</tt> </tt>
+<a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line">                        <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line">                        <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line">                    <tt class="py-name">image</tt><tt class="py-op">[</tt><tt class="py-name">rowStart</tt><tt class="py-op">:</tt><tt class="py-name">rowEnd</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">readout</tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">                        <tt class="py-comment">#use numpy</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_swap</tt><tt class="py-op">:</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-166', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nBytes</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-167', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nBytes</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">nBits</tt><tt class="py-op">,</tt> <tt class="py-string">'index'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">,</tt> <tt id="link-168" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-168', 'len' [...]
+<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">                        <tt class="py-keyword">elif</tt> <tt class="py-name">colormap</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">colormap</tt><tt class="py-op">[</tt><tt class="py-name">readout</tt><tt class="py-op">]</tt> </tt>
+<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">                        <tt class="py-name">image</tt><tt class="py-op">[</tt><tt class="py-name">rowStart</tt><tt class="py-op">:</tt><tt class="py-name">rowEnd</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">readout</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">                        <tt class="py-comment">#using struct</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">                        <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-169', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">"%df"</tt> <tt class="py-op">%</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nBytes</tt> <tt class="py-op">/</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fd [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-170', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">nBytes</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">                                              <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">nBits</tt><tt class="py-op">,</tt> <tt class="py-string">'index'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">,</tt> <tt id="link-171" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-171', 'len' [...]
+<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">                        <tt class="py-keyword">elif</tt> <tt class="py-name">colormap</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt> <tt class="py-op">=</tt> <tt class="py-name">colormap</tt><tt class="py-op">[</tt><tt class="py-name">readout</tt><tt class="py-op">]</tt> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">                            <tt class="py-name">readout</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">                        <tt class="py-name">image</tt><tt class="py-op">[</tt><tt class="py-name">rowStart</tt><tt class="py-op">:</tt><tt class="py-name">rowEnd</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">readout</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">                <tt class="py-name">rowStart</tt> <tt class="py-op">+=</tt> <tt class="py-name">nRowsToRead</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">close</tt><tt class="py-op">:</tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsClosed" class="py-name" href="#" onclick="return doclink('link-172', '__makeSureFileIsClosed', 'link-41');">__makeSureFileIsClosed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line"> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-173" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-173', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</t [...]
+<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">            <tt class="py-comment">#color image</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forceMonoOutput</tt><tt class="py-op">:</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">                <tt class="py-comment">#color image, convert to monochrome</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">                <tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">image</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-number">0.114</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line">                         <tt class="py-name">image</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-number">0.587</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">                         <tt class="py-name">image</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-number">0.299</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt> [...]
+<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line"> </tt>
+<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">rowMin</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">rowMax</tt> <tt class="py-op">==</tt> <tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> [...]
+<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCacheIndex</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">nImage</tt><tt class="py-op">)</tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCache</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">image</tt><tt class="py-op">)</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-174" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-174', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCacheIndex</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">self</tt>< [...]
+<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCacheIndex</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCacheIndex</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_maxImageCacheLength</tt><tt class="py-op">]</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCache</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_imageDataCache</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_maxImageCacheLength</tt><tt class="py-op">]</tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line"> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">image</tt> </tt>
+</div><a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO.writeImage"></a><div id="TiffIO.writeImage-def"><a name="L742"></a><tt class="py-lineno"> 742</tt> <a class="py-toggle" href="#" id="TiffIO.writeImage-toggle" onclick="return toggle('TiffIO.writeImage');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#writeImage">writeImage</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">image0</tt><tt class="py [...]
+</div><div id="TiffIO.writeImage-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO.writeImage-expanded"><a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">software</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line">            <tt class="py-name">software</tt> <tt class="py-op">=</tt> <tt class="py-string">'PyMca.TiffIO'</tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line">        <tt class="py-comment">#if date is None:</tt> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">        <tt class="py-comment">#    date = time.ctime()</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line"> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsOpen" class="py-name" href="#" onclick="return doclink('link-175', '__makeSureFileIsOpen', 'link-39');">__makeSureFileIsOpen</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line">        <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line">        <tt class="py-comment">#prior to do anything, perform some tests</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-176" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-176', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">image0</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Empty image"</tt><tt class="py-op">)</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-177" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-177', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">image0</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</ [...]
+<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line">            <tt class="py-comment">#get a different view</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line">            <tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt class="py-name">image0</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">            <tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">            <tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt class="py-name">image0</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line"> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt> <tt class="py-op">==</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">:</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line">            <tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">)</tt> </tt>
+<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-178', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line">        <tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">mode</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">        <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'w'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">            <tt class="py-comment">#we have to overwrite the file</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsClosed" class="py-name" href="#" onclick="return doclink('link-179', '__makeSureFileIsClosed', 'link-41');">__makeSureFileIsClosed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line">            <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name" targets="Method fabio.cbfimage.CIF.exists()=fabio.cbfimage.CIF-class.html#exists"><a title="fabio.cbfimage.CIF.exists" class="py-name" href="#" onclick="return doclink('link-180', 'exists', 'link-180');">exists</a></tt><tt class="py-op">(< [...]
+<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line">                <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">            <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'wb+'</tt><tt class="py-op">)</tt> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name" targets="Method fabio.TiffIO.TiffIO._initEmptyFile()=fabio.TiffIO.TiffIO-class.html#_initEmptyFile"><a title="fabio.TiffIO.TiffIO._initEmptyFile" class="py-name" href="#" onclick="return doclink('link-181', '_initEmptyFile', 'link-181');">_initEmptyFile</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt clas [...]
+<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">        <tt class="py-comment">#read the file size</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsOpen" class="py-name" href="#" onclick="return doclink('link-182', '__makeSureFileIsOpen', 'link-39');">__makeSureFileIsOpen</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">        <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-183', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_END</tt><tt class="py-op">)</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">        <tt class="py-name">endOfFile</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="fabio.TiffIO.TiffIO._initEmptyFile" class="py-name" href="#" onclick="return doclink('link-184', '_initEmptyFile', 'link-181');">_initEmptyFile</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-185', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_END</tt><tt class="py-op">)</tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">            <tt class="py-name">endOfFile</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line"> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">        <tt class="py-comment">#init internal variables</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="fabio.TiffIO.TiffIO._initInternalVariables" class="py-name" href="#" onclick="return doclink('link-186', '_initInternalVariables', 'link-25');">_initInternalVariables</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line"> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">        <tt class="py-comment">#get the image file directories</tt> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">        <tt class="py-name">nImages</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="fabio.TiffIO.TiffIO.getImageFileDirectories" class="py-name" href="#" onclick="return doclink('link-187', 'getImageFileDirectories', 'link-32');">getImageFileDirectories</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-188" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-188', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"File contains %d images"</tt> <tt class="py-op">%</tt> <tt class="py-name">nImages</tt><tt class="py-op">)</tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nImages</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-189', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'I'</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name" targets="Method fabio.GEimage.GEimage.write()=fabio.GEimage.GEimage-class.html#write,Method fabio.OXDimage.OXDimage.write()=fabio.OXDimage.OXDimage-class.html#write,Method fabio.adscimage.adscimage.write()=fabio.adscimage.adscimage-class.html#write,Method fabio.binaryimage.binaryimage.write()=fabio.binaryimage.binaryimage [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-190', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">endOfFile</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-191', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_IFD</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt  [...]
+<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'H'</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">            <tt class="py-name">numberOfDirectoryEntries</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-192', 'unpack', 'link-30');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-193', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">calcsize</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'I'</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">            <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_IFD</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py-number">12</tt> <tt class="py-op">*</tt> <tt class="py-name">numberOfDirectory [...]
+<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-194', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">pos</tt><tt class="py-op">)</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'I'</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-195', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">endOfFile</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line"> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">        <tt class="py-comment">#and we can write at the end of the file, find out the file length</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-196', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_END</tt><tt class="py-op">)</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line"> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">        <tt class="py-comment">#get the description information from the input information</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">info</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">            <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt class="py-name">info</tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">            <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s"</tt> <tt class="py-op">%</tt> <tt class="py-string">""</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-197" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-197', 'key', 'link-136');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">info</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">                <tt class="py-name">description</tt> <tt class="py-op">+=</tt> <tt class="py-string">"%s=%s\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-198" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-198', 'key', 'link-136');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt id="link-199" [...]
+<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line"> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">        <tt class="py-comment">#get the image file directory</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-200" class="py-name" targets="Method fabio.TiffIO.TiffIO._getOutputIFD()=fabio.TiffIO.TiffIO-class.html#_getOutputIFD"><a title="fabio.TiffIO.TiffIO._getOutputIFD" class="py-name" href="#" onclick="return doclink('link-200', '_getOutputIFD', 'link-200');">_getOutputIFD</a></tt><tt clas [...]
+<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">                                              <tt class="py-name">software</tt><tt class="py-op">=</tt><tt class="py-name">software</tt><tt class="py-op">,</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">                                              <tt class="py-name">date</tt><tt class="py-op">=</tt><tt class="py-name">date</tt><tt class="py-op">)</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line"> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">        <tt class="py-comment">#write the new IFD</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-201', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">outputIFD</tt><tt class="py-op">)</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line"> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">        <tt class="py-comment">#write the image</tt> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_swap</tt><tt class="py-op">:</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-202', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabio [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-203', 'tostring', 'link-203');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-204', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">image</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-205', 'tostring', 'link-203');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line"> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="fabio.TiffIO.TiffIO.__makeSureFileIsClosed" class="py-name" href="#" onclick="return doclink('link-206', '__makeSureFileIsClosed', 'link-41');">__makeSureFileIsClosed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO._initEmptyFile"></a><div id="TiffIO._initEmptyFile-def"><a name="L837"></a><tt class="py-lineno"> 837</tt> <a class="py-toggle" href="#" id="TiffIO._initEmptyFile-toggle" onclick="return toggle('TiffIO._initEmptyFile');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#_initEmptyFile">_initEmptyFile</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param"> [...]
+</div><div id="TiffIO._initEmptyFile-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO._initEmptyFile-expanded"><a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">            <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">byteorder</tt> <tt class="py-op">==</tt> <tt class="py-string">"little"</tt><tt class="py-op">:</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">            <tt class="py-name">order</tt> <tt class="py-op">=</tt> <tt class="py-string">"II"</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">            <tt class="py-comment">#intel, little endian</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">            <tt class="py-name">fileOrder</tt> <tt class="py-op">=</tt> <tt class="py-string">"little"</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> <tt class="py-op">=</tt> <tt class="py-string">'<'</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">            <tt class="py-name">order</tt> <tt class="py-op">=</tt> <tt class="py-string">"MM"</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">            <tt class="py-comment">#motorola, high endian</tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line">            <tt class="py-name">fileOrder</tt> <tt class="py-op">=</tt> <tt class="py-string">"big"</tt> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> <tt class="py-op">=</tt> <tt class="py-string">'>'</tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">fileOrder</tt> <tt class="py-op">==</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">byteorder</tt><tt class="py-op">:</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_swap</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_swap</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-207', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-208', 'version', 'link-106');">version</a></tt> <tt class="py-op"><</tt> <tt class="py-string">'3.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-209', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'2s'</tt><tt class="py-op">,</tt> <tt class="py-name">order</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-210', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'H'</tt><tt class="py-op">,</tt> <tt class="py-number">42</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-211', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'I'</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-212', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'2s'</tt><tt class="py-op">,</tt> <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">order</tt><tt class="py-op">,</tt> <tt class="py [...]
+<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-213', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'H'</tt><tt class="py-op">,</tt> <tt class="py-number">42</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-214', 'write', 'link-190');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'I'</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"> </tt>
+<a name="TiffIO._getOutputIFD"></a><div id="TiffIO._getOutputIFD-def"><a name="L866"></a><tt class="py-lineno"> 866</tt> <a class="py-toggle" href="#" id="TiffIO._getOutputIFD-toggle" onclick="return toggle('TiffIO._getOutputIFD');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.TiffIO.TiffIO-class.html#_getOutputIFD">_getOutputIFD</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">image< [...]
+</div><div id="TiffIO._getOutputIFD-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TiffIO._getOutputIFD-expanded"><a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">        <tt class="py-comment">#the tags have to be in order</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">        <tt class="py-comment">#the very minimum is</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">        <tt class="py-comment">#256:"NumberOfColumns",           # S or L ImageWidth</tt> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">        <tt class="py-comment">#257:"NumberOfRows",              # S or L ImageHeight</tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">        <tt class="py-comment">#258:"BitsPerSample",             # S Number of bits per component</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">        <tt class="py-comment">#259:"Compression",               # SHORT (1 - NoCompression, ... </tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">        <tt class="py-comment">#262:"PhotometricInterpretation", # SHORT (0 - WhiteIsZero, 1 -BlackIsZero, 2 - RGB, 3 - Palette color</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line">        <tt class="py-comment">#270:"ImageDescription",          # ASCII</tt> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line">        <tt class="py-comment">#273:"StripOffsets",              # S or L, for each strip, the byte offset of the strip</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line">        <tt class="py-comment">#278:"RowsPerStrip",              # S or L, number of rows in each back may be not for the last</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">        <tt class="py-comment">#279:"StripByteCounts",           # S or L, The number of bytes in the strip AFTER any compression</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line">        <tt class="py-comment">#305:"Software",                  # ASCII</tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line">        <tt class="py-comment">#306:"Date",                      # ASCII</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">        <tt class="py-comment">#339:"SampleFormat",              # SHORT Interpretation of data in each pixel</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line">        <tt class="py-name">nDirectoryEntries</tt> <tt class="py-op">=</tt> <tt class="py-number">9</tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">        <tt class="py-name">imageDescription</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">description</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">            <tt class="py-name">descriptionLength</tt> <tt class="py-op">=</tt> <tt id="link-215" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-215', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">description</tt><tt class="py-op">)</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">            <tt class="py-keyword">while</tt> <tt class="py-name">descriptionLength</tt> <tt class="py-op"><</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">                <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt class="py-name">description</tt> <tt class="py-op">+</tt> <tt class="py-string">" "</tt> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line">                <tt class="py-name">descriptionLength</tt> <tt class="py-op">=</tt> <tt id="link-216" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-216', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">description</tt><tt class="py-op">)</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-217', 'version', 'link-106');">version</a></tt> <tt class="py-op">>=</tt> <tt class="py-string">'3.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line">                <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">description</tt><tt class="py-op">,</tt> <tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">description</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">                    <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt class="py-name">description</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeDecodeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">                        <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt class="py-name">description</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'latin-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeDecodeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line">                        <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">description</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-218', 'version', 'link-106');">version</a></tt> <tt class="py-op">></tt> <tt class="py-string">'2.6'</tt><tt class="py-op">:</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">                    <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt class="py-name">description</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">,</tt> <tt class="py-name">errors</tt><tt class="py-op">=</tt><tt class="py-string">"ignore"</tt><tt class="py-op">)</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">                <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">description</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">            <tt class="py-name">descriptionLength</tt> <tt class="py-op">=</tt> <tt id="link-219" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-219', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">description</tt><tt class="py-op">)</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">            <tt class="py-name">imageDescription</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">"%ds"</tt> <tt class="py-op">%</tt> <tt class="py-name">descriptionLength</tt><tt class="py-op">,</tt> <tt class="py-name">description</tt><tt class="py-op">)</tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">            <tt class="py-name">nDirectoryEntries</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line"> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">        <tt class="py-comment">#software</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">software</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">            <tt class="py-name">softwareLength</tt> <tt class="py-op">=</tt> <tt id="link-220" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-220', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">software</tt><tt class="py-op">)</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">            <tt class="py-keyword">while</tt> <tt class="py-name">softwareLength</tt> <tt class="py-op"><</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">                <tt class="py-name">software</tt> <tt class="py-op">=</tt> <tt class="py-name">software</tt> <tt class="py-op">+</tt> <tt class="py-string">" "</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">                <tt class="py-name">softwareLength</tt> <tt class="py-op">=</tt> <tt id="link-221" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-221', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">software</tt><tt class="py-op">)</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-222', 'version', 'link-106');">version</a></tt> <tt class="py-op">>=</tt> <tt class="py-string">'3.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">                <tt class="py-name">software</tt> <tt class="py-op">=</tt> <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">software</tt><tt class="py-op">,</tt> <tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">            <tt class="py-name">softwarePackedString</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">"%ds"</tt> <tt class="py-op">%</tt> <tt class="py-name">softwareLength</tt><tt class="py-op">,</tt> <tt class="py-name">software</tt><tt class="py-op">)</tt> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">            <tt class="py-name">nDirectoryEntries</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">            <tt class="py-name">softwareLength</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line"> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">date</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">            <tt class="py-name">dateLength</tt> <tt class="py-op">=</tt> <tt id="link-223" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-223', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">)</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-224', 'version', 'link-106');">version</a></tt> <tt class="py-op">>=</tt> <tt class="py-string">'3.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">                <tt class="py-name">date</tt> <tt class="py-op">=</tt> <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">date</tt><tt class="py-op">,</tt> <tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">            <tt class="py-name">datePackedString</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-string">"%ds"</tt> <tt class="py-op">%</tt> <tt class="py-name">dateLength</tt><tt class="py-op">,</tt> <tt class="py-name">date</tt><tt class="py-op">)</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">            <tt class="py-name">dateLength</tt> <tt class="py-op">=</tt> <tt id="link-225" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-225', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">datePackedString</tt><tt class="py-op">)</tt> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">            <tt class="py-name">nDirectoryEntries</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">            <tt class="py-name">dateLength</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line"> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">        <tt class="py-name">nRows</tt><tt class="py-op">,</tt> <tt class="py-name">nColumns</tt> <tt class="py-op">=</tt> <tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">        <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">image</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">        <tt class="py-name">bitsPerSample</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-226', 'str', 'link-133');">str</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">8</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line"> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">        <tt class="py-comment">#only uncompressed data</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">        <tt id="link-227" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-227', 'compression', 'link-99');">compression</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line"> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">        <tt class="py-comment">#interpretation, black is zero</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">        <tt class="py-name">interpretation</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line"> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">        <tt class="py-comment">#image description</tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">imageDescription</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">            <tt class="py-name">descriptionLength</tt> <tt class="py-op">=</tt> <tt id="link-228" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-228', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">imageDescription</tt><tt class="py-op">)</tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">            <tt class="py-name">descriptionLength</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line"> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">        <tt class="py-comment">#strip offsets</tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line">        <tt class="py-comment">#we are putting them after the directory and the directory is</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">        <tt class="py-comment">#at the end of the file</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-229', 'seek', 'link-26');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line">        <tt class="py-name">endOfFile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">endOfFile</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">            <tt class="py-comment">#empty file</tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">            <tt class="py-name">endOfFile</tt> <tt class="py-op">=</tt> <tt class="py-number">8</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line"> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">        <tt class="py-comment">#rows per strip</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-230" class="py-name"><a title="fabio.TiffIO.ALLOW_MULTIPLE_STRIPS" class="py-name" href="#" onclick="return doclink('link-230', 'ALLOW_MULTIPLE_STRIPS', 'link-2');">ALLOW_MULTIPLE_STRIPS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">            <tt class="py-comment">#try to segment the image in several pieces</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">%</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">                <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">/</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">%</tt> <tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">                <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">/</tt> <tt class="py-number">10</tt><tt class="py-op">)</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">%</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line">                <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">/</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">%</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line">                <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">/</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">%</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">                <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">/</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line">                <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">nRows</tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line">            <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">=</tt> <tt class="py-name">nRows</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">        <tt class="py-comment">#stripByteCounts</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">        <tt class="py-name">stripByteCounts</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nColumns</tt> <tt class="py-op">*</tt> <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">*</tt> <tt class="py-name">bitsPerSample</tt> <tt class="py-op">/</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line"> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">descriptionLength</tt> <tt class="py-op">></tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">            <tt class="py-name">stripOffsets0</tt> <tt class="py-op">=</tt> <tt class="py-name">endOfFile</tt> <tt class="py-op">+</tt> <tt class="py-name">dateLength</tt> <tt class="py-op">+</tt> <tt class="py-name">descriptionLength</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line">                        <tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py-number">12</tt> <tt class="py-op">*</tt> <tt class="py-name">nDirectoryEntries</tt> <tt class="py-op">+</tt> <tt class="py-number">4</tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line">            <tt class="py-name">stripOffsets0</tt> <tt class="py-op">=</tt> <tt class="py-name">endOfFile</tt> <tt class="py-op">+</tt> <tt class="py-name">dateLength</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">                        <tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py-number">12</tt> <tt class="py-op">*</tt> <tt class="py-name">nDirectoryEntries</tt> <tt class="py-op">+</tt> <tt class="py-number">4</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line"> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">softwareLength</tt> <tt class="py-op">></tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line">            <tt class="py-name">stripOffsets0</tt> <tt class="py-op">+=</tt> <tt class="py-name">softwareLength</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line"> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">        <tt class="py-name">stripOffsets</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">stripOffsets0</tt><tt class="py-op">]</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">        <tt class="py-name">stripOffsetsLength</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">        <tt class="py-name">stripOffsetsString</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line"> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_structChar</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line"> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">rowsPerStrip</tt> <tt class="py-op">!=</tt> <tt class="py-name">nRows</tt><tt class="py-op">:</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">            <tt class="py-name">nStripOffsets</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">nRows</tt> <tt class="py-op">/</tt> <tt class="py-name">rowsPerStrip</tt><tt class="py-op">)</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'I'</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">            <tt class="py-name">stripOffsetsLength</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">calcsize</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">nStripOffsets</tt> </tt>
+<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">            <tt class="py-name">stripOffsets0</tt> <tt class="py-op">+=</tt> <tt class="py-name">stripOffsetsLength</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">            <tt class="py-comment">#the length for the stripByteCounts will be the same</tt> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">            <tt class="py-name">stripOffsets0</tt> <tt class="py-op">+=</tt> <tt class="py-name">stripOffsetsLength</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">            <tt class="py-name">stripOffsets</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-231" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-231', 'i', 'link-60');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">nStripOffsets</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">stripOffsets0</tt> <tt class="py-op">+</tt> <tt id="link-232" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-232', 'i', 'link-60');">i</a></tt> <tt class="py-op">*</tt> <tt class="py-name">stripByteCounts</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">                <tt class="py-name">stripOffsets</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-233" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-233', 'i', 'link-60');">i</a></tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">                    <tt class="py-name">stripOffsetsString</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line">                    <tt class="py-name">stripByteCountsString</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">stripByteCounts</tt><tt class="py-op">)</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">                    <tt class="py-name">stripOffsetsString</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">                    <tt class="py-name">stripByteCountsString</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">stripByteCounts</tt><tt class="py-op">)</tt> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line"> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-234" class="py-name"><a title="fabio.TiffIO.DEBUG" class="py-name" href="#" onclick="return doclink('link-234', 'DEBUG', 'link-1');">DEBUG</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"IMAGE WILL START AT %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">stripOffsets</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line"> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">        <tt class="py-comment">#sample format</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">dtype</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt>\ </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line">           <tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-235', 'str', 'link-133');">str</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'f'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">            <tt class="py-name">sampleFormat</tt> <tt class="py-op">=</tt> <tt id="link-236" class="py-name"><a title="fabio.TiffIO.SAMPLE_FORMAT_FLOAT" class="py-name" href="#" onclick="return doclink('link-236', 'SAMPLE_FORMAT_FLOAT', 'link-21');">SAMPLE_FORMAT_FLOAT</a></tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">dtype</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line">            <tt class="py-name">sampleFormat</tt> <tt class="py-op">=</tt> <tt id="link-237" class="py-name"><a title="fabio.TiffIO.SAMPLE_FORMAT_UINT" class="py-name" href="#" onclick="return doclink('link-237', 'SAMPLE_FORMAT_UINT', 'link-19');">SAMPLE_FORMAT_UINT</a></tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">dtype</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int8</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int16</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">i [...]
+<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line">            <tt class="py-name">sampleFormat</tt> <tt class="py-op">=</tt> <tt id="link-238" class="py-name"><a title="fabio.TiffIO.SAMPLE_FORMAT_INT" class="py-name" href="#" onclick="return doclink('link-238', 'SAMPLE_FORMAT_INT', 'link-20');">SAMPLE_FORMAT_INT</a></tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Unsupported data type %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line"> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">        <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nColumns"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">nColumns</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nRows"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">nRows</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nBits"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">bitsPerSample</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"compression"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-239" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-239', 'compression', 'link-99');">compression</a></tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"photometricInterpretation"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">interpretation</tt> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripOffsets"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">stripOffsets</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"rowsPerStrip"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">rowsPerStrip</tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripByteCounts"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">stripByteCounts</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"date"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">date</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">        <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"sampleFormat"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">sampleFormat</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line"> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-240', 'version', 'link-106');">version</a></tt> <tt class="py-op">></tt> <tt class="py-string">'2.6'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">=</tt> <tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-string">'b""'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">"H"</tt> </tt>
+<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-name">nDirectoryEntries</tt><tt class="py-op">)</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line"> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">"HHII"</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-241" class="py-name"><a title="fabio.TiffIO.TAG_NUMBER_OF_COLUMNS" class="py-name" href="#" onclick="return doclink('link-241', 'TAG_NUMBER_OF_COLUMNS', 'link-4');">TAG_NUMBER_ [...]
+<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">                                         <tt id="link-242" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-242', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'I'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">                                         <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">                                         <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nColumns"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-243" class="py-name"><a title="fabio.TiffIO.TAG_NUMBER_OF_ROWS" class="py-name" href="#" onclick="return doclink('link-243', 'TAG_NUMBER_OF_ROWS', 'link-5');">TAG_NUMBER_OF_ROW [...]
+<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">                                         <tt id="link-244" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-244', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'I'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line">                                         <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line">                                         <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nRows"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line"> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHIHH'</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-245" class="py-name"><a title="fabio.TiffIO.TAG_BITS_PER_SAMPLE" class="py-name" href="#" onclick="return doclink('link-245', 'TAG_BITS_PER_SAMPLE', 'link-6');">TAG_BITS_PER_SA [...]
+<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">                                         <tt id="link-246" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-246', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'H'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">                                         <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">                                         <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"nBits"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHIHH'</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-247" class="py-name"><a title="fabio.TiffIO.TAG_COMPRESSION" class="py-name" href="#" onclick="return doclink('link-247', 'TAG_COMPRESSION', 'link-8');">TAG_COMPRESSION</a></tt [...]
+<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">                                         <tt id="link-248" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-248', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'H'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">                                         <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line">                                         <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"compression"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHIHH'</tt> </tt>
+<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-249" class="py-name"><a title="fabio.TiffIO.TAG_PHOTOMETRIC_INTERPRETATION" class="py-name" href="#" onclick="return doclink('link-249', 'TAG_PHOTOMETRIC_INTERPRETATION', 'link [...]
+<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">                                         <tt id="link-250" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-250', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'H'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">                                         <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">                                         <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"photometricInterpretation"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line"> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">imageDescription</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">            <tt class="py-name">descriptionLength</tt> <tt class="py-op">=</tt> <tt id="link-251" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-251', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">imageDescription</tt><tt class="py-op">)</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">descriptionLength</tt> <tt class="py-op">></tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">                <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHII'</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">                <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-252" class="py-name"><a title="fabio.TiffIO.TAG_IMAGE_DESCRIPTION" class="py-name" href="#" onclick="return doclink('link-252', 'TAG_IMAGE_DESCRIPTION', 'link-9');">TAG [...]
+<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">                                         <tt id="link-253" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-253', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'s'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">                                         <tt class="py-name">descriptionLength</tt><tt class="py-op">,</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">                                         <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripOffsets"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">-</tt> \ </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">                                         <tt class="py-number">2</tt> <tt class="py-op">*</tt> <tt class="py-name">stripOffsetsLength</tt> <tt class="py-op">-</tt> \ </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">                                         <tt class="py-name">descriptionLength</tt><tt class="py-op">)</tt> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">                <tt class="py-comment">#it has to have length 4</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">                <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHI%ds'</tt> <tt class="py-op">%</tt> <tt class="py-name">descriptionLength</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">                <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-254" class="py-name"><a title="fabio.TiffIO.TAG_IMAGE_DESCRIPTION" class="py-name" href="#" onclick="return doclink('link-254', 'TAG_IMAGE_DESCRIPTION', 'link-9');">TAG [...]
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">                                         <tt id="link-255" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-255', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'s'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">                                         <tt class="py-name">descriptionLength</tt><tt class="py-op">,</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">                                         <tt class="py-name">description</tt><tt class="py-op">)</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line"> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-256" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-256', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">stripOffsets</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHII'</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-257" class="py-name"><a title="fabio.TiffIO.TAG_STRIP_OFFSETS" class="py-name" href="#" onclick="return doclink('link-257', 'TAG_STRIP_OFFSETS', 'link-10');">TAG_STRIP_OFFS [...]
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">                                             <tt id="link-258" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-258', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'I'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">                                             <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">                                             <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripOffsets"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHII'</tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-259" class="py-name"><a title="fabio.TiffIO.TAG_STRIP_OFFSETS" class="py-name" href="#" onclick="return doclink('link-259', 'TAG_STRIP_OFFSETS', 'link-10');">TAG_STRIP_OFFS [...]
+<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">                                             <tt id="link-260" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-260', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'I'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">                                             <tt id="link-261" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-261', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">stripOffsets</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">                    <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripOffsets"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">-</tt> <tt class="py-number">2</tt> <tt class="py-op">*</tt> <tt class="py-name">stripOffsetsLength</tt><tt class="py-op">)</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHII'</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-262" class="py-name"><a title="fabio.TiffIO.TAG_ROWS_PER_STRIP" class="py-name" href="#" onclick="return doclink('link-262', 'TAG_ROWS_PER_STRIP', 'link-11');">TAG_ROWS_PER_STR [...]
+<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">                                         <tt id="link-263" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-263', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'I'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">                                         <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">                                         <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"rowsPerStrip"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line"> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-264" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-264', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">stripOffsets</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHII'</tt> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-265" class="py-name"><a title="fabio.TiffIO.TAG_STRIP_BYTE_COUNTS" class="py-name" href="#" onclick="return doclink('link-265', 'TAG_STRIP_BYTE_COUNTS', 'link-12');">TAG_ST [...]
+<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">                                             <tt id="link-266" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-266', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'I'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">                                             <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">                                             <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripByteCounts"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHII'</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-267" class="py-name"><a title="fabio.TiffIO.TAG_STRIP_BYTE_COUNTS" class="py-name" href="#" onclick="return doclink('link-267', 'TAG_STRIP_BYTE_COUNTS', 'link-12');">TAG_ST [...]
+<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">                                             <tt id="link-268" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-268', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'I'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">                                             <tt id="link-269" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-269', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">stripOffsets</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">                    <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripOffsets"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">-</tt> <tt class="py-name">stripOffsetsLength</tt><tt class="py-op">)</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line"> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">software</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">softwareLength</tt> <tt class="py-op">></tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">                <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHII'</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">                <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-270" class="py-name"><a title="fabio.TiffIO.TAG_SOFTWARE" class="py-name" href="#" onclick="return doclink('link-270', 'TAG_SOFTWARE', 'link-13');">TAG_SOFTWARE</a></tt [...]
+<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">                                         <tt id="link-271" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-271', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'s'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">                                         <tt class="py-name">softwareLength</tt><tt class="py-op">,</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">                                         <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripOffsets"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">-</tt> \ </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">                                         <tt class="py-number">2</tt> <tt class="py-op">*</tt> <tt class="py-name">stripOffsetsLength</tt> <tt class="py-op">-</tt> \ </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">                            <tt class="py-name">descriptionLength</tt> <tt class="py-op">-</tt> <tt class="py-name">softwareLength</tt> <tt class="py-op">-</tt> <tt class="py-name">dateLength</tt><tt class="py-op">)</tt> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">                <tt class="py-comment">#it has to have length 4</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">                <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHI%ds'</tt> <tt class="py-op">%</tt> <tt class="py-name">softwareLength</tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">                <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-272" class="py-name"><a title="fabio.TiffIO.TAG_SOFTWARE" class="py-name" href="#" onclick="return doclink('link-272', 'TAG_SOFTWARE', 'link-13');">TAG_SOFTWARE</a></tt [...]
+<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line">                                         <tt id="link-273" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-273', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'s'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">                                         <tt class="py-name">softwareLength</tt><tt class="py-op">,</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line">                                         <tt class="py-name">softwarePackedString</tt><tt class="py-op">)</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">date</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHII'</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-274" class="py-name"><a title="fabio.TiffIO.TAG_DATE" class="py-name" href="#" onclick="return doclink('link-274', 'TAG_DATE', 'link-14');">TAG_DATE</a></tt><tt class="py-o [...]
+<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">                                      <tt id="link-275" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-275', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'s'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">                                      <tt class="py-name">dateLength</tt><tt class="py-op">,</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">                                      <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"stripOffsets"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">-</tt> \ </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line">                                         <tt class="py-number">2</tt> <tt class="py-op">*</tt> <tt class="py-name">stripOffsetsLength</tt> <tt class="py-op">-</tt> \ </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">                                      <tt class="py-name">descriptionLength</tt> <tt class="py-op">-</tt> <tt class="py-name">dateLength</tt><tt class="py-op">)</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line"> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'HHIHH'</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-276" class="py-name"><a title="fabio.TiffIO.TAG_SAMPLE_FORMAT" class="py-name" href="#" onclick="return doclink('link-276', 'TAG_SAMPLE_FORMAT', 'link-16');">TAG_SAMPLE_FORMAT< [...]
+<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">                                         <tt id="link-277" class="py-name"><a title="fabio.TiffIO.FIELD_TYPE_OUT" class="py-name" href="#" onclick="return doclink('link-277', 'FIELD_TYPE_OUT', 'link-18');">FIELD_TYPE_OUT</a></tt><tt class="py-op">[</tt><tt class="py-string">'H'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">                                         <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">                                         <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">"sampleFormat"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt> <tt class="py-op">+</tt> <tt class="py-string">'I'</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">        <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">softwareLength</tt> <tt class="py-op">></tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">softwarePackedString</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">date</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">datePackedString</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line"> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">imageDescription</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">descriptionLength</tt> <tt class="py-op">></tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line">                <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">imageDescription</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line"> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">stripOffsetsString</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">stripOffsetsString</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">            <tt class="py-name">outputIFD</tt> <tt class="py-op">+=</tt> <tt class="py-name">stripByteCountsString</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line"> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">outputIFD</tt> </tt>
+</div></div><a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line"> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">"__main__"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line">    <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">    <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt id="link-278" class="py-name"><a title="fabio.cbfimage.CIF.exists" class="py-name" href="#" onclick="return doclink('link-278', 'exists', 'link-180');">exists</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)< [...]
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Testing file creation"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">        <tt class="py-name">tif</tt> <tt class="py-op">=</tt> <tt id="link-279" class="py-name" targets="Module fabio.TiffIO=fabio.TiffIO-module.html,Class fabio.TiffIO.TiffIO=fabio.TiffIO.TiffIO-class.html"><a title="fabio.TiffIO
+fabio.TiffIO.TiffIO" class="py-name" href="#" onclick="return doclink('link-279', 'TiffIO', 'link-279');">TiffIO</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'wb+'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line">        <tt id="link-280" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-280', 'data', 'link-280');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">arange</tt><tt class="py-op">(</tt><tt class="py-number">10000</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line">        <tt id="link-281" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-281', 'data', 'link-280');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-number">100</tt><tt class="py-op">,</tt> <tt class="py-number">100</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line">        <tt class="py-name">tif</tt><tt class="py-op">.</tt><tt id="link-282" class="py-name" targets="Method fabio.TiffIO.TiffIO.writeImage()=fabio.TiffIO.TiffIO-class.html#writeImage"><a title="fabio.TiffIO.TiffIO.writeImage" class="py-name" href="#" onclick="return doclink('link-282', 'writeImage', 'link-282');">writeImage</a></tt><tt class="py-op">(</tt><tt id="link-283" class="py-name"><a title="fabio.edfimage. [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-283', 'data', 'link-280');">data</a></tt><tt class="py-op">,</tt> <tt class="py-name">info</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'Title'</tt><tt class="py-op">:</tt><tt class="py-string">'1st'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">        <tt class="py-name">tif</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt id="link-284" class="py-name"><a title="fabio.cbfimage.CIF.exists" class="py-name" href="#" onclick="return doclink('link-284', 'exists', 'link-180');">exists</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Testing image appending"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">            <tt class="py-name">tif</tt> <tt class="py-op">=</tt> <tt id="link-285" class="py-name"><a title="fabio.TiffIO
+fabio.TiffIO.TiffIO" class="py-name" href="#" onclick="return doclink('link-285', 'TiffIO', 'link-279');">TiffIO</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'rb+'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">            <tt class="py-name">tif</tt><tt class="py-op">.</tt><tt id="link-286" class="py-name"><a title="fabio.TiffIO.TiffIO.writeImage" class="py-name" href="#" onclick="return doclink('link-286', 'writeImage', 'link-282');">writeImage</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-287" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-287', 'data', 'link-280');">data</a></tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">info</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'Title'</tt><tt class="py-op">: [...]
+<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">            <tt class="py-name">tif</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">    <tt class="py-name">tif</tt> <tt class="py-op">=</tt> <tt id="link-288" class="py-name"><a title="fabio.TiffIO
+fabio.TiffIO.TiffIO" class="py-name" href="#" onclick="return doclink('link-288', 'TiffIO', 'link-279');">TiffIO</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Number of images = %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">tif</tt><tt class="py-op">.</tt><tt id="link-289" class="py-name" targets="Method fabio.TiffIO.TiffIO.getNumberOfImages()=fabio.TiffIO.TiffIO-class.html#getNumberOfImages"><a title="fabio.TiffIO.TiffIO.getNumberOfImages" class="py-name" href="#" onclick="return  [...]
+<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-290" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-290', 'i', 'link-60');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">tif</tt><tt class="py-op">.</tt><tt id="link-291" class="py-name"><a title="fabio.TiffIO.TiffIO.getNumberOfImages" class="py [...]
+<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">        <tt class="py-name">info</tt> <tt class="py-op">=</tt> <tt class="py-name">tif</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name" targets="Method fabio.TiffIO.TiffIO.getInfo()=fabio.TiffIO.TiffIO-class.html#getInfo"><a title="fabio.TiffIO.TiffIO.getInfo" class="py-name" href="#" onclick="return doclink('link-292', 'getInfo', 'link-292');">getInfo</a></tt><tt class="py-op">(</tt><tt id="link-293" c [...]
+<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-294" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-294', 'key', 'link-136');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">info</tt><tt class="py-op">:</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-295" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-295', 'key', 'link-136');">key</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">"colormap"</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"%s = %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-296" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-296', 'key', 'link-136');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt id="link-297" clas [...]
+<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt class="py-string">'colormap'</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"RED   %s = %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-298" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-298', 'key', 'link-136');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt id="link-299 [...]
+<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"GREEN %s = %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-300" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-300', 'key', 'link-136');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt id="link-301 [...]
+<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"BLUE  %s = %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-302" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-302', 'key', 'link-136');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">info</tt><tt class="py-op">[</tt><tt id="link-303 [...]
+<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">        <tt id="link-304" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-304', 'data', 'link-280');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tif</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name" targets="Method fabio.TiffIO.TiffIO.getImage()=fabio.TiffIO.TiffIO-class.html#getImage"><a title="fabio.TiffIO.TiffIO.getImage" class="py-name" href="#" onclick="return doclink('link-305', 'getImage', 'link-305');">getImage</a></tt><tt class="py-op">(</t [...]
+<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"data [0, 0:10] = "</tt><tt class="py-op">,</tt> <tt id="link-307" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-307', 'data', 'link-280');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:42 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.TiffIO.TiffIO-class.html b/epydoc/fabio.TiffIO.TiffIO-class.html
new file mode 100644
index 0000000..5bcba4d
--- /dev/null
+++ b/epydoc/fabio.TiffIO.TiffIO-class.html
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.TiffIO.TiffIO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.TiffIO-module.html">Module TiffIO</a> ::
+        Class TiffIO
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.TiffIO.TiffIO-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TiffIO</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO">source code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">TiffIO</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.TiffIO.TiffIO-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>,
+        <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">cache_length</span>=<span class="summary-sig-default">20</span>,
+        <span class="summary-sig-arg">mono_output</span>=<span class="summary-sig-default">False</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_initInternalVariables"></a><span class="summary-sig-name">_initInternalVariables</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fd</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO._initInternalVariables">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__makeSureFileIsOpen"></a><span class="summary-sig-name">__makeSureFileIsOpen</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.__makeSureFileIsOpen">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__makeSureFileIsClosed"></a><span class="summary-sig-name">__makeSureFileIsClosed</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.__makeSureFileIsClosed">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getNumberOfImages"></a><span class="summary-sig-name">getNumberOfImages</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.getNumberOfImages">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_updateIFD"></a><span class="summary-sig-name">_updateIFD</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO._updateIFD">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getImageFileDirectories"></a><span class="summary-sig-name">getImageFileDirectories</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fd</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.getImageFileDirectories">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_parseImageFileDirectory"></a><span class="summary-sig-name">_parseImageFileDirectory</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">nImage</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO._parseImageFileDirectory">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_readIFDEntry"></a><span class="summary-sig-name">_readIFDEntry</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">tag</span>,
+        <span class="summary-sig-arg">tagIDList</span>,
+        <span class="summary-sig-arg">fieldTypeList</span>,
+        <span class="summary-sig-arg">nValuesList</span>,
+        <span class="summary-sig-arg">valueOffsetList</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO._readIFDEntry">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getData"></a><span class="summary-sig-name">getData</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">nImage</span>,
+        <span class="summary-sig-arg">**kw</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.getData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getImage"></a><span class="summary-sig-name">getImage</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">nImage</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.getImage">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getInfo"></a><span class="summary-sig-name">getInfo</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">nImage</span>,
+        <span class="summary-sig-arg">**kw</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.getInfo">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_readInfo"></a><span class="summary-sig-name">_readInfo</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">nImage</span>,
+        <span class="summary-sig-arg">close</span>=<span class="summary-sig-default">True</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO._readInfo">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_readImage"></a><span class="summary-sig-name">_readImage</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">nImage</span>,
+        <span class="summary-sig-arg">**kw</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO._readImage">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="writeImage"></a><span class="summary-sig-name">writeImage</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">image0</span>,
+        <span class="summary-sig-arg">info</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">software</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">date</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.writeImage">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_initEmptyFile"></a><span class="summary-sig-name">_initEmptyFile</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fd</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO._initEmptyFile">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_getOutputIFD"></a><span class="summary-sig-name">_getOutputIFD</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">image</span>,
+        <span class="summary-sig-arg">description</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">software</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">date</span>=<span class="summary-sig-default">None</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO._getOutputIFD">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>,
+        <span class="sig-arg">mode</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">cache_length</span>=<span class="sig-default">20</span>,
+        <span class="sig-arg">mono_output</span>=<span class="sig-default">False</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.TiffIO-pysrc.html#TiffIO.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.adscimage-module.html b/epydoc/fabio.adscimage-module.html
new file mode 100644
index 0000000..f160d52
--- /dev/null
+++ b/epydoc/fabio.adscimage-module.html
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.adscimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module adscimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.adscimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module adscimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.adscimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:erik.knudsen at risoe.dk
+
++ mods for fabio by JPW
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.adscimage.adscimage-class.html" class="summary-name">adscimage</a><br />
+      Read an image in ADSC format (quite similar to edf?)
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test"></a><span class="summary-sig-name">test</span>()</span><br />
+      testcase</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.adscimage-pysrc.html#test">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("adscimage")">logging.getLogger("adscimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.adscimage-pysrc.html b/epydoc/fabio.adscimage-pysrc.html
new file mode 100644
index 0000000..ba55104
--- /dev/null
+++ b/epydoc/fabio.adscimage-pysrc.html
@@ -0,0 +1,479 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.adscimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module adscimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.adscimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.adscimage-module.html">Module fabio.adscimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">         Center for Fundamental Research: Metal Structures in Four Dimensions</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">         Risoe National Laboratory</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">         Frederiksborgvej 399</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">         DK-4000 Roskilde</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">         email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">+ mods for fabio by JPW</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-0', 'fabioimage', 'link-0');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-0');">fabioimage</a></tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-2', 'logger', 'link-2');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"adscimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"> </tt>
+<a name="adscimage"></a><div id="adscimage-def"><a name="L20"></a><tt class="py-lineno"> 20</tt> <a class="py-toggle" href="#" id="adscimage-toggle" onclick="return toggle('adscimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.adscimage.adscimage-class.html">adscimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="adscimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="adscimage-expanded"><a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">    <tt class="py-docstring">""" Read an image in ADSC format (quite similar to edf?) """</tt> </tt>
+<a name="adscimage.__init__"></a><div id="adscimage.__init__-def"><a name="L22"></a><tt class="py-lineno"> 22</tt> <a class="py-toggle" href="#" id="adscimage.__init__-toggle" onclick="return toggle('adscimage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.adscimage.adscimage-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-par [...]
+</div><div id="adscimage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="adscimage.__init__-expanded"><a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">        <tt id="link-3" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-3', 'fabioimage', 'link-0');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fabio.adscimage.adscimage-class.html#__init__,Method fabio.binaryimage.binaryimage.__ini [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-4', '__init__', 'link-4');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"> </tt>
+<a name="adscimage.read"></a><div id="adscimage.read-def"><a name="L25"></a><tt class="py-lineno"> 25</tt> <a class="py-toggle" href="#" id="adscimage.read-toggle" onclick="return toggle('adscimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.adscimage.adscimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class [...]
+</div><div id="adscimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="adscimage.read-expanded"><a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">        <tt class="py-docstring">""" read in the file """</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-5', '_open', 'link-5');">_open</a></tt><tt class="py-op">(</tt><tt class=" [...]
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._ [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-6', '_readheader', 'link-6');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Error processing adsc header"</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">        <tt class="py-comment"># banned by bzip/gzip???</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">            <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-7', 'seek', 'link-7');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">s [...]
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">TypeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">            <tt class="py-comment"># Gzipped does not allow a seek and read header is not</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">            <tt class="py-comment"># promising to stop in the right place</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">            <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">            <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-9', '_open', 'link-5');">_open</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">) [...]
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">            <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.OXDimage.read()=fabio.OXDimage.OXDimage-class.htm [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-10', 'read', 'link-10');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-11', 'header', 'link-8');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'HEADER_BYTES'</tt><t [...]
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-name">binary</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-12', 'read', 'link-10');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-comment">#now read the data into the array</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-13', 'dim1', 'link-13');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt [...]
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-15', 'dim2', 'link-15');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt [...]
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'little'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-17', 'header', 'link-8');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'BYTE_ORDER'</tt><tt class="py-op">]</tt><tt  [...]
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-18', 'data', 'link-18');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">                    <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">binary</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-19', 'dim2', 'link-15');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class=" [...]
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-string">'Size spec in ADSC-header does not match '</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">                    <tt class="py-string">'size of image data field'</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-21', 'bytecode', 'link-21');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">            <tt id="link-22" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-22', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"adscimage read in using low byte first (x386-order)"</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-23', 'data', 'link-18');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">                    <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">binary</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-24', 'dim2', 'link-15');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class=" [...]
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-string">'Size spec in ADSC-header does not match '</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">                    <tt class="py-string">'size of image data field'</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-26', 'bytecode', 'link-21');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">            <tt id="link-27" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-27', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'adscimage using high byte first (network order)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-28', 'resetvals', 'link-28');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
+<a name="adscimage._readheader"></a><div id="adscimage._readheader-def"><a name="L71"></a><tt class="py-lineno"> 71</tt> <a class="py-toggle" href="#" id="adscimage._readheader-toggle" onclick="return toggle('adscimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.adscimage.adscimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">in [...]
+</div><div id="adscimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="adscimage._readheader-expanded"><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-docstring">""" read an adsc header """</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-name">bytesread</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-29', 'len', 'link-29');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-string">'}'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">line</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'='</tt> <tt class="py-keyword">in</tt> <tt class="py-name">line</tt><tt class="py-op">:</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt id="link-30" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-30', 'key', 'link-30');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.< [...]
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Variable fabio.edfimage.edfimage.header_keys=fabio.edfimage.edfimage-class.html#header_keys"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-31', 'header_keys', 'link-31');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt clas [...]
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-33', 'header', 'link-8');">header</a></tt><tt class="py-op">[</tt><tt id="link-34" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-34', 'key', 'link-30');">key</a></tt> [...]
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">            <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">            <tt class="py-name">bytesread</tt> <tt class="py-op">=</tt> <tt class="py-name">bytesread</tt> <tt class="py-op">+</tt> <tt id="link-35" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-35', 'len', 'link-29');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"> </tt>
+<a name="adscimage.write"></a><div id="adscimage.write-def"><a name="L84"></a><tt class="py-lineno"> 84</tt> <a class="py-toggle" href="#" id="adscimage.write-toggle" onclick="return toggle('adscimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.adscimage.adscimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">)</tt><tt  [...]
+</div><div id="adscimage.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="adscimage.write-expanded"><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-docstring">        Write adsc format</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">'{\n'</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-36" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-36', 'key', 'link-30');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-37',  [...]
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">            <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">"%s = %s;\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-38" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-38', 'key', 'link-30');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name [...]
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME ??? - made padding match header bytes keyword            </tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-comment">#        the cbflib example image has exactly 512...</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-41', 'header', 'link-8');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">"HEADER_BYTES"</tt><tt class="py-op">)</tt><tt class="py [...]
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt class="py-name">pad</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-42', 'header', 'link-8');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"HEADER_BYTES"</tt><tt class="py- [...]
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">            <tt class="py-comment"># integer division</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">            <tt class="py-comment"># 1234567890123456789012</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">            <tt class="py-comment"># HEADER_BYTES = 1234;\n</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-name">hsize</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-44', 'len', 'link-29');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">23</tt><tt c [...]
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">            <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">"HEADER_BYTES=%d;\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hsize</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">            <tt class="py-name">pad</tt> <tt class="py-op">=</tt> <tt class="py-name">hsize</tt> <tt class="py-op">-</tt> <tt id="link-45" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-45', 'len', 'link-29');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">2</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-name">pad</tt> <tt class="py-op">*</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-string">"}\n"</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt id="link-46" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-46', 'len', 'link-29');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">512</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt> <tt class="py-op">,< [...]
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">outf</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-string">"wb"</tt><tt class="py-op">)</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-name">outf</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method fabio.GEimage.GEimage.write()=fabio.GEimage.GEimage-class.html#write,Method fabio.OXDimage.OXDimage.write()=fabio.OXDimage.OXDimage-class.html#write,Method fabio.adscimage.adscimage.write()=fabio.adscimage.adscimage-class.html#write,Method fabio.binaryimage.binaryimage.write()=fabio.binaryimage.binaryimage-cla [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-47', 'write', 'link-47');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-comment"># it says "unsigned_short" ? ... jpw example has:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-comment"># BYTE_ORDER=big_endian;</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-comment"># TYPE=unsigned_short;</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"little"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-48', 'header', 'link-8');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"BYTE_ORDER"</tt><tt class="py-op">]</tt><tt [...]
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-name">outf</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-49', 'write', 'link-47');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-50', 'data', 'link-18');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-51', 'tostring', 'link-51');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">            <tt class="py-name">outf</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-52', 'write', 'link-47');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-53', 'data', 'link-18');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">                    <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-54', 'tostring', 'link-51');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">outf</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"> </tt>
+<a name="test"></a><div id="test-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="test-toggle" onclick="return toggle('test');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.adscimage-module.html#test">test</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="test-expanded"><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">    <tt class="py-docstring">""" testcase """</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">    <tt class="py-name">img</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name" targets="Module fabio.adscimage=fabio.adscimage-module.html,Class fabio.adscimage.adscimage=fabio.adscimage.adscimage-class.html"><a title="fabio.adscimage
+fabio.adscimage.adscimage" class="py-name" href="#" onclick="return doclink('link-55', 'adscimage', 'link-55');">adscimage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">    <tt class="py-name">begin</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">clock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-56', 'read', 'link-10');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-comment">#        rim = img.toPIL16()</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Method fabio.fabioimage.fabioimage.rebin()=fabio.fabioimage.fabioimage-class.html#rebin"><a title="fabio.fabioimage.fabioimage.rebin" class="py-name" href="#" onclick="return doclink('link-57', 'rebin', 'link-57');">rebin</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="p [...]
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-58', 'write', 'link-47');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'jegErEnFil0000.img'</tt><tt class="py-op">)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">": max=%d, min=%d, mean=%.2e, stddev=%.2e"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt>\ </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">              <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method fabio.fabioimage.fabioimage.getmax()=fabio.fabioimage.fabioimage-class.html#getmax"><a title="fabio.fabioimage.fabioimage.getmax" class="py-name" href="#" onclick="return doclink('link-59', 'getmax', 'link-59');">getmax</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt c [...]
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">'integrated intensity (%d %d %d %d) =%.3f'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt>\ </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">              <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-number">40</tt><tt class="py-op">,</tt> <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name" targets="Method fabio.fabioimage.fabioimage.integrate_area()=fabio.fabioimage.fabioimage-class.html#integr [...]
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">    <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">clock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-name">end</tt> <tt class="py-op">-</tt> <tt class="py-name">begin</tt> </tt>
+</div><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">    <tt id="link-64" class="py-name" targets="Function fabio.adscimage.test()=fabio.adscimage-module.html#test,Function fabio.brukerimage.test()=fabio.brukerimage-module.html#test,Function fabio.fabioimage.test()=fabio.fabioimage-module.html#test"><a title="fabio.adscimage.test
+fabio.brukerimage.test
+fabio.fabioimage.test" class="py-name" href="#" onclick="return doclink('link-64', 'test', 'link-64');">test</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.adscimage.adscimage-class.html b/epydoc/fabio.adscimage.adscimage-class.html
new file mode 100644
index 0000000..332eb71
--- /dev/null
+++ b/epydoc/fabio.adscimage.adscimage-class.html
@@ -0,0 +1,448 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.adscimage.adscimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.adscimage-module.html">Module adscimage</a> ::
+        Class adscimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.adscimage.adscimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class adscimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.adscimage-pysrc.html#adscimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">adscimage</strong>
+</pre>
+
+<hr />
+<p>Read an image in ADSC format (quite similar to edf?)</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.adscimage.adscimage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">*args</span>,
+        <span class="summary-sig-arg">**kwargs</span>)</span><br />
+      Set up initial values</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.adscimage-pysrc.html#adscimage.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.adscimage.adscimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      read in the file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.adscimage-pysrc.html#adscimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.adscimage.adscimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      read an adsc header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.adscimage-pysrc.html#adscimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.adscimage.adscimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      Write adsc format</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.adscimage-pysrc.html#adscimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">*args</span>,
+        <span class="sig-arg">**kwargs</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.adscimage-pysrc.html#adscimage.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Set up initial values</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.adscimage-pysrc.html#adscimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>read in the file</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.adscimage-pysrc.html#adscimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>read an adsc header</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.adscimage-pysrc.html#adscimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Write adsc format</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.binaryimage-module.html b/epydoc/fabio.binaryimage-module.html
new file mode 100644
index 0000000..36f090d
--- /dev/null
+++ b/epydoc/fabio.binaryimage-module.html
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.binaryimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module binaryimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.binaryimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module binaryimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.binaryimage-pysrc.html">source code</a></span></p>
+<p>Authors: Gael Goret, Jerome Kieffer, ESRF, France Emails: 
+  gael.goret at esrf.fr, jerome.kieffer at esrf.fr</p>
+  <p>Binary files images are simple none-compressed 2D images only defined 
+  by their : data-type, dimensions, byte order and offset</p>
+  <p>This simple library has been made for manipulating exotic/unknown 
+  files format.</p>
+
+<hr />
+<div class="fields">      <p><strong>Version:</strong>
+        17 Apr 2012
+      </p>
+      <dl><dt>Authors:</dt>
+        <dd>
+          Ga\xc3\xabl Goret,
+          J\xc3\xa9r\xc3\xb4me Kieffer
+        </dd>
+      </dl>
+      <p><strong>Contact:</strong>
+        gael.goret at esrf.fr
+      </p>
+      <p><strong>Copyright:</strong>
+        European Synchrotron Radiation Facility, Grenoble, France
+      </p>
+      <p><strong>License:</strong>
+        GPLv3+
+      </p>
+</div><!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.binaryimage.binaryimage-class.html" class="summary-name">binaryimage</a><br />
+      This simple library has been made for manipulating exotic/unknown 
+        files format.
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.binaryimage-module.html#__doc__" class="summary-name">__doc__</a> = <code title=""""
+Authors: Gael Goret, Jerome Kieffer, ESRF, France
+Emails: gael.goret at esrf.fr, jerome.kieffer at esrf.fr
+
+Binary files images are simple none-compressed 2D images only defined \
+by their : 
+data-type, dimensions, byte order and offset
+
+..."><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("binaryimage")">logging.getLogger("binaryimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__doc__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">__doc__</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+"""
+Authors: Gael Goret, Jerome Kieffer, ESRF, France
+Emails: gael.goret at esrf.fr, jerome.kieffer at esrf.fr
+
+Binary files images are simple none-compressed 2D images only defined <span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+by their : 
+data-type, dimensions, byte order and offset
+
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.binaryimage-pysrc.html b/epydoc/fabio.binaryimage-pysrc.html
new file mode 100644
index 0000000..015ee17
--- /dev/null
+++ b/epydoc/fabio.binaryimage-pysrc.html
@@ -0,0 +1,399 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.binaryimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module binaryimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.binaryimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.binaryimage-module.html">Module fabio.binaryimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8 </tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">with_statement</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.OXDimage.__doc__=fabio.OXDimage-module.html#__doc__,Variable fabio.binaryimage.__doc__=fabio.binaryimage-module.html#__doc__,Variable fabio.mar345image.__doc__=fabio.mar345image-module.html#__doc__"><a title="fabio.OXDimage.__doc__
+fabio.binaryimage.__doc__
+fabio.mar345image.__doc__" class="py-name" href="#" onclick="return doclink('link-0', '__doc__', 'link-0');">__doc__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-string">Authors: Gael Goret, Jerome Kieffer, ESRF, France</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-string">Emails: gael.goret at esrf.fr, jerome.kieffer at esrf.fr</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-string">Binary files images are simple none-compressed 2D images only defined by their : </tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-string">data-type, dimensions, byte order and offset</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-string">This simple library has been made for manipulating exotic/unknown files format.  </tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-string">"""</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-name">__authors__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"Gaël Goret"</tt><tt class="py-op">,</tt> <tt class="py-string">"Jérôme Kieffer"</tt><tt class="py-op">]</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-name">__contact__</tt> <tt class="py-op">=</tt> <tt class="py-string">"gael.goret at esrf.fr"</tt><tt class="py-comment">#, jerome.kieffer at esrf.eu"</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> <tt class="py-string">"GPLv3+"</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-name">__copyright__</tt> <tt class="py-op">=</tt> <tt class="py-string">"European Synchrotron Radiation Facility, Grenoble, France"</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-name">__version__</tt> <tt class="py-op">=</tt> <tt class="py-string">"17 Apr 2012"</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-1');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-1');">fabioimage</a></tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bruk [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-3', 'logger', 'link-3');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"binaryimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="binaryimage"></a><div id="binaryimage-def"><a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt> <a class="py-toggle" href="#" id="binaryimage-toggle" onclick="return toggle('binaryimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.binaryimage.binaryimage-class.html">binaryimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="binaryimage-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="binaryimage-expanded"><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-docstring">    This simple library has been made for manipulating exotic/unknown files format.</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"><tt class="py-docstring">    Binary files images are simple none-compressed 2D images only defined by their : </tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"><tt class="py-docstring">    data-type, dimensions, byte order and offset</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"> </tt>
+<a name="binaryimage.__init__"></a><div id="binaryimage.__init__-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="binaryimage.__init__-toggle" onclick="return toggle('binaryimage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.binaryimage.binaryimage-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt cl [...]
+</div><div id="binaryimage.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="binaryimage.__init__-expanded"><a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt id="link-4" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-4', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fabio.adscimage.adscimage-class.html#__init__,Method fabio.binaryimage.binaryimage.__ini [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-5', '__init__', 'link-5');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="binaryimage.swap_needed"></a><div id="binaryimage.swap_needed-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="binaryimage.swap_needed-toggle" onclick="return toggle('binaryimage.swap_needed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.binaryimage.binaryimage-class.html#swap_needed">swap_needed</a><tt class="py-op">(</tt><tt class="py-param">endian</tt><tt class="py-op">)</tt><tt class=" [...]
+</div><div id="binaryimage.swap_needed-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="binaryimage.swap_needed-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"><tt class="py-docstring">        Decide if we need to byteswap</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">endian</tt> <tt class="py-op">==</tt> <tt class="py-string">'<'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">little_endian</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">endian</tt> <tt class="py-op">==</tt> <tt cl [...]
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">endian</tt> <tt class="py-op">==</tt> <tt class="py-string">'>'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">little_endian</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">endian</tt> <tt class="py-op">==</tt> <tt cl [...]
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"> </tt>
+<a name="binaryimage.read"></a><div id="binaryimage.read-def"><a name="L45"></a><tt class="py-lineno">45</tt> <a class="py-toggle" href="#" id="binaryimage.read-toggle" onclick="return toggle('binaryimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.binaryimage.binaryimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt [...]
+</div><div id="binaryimage.read-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="binaryimage.read-expanded"><a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">        <tt class="py-docstring">""" </tt> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line"><tt class="py-docstring">        Read a binary image</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"><tt class="py-docstring">        Parameters : fname, dim1, dim2, offset, bytecode, endian</tt> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line"><tt class="py-docstring">        fname : file name : str</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt class="py-docstring">        dim1,dim2 : image dimensions : int</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-docstring">        offset : size of the : int </tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"><tt class="py-docstring">        bytecode among : "int8","int16","int32","int64","uint8","uint16","uint32","uint64","float32","float64",...</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-docstring">        endian among short or long endian ("<" or ">")</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-6', 'dim1', 'link-6');">dim1</a></tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-na [...]
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-8', 'dim2', 'link-8');">dim2</a></tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-na [...]
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-10', 'bytecode', 'link-10');">bytecode</a></tt> <tt class="py-op">=</tt> <tt id="link-11" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-11', 'bytecode', 'link-10');">bytecode</a></tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">        <tt id="link-12" class="py-name" targets="Variable fabio.edfimage.edfimage.dims=fabio.edfimage.edfimage-class.html#dims"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-12', 'dims', 'link-12');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-13" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="ret [...]
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">        <tt id="link-15" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-15', 'bpp', 'link-15');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-17', 'bytecode', 'link-10');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-18', 'tostring', 'link-18');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">        <tt id="link-19" class="py-name" targets="Variable fabio.fabioutils.BZ2File.size=fabio.fabioutils.BZ2File-class.html#size,Variable fabio.fabioutils.File.size=fabio.fabioutils.File-class.html#size,Variable fabio.fabioutils.GzipFile.size=fabio.fabioutils.GzipFile-class.html#size,Variable fabio.fabioutils.StringIO.size=fabio.fabioutils.StringIO-class.html#size"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-19', 'size', 'link-19');">size</a></tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-20', 'dims', 'link-12');">dims</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt id="link-21" class="py-name"><a title="fabio.edfimage.edfimage.dims [...]
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line"> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-23', 'seek', 'link-23');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">        <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.O [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-24', 'read', 'link-24');">read</a></tt><tt class="py-op">(</tt><tt id="link-25" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-25', 'size', 'link-19');">size</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt>  <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Static Method fabio.binaryimage.binaryimage.swap_needed()=fabio.binaryimage.binaryimage-class.html#swap_needed,Method fabio.edfimage.Frame.swap_needed()=fabio.edfimage.Frame-class.html#swap_needed,Method fabio.edfimage.edfimage.swap_needed()=fabio.edfimage.edfimage-class.html#swap_needed [...]
+fabio.edfimage.Frame.swap_needed
+fabio.edfimage.edfimage.swap_needed" class="py-name" href="#" onclick="return doclink('link-26', 'swap_needed', 'link-26');">swap_needed</a></tt><tt class="py-op">(</tt><tt class="py-name">endian</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">            <tt id="link-27" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-27', 'data', 'link-27');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">rawData</tt><tt class="py-op">,</tt> <tt id="link-28" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-28', 'bytecode', 'link-10');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt id="link-29" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href [...]
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">            <tt id="link-30" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-30', 'data', 'link-27');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">rawData</tt><tt class="py-op">,</tt> <tt id="link-31" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-31', 'bytecode', 'link-10');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-32', 'dims', 'link-12');">dims</a></tt><tt class="py-op">)</tt><tt cla [...]
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-33', 'data', 'link-27');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-34" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-34', 'data', 'link-27');">data</a></tt> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line"> </tt>
+<a name="binaryimage.estimate_offset_value"></a><div id="binaryimage.estimate_offset_value-def"><a name="L73"></a><tt class="py-lineno">73</tt> <a class="py-toggle" href="#" id="binaryimage.estimate_offset_value-toggle" onclick="return toggle('binaryimage.estimate_offset_value');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.binaryimage.binaryimage-class.html#estimate_offset_value">estimate_offset_value</a><tt class="py-op">(</tt><tt cla [...]
+</div><div id="binaryimage.estimate_offset_value-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="binaryimage.estimate_offset_value-expanded"><a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line">        <tt class="py-docstring">"Estimates the size of a file"</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line">            <tt id="link-35" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-35', 'bpp', 'link-15');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-36', 'len', 'link-16');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">numpy</ [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-37', 'bytecode', 'link-10');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-38', 'tostring', 'link-18');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line">            <tt id="link-39" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-39', 'size', 'link-19');">size</a></tt> <tt class="py-op">=</tt> <tt id="link-40" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-40', 'dim1', 'link-6');">dim1</a></tt> <tt class="py-op">*</tt> <tt id="link-41" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-41', 'dim2', 'link-8 [...]
+<a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line">            <tt class="py-name">totsize</tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-43', 'len', 'link-16');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-44', 'read', 'link-24');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line">        <tt id="link-45" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-45', 'logger', 'link-3');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'total size (bytes): %s'</tt><tt class="py-op">,</tt> <tt class="py-name">totsize</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line">        <tt id="link-46" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-46', 'logger', 'link-3');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'expected data size given parameters (bytes): %s'</tt><tt class="py-op">,</tt> <tt id="link-47" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-47', 'size', 'link-19');">size</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line">        <tt id="link-48" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-48', 'logger', 'link-3');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'estimation of the offset value (bytes): %s'</tt><tt class="py-op">,</tt> <tt class="py-name">totsize</tt> <tt class="py-op">-</tt> <tt id="link-49" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-49', 'size', 'link-19');">size</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line"> </tt>
+<a name="binaryimage.write"></a><div id="binaryimage.write-def"><a name="L83"></a><tt class="py-lineno">83</tt> <a class="py-toggle" href="#" id="binaryimage.write-toggle" onclick="return toggle('binaryimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.binaryimage.binaryimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op" [...]
+</div><div id="binaryimage.write-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="binaryimage.write-expanded"><a name="L84"></a><tt class="py-lineno">84</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">"wb"</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt [...]
+<a name="L85"></a><tt class="py-lineno">85</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Method fabio.GEimage.GEimage.write()=fabio.GEimage.GEimage-class.html#write,Method fabio.OXDimage.OXDimage.write()=fabio.OXDimage.OXDimage-class.html#write,Method fabio.adscimage.adscimage.write()=fabio.adscimage.adscimage-class.html#write,Method fabio.binaryimage.binaryimage.write()=fabio.binaryimage.binaryimag [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-50', 'write', 'link-50');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-51', 'data', 'link-27');">data</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-52', 'tostring', 'link-18');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L86"></a><tt class="py-lineno">86</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.binaryimage.binaryimage-class.html b/epydoc/fabio.binaryimage.binaryimage-class.html
new file mode 100644
index 0000000..5c57796
--- /dev/null
+++ b/epydoc/fabio.binaryimage.binaryimage-class.html
@@ -0,0 +1,466 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.binaryimage.binaryimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.binaryimage-module.html">Module binaryimage</a> ::
+        Class binaryimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.binaryimage.binaryimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class binaryimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.binaryimage-pysrc.html#binaryimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">binaryimage</strong>
+</pre>
+
+<hr />
+<p>This simple library has been made for manipulating exotic/unknown 
+  files format.</p>
+  <p>Binary files images are simple none-compressed 2D images only defined 
+  by their : data-type, dimensions, byte order and offset</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.binaryimage.binaryimage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">*args</span>,
+        <span class="summary-sig-arg">**kwargs</span>)</span><br />
+      Set up initial values</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.binaryimage-pysrc.html#binaryimage.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.binaryimage.binaryimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">dim1</span>,
+        <span class="summary-sig-arg">dim2</span>,
+        <span class="summary-sig-arg">offset</span>=<span class="summary-sig-default">0</span>,
+        <span class="summary-sig-arg">bytecode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">int32</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">endian</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"><</code><code class="variable-quote">'</code></span>)</span><br />
+      Read a binary image Parameters : fname, dim1, dim2, offset, bytecode,
+      endian fname : file name : str dim1,dim2 : image dimensions : int 
+      offset : size of the : int bytecode among : 
+      "int8","int16","int32","int64","uint8","uint16","uint32","uint64","float32","float64",...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.binaryimage-pysrc.html#binaryimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="estimate_offset_value"></a><span class="summary-sig-name">estimate_offset_value</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">dim1</span>,
+        <span class="summary-sig-arg">dim2</span>,
+        <span class="summary-sig-arg">bytecode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">int32</code><code class="variable-quote">'</code></span>)</span><br />
+      Estimates the size of a file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.binaryimage-pysrc.html#binaryimage.estimate_offset_value">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.binaryimage.binaryimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      To be overwritten - write the file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.binaryimage-pysrc.html#binaryimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">_readheader</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="swap_needed"></a><span class="summary-sig-name">swap_needed</span>(<span class="summary-sig-arg">endian</span>)</span><br />
+      Decide if we need to byteswap</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.binaryimage-pysrc.html#binaryimage.swap_needed">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">*args</span>,
+        <span class="sig-arg">**kwargs</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.binaryimage-pysrc.html#binaryimage.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Set up initial values</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">dim1</span>,
+        <span class="sig-arg">dim2</span>,
+        <span class="sig-arg">offset</span>=<span class="sig-default">0</span>,
+        <span class="sig-arg">bytecode</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">int32</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">endian</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string"><</code><code class="variable-quote">'</code></span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.binaryimage-pysrc.html#binaryimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read a binary image Parameters : fname, dim1, dim2, offset, bytecode, 
+  endian fname : file name : str dim1,dim2 : image dimensions : int offset 
+  : size of the : int bytecode among : 
+  "int8","int16","int32","int64","uint8","uint16","uint32","uint64","float32","float64",...
+  endian among short or long endian ("<" or 
+  ">")</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.binaryimage-pysrc.html#binaryimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>To be overwritten - write the file</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.bruker100image-module.html b/epydoc/fabio.bruker100image-module.html
new file mode 100644
index 0000000..ca7ec34
--- /dev/null
+++ b/epydoc/fabio.bruker100image-module.html
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.bruker100image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module bruker100image
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.bruker100image-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module bruker100image</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.bruker100image-pysrc.html">source code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.bruker100image.bruker100image-class.html" class="summary-name">bruker100image</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("bruker100image")">logging.getLogger("bruker100image")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.bruker100image-pysrc.html b/epydoc/fabio.bruker100image-pysrc.html
new file mode 100644
index 0000000..b846698
--- /dev/null
+++ b/epydoc/fabio.bruker100image-pysrc.html
@@ -0,0 +1,345 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.bruker100image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module bruker100image
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.bruker100image-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.bruker100image-module.html">Module fabio.bruker100image</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">math</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bruke [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"bruker100image"</tt><tt class="py-op">)</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">Image</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line">    <tt id="link-1" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-1', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"PIL is not installed ... trying to do without"</tt><tt class="py-op">)</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line">    <tt class="py-name">Image</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name" targets="Module fabio.brukerimage=fabio.brukerimage-module.html,Class fabio.brukerimage.brukerimage=fabio.brukerimage.brukerimage-class.html"><a title="fabio.brukerimage
+fabio.brukerimage.brukerimage" class="py-name" href="#" onclick="return doclink('link-2', 'brukerimage', 'link-2');">brukerimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name"><a title="fabio.brukerimage
+fabio.brukerimage.brukerimage" class="py-name" href="#" onclick="return doclink('link-3', 'brukerimage', 'link-2');">brukerimage</a></tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name" targets="Module fabio.readbytestream=fabio.readbytestream-module.html,Function fabio.readbytestream.readbytestream()=fabio.readbytestream-module.html#readbytestream"><a title="fabio.readbytestream
+fabio.readbytestream.readbytestream" class="py-name" href="#" onclick="return doclink('link-4', 'readbytestream', 'link-4');">readbytestream</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name"><a title="fabio.readbytestream
+fabio.readbytestream.readbytestream" class="py-name" href="#" onclick="return doclink('link-5', 'readbytestream', 'link-4');">readbytestream</a></tt>  </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"> </tt>
+<a name="bruker100image"></a><div id="bruker100image-def"><a name="L14"></a><tt class="py-lineno">14</tt> <a class="py-toggle" href="#" id="bruker100image-toggle" onclick="return toggle('bruker100image');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.bruker100image.bruker100image-class.html">bruker100image</a><tt class="py-op">(</tt><tt class="py-base-class">brukerimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="bruker100image-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="bruker100image-expanded"><a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"> </tt>
+<a name="bruker100image.toPIL16"></a><div id="bruker100image.toPIL16-def"><a name="L17"></a><tt class="py-lineno">17</tt> <a class="py-toggle" href="#" id="bruker100image.toPIL16-toggle" onclick="return toggle('bruker100image.toPIL16');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.bruker100image.bruker100image-class.html#toPIL16">toPIL16</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-para [...]
+</div><div id="bruker100image.toPIL16-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="bruker100image.toPIL16-expanded"><a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">Image</tt><tt class="py-op">:</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"PIL is not installed !!! "</tt><tt class="py-op">)</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt><tt class="py-op">:</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.OXDimage.read()=fabio.OXDimage.OXDimage-class.html#re [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-6', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line">        <tt class="py-name">PILimage</tt> <tt class="py-op">=</tt> <tt class="py-name">Image</tt><tt class="py-op">.</tt><tt class="py-name">frombuffer</tt><tt class="py-op">(</tt><tt class="py-string">"F"</tt><tt class="py-op">,</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line">                                        <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-7', 'dim1', 'link-7');">dim1</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt> [...]
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">                                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-9', 'data', 'link-9');">data</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line">                                        <tt class="py-string">"raw"</tt><tt class="py-op">,</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">                                        <tt class="py-string">"F;16"</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">PILimage</tt> </tt>
+</div><a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"> </tt>
+<a name="bruker100image.read"></a><div id="bruker100image.read-def"><a name="L30"></a><tt class="py-lineno">30</tt> <a class="py-toggle" href="#" id="bruker100image.read-toggle" onclick="return toggle('bruker100image.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.bruker100image.bruker100image-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt c [...]
+</div><div id="bruker100image.read-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="bruker100image.read-expanded"><a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._ [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-10', '_readheader', 'link-10');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line"> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-name">rows</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-11', 'header', 'link-11');">heade [...]
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">        <tt class="py-name">cols</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-12', 'header', 'link-11');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NCOLS'</tt><tt class="py-op">]</tt> [...]
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-name">npixelb</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-13', 'header', 'link-11');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NPIXELB'</tt><tt class="py-op">] [...]
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-comment"># you had to read the Bruker docs to know this!</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-comment"># We are now at the start of the image - assuming </tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-comment">#   readbrukerheader worked</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-comment"># size = rows * cols * npixelb</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-14', 'data', 'link-9');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-15" class="py-name"><a title="fabio.readbytestream
+fabio.readbytestream.readbytestream" class="py-name" href="#" onclick="return doclink('link-15', 'readbytestream', 'link-4');">readbytestream</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">rows</tt><tt class="py-op">,</tt> <tt class="py-name">cols</tt><tt class="py-op">,</tt> <tt cla [...]
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">                                    <tt class="py-name">datatype</tt><tt class="py-op">=</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt> <tt class="py-name">signed</tt><tt class="py-op">=</tt><tt class="py-string">'n'</tt><tt class="py-op">,</tt> <tt class="py-name">swap</tt><tt class="py-op">=</tt><tt class="py-string">'n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line"> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">        <tt class="py-name">noverfl</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-16', 'header', 'link-11');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NOVERFL'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">spl [...]
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-comment">#read the set of "underflow pixels" - these will be completely </tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">        <tt class="py-comment"># disregarded for now</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">        <tt id="link-17" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-17', 'data', 'link-9');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-18', 'data', 'link-9');">data</a></tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">        <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">k</tt> <tt class="py-op"><</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-comment">#for the time being things - are done in 16 bits</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">            <tt class="py-name">datatype</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'1'</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">,</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">                        <tt class="py-string">'2'</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">,</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">                        <tt class="py-string">'4'</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt> <tt class="py-op">}</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">"%d"</tt> <tt class="py-op">%</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-name">k</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">            <tt class="py-name">ar</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-19', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">noverfl</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-name">k</tt><tt class="py-op">)</tt><tt clas [...]
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">                                        <tt class="py-name">datatype</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">            <tt class="py-comment">#insert the the overflow pixels in the image array:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">            <tt class="py-comment">#this is probably a memory intensive way of doing this - </tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">            <tt class="py-comment"># might be done in a more clever way</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">            <tt class="py-name">lim</tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-op">(</tt><tt class="py-number">8</tt> <tt class="py-op">*</tt> <tt class="py-name">k</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">            <tt class="py-comment">#generate an array comprising of the indices into data.ravel() </tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">            <tt class="py-comment"># where its value equals lim.</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">            <tt class="py-name">M</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">compress</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">equal</tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-20', 'data', 'link-9');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">ravel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">lim</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">arange</tt><tt class="py-op">(</tt><tt class="py-name">rows</tt> <tt class="py-op">*</tt> < [...]
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">            <tt class="py-comment">#now put values from ar into those indices</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">            <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">put</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-21', 'data', 'link-9');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">ravel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">M</tt><tt class="py-op">,</tt> <tt class="py-name">ar</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">            <tt class="py-name">padding</tt> <tt class="py-op">=</tt> <tt class="py-number">16</tt> <tt class="py-op">*</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">math</tt><tt class="py-op">.</tt><tt class="py-name">ceil</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">noverfl</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt cl [...]
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">                         <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">noverfl</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-name">k</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-22', 'seek', 'link-22');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">padding</tt><tt class="py-op">,</tt> <tt class="py-numbe [...]
+<a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-name">noverfl</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">" bytes read + %d bytes padding"</tt> <tt class="py-op">%</tt> <tt class="py-name">padding</tt> </tt>
+<a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line">            <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line"> </tt>
+<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line"> </tt>
+<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-23', 'dim1', 'link-7');">dim1</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href= [...]
+<a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-25', 'dim1', 'link-7');">dim1</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-n [...]
+<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-27', 'resetvals', 'link-27');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div></div><a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line"> </tt>
+<a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno">83</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt> </tt>
+<a name="L84"></a><tt class="py-lineno">84</tt>  <tt class="py-line">    <tt class="py-name">I</tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name" targets="Module fabio.bruker100image=fabio.bruker100image-module.html,Class fabio.bruker100image.bruker100image=fabio.bruker100image.bruker100image-class.html"><a title="fabio.bruker100image
+fabio.bruker100image.bruker100image" class="py-name" href="#" onclick="return doclink('link-28', 'bruker100image', 'link-28');">bruker100image</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno">85</tt>  <tt class="py-line">    <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">clock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno">86</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L87"></a><tt class="py-lineno">87</tt>  <tt class="py-line">        <tt class="py-name">I</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-29', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno">88</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">I</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method fabio.bruker100image.bruker100image.toPIL16()=fabio.bruker100image.bruker100image-class.html#toPIL16,Method fabio.fabioimage.fabioimage.toPIL16()=fabio.fabioimage.fabioimage-class.html#toPIL16"><a title="fabio.bruker100image.bruker100image.toPIL16
+fabio.fabioimage.fabioimage.toPIL16" class="py-name" href="#" onclick="return doclink('link-30', 'toPIL16', 'link-30');">toPIL16</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno">89</tt>  <tt class="py-line">        <tt class="py-name">I</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method fabio.fabioimage.fabioimage.rebin()=fabio.fabioimage.fabioimage-class.html#rebin"><a title="fabio.fabioimage.fabioimage.rebin" class="py-name" href="#" onclick="return doclink('link-31', 'rebin', 'link-31');">rebin</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-nu [...]
+<a name="L90"></a><tt class="py-lineno">90</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">": max=%d, min=%d, mean=%.2e, stddev=%.2e"</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L91"></a><tt class="py-lineno">91</tt>  <tt class="py-line">            <tt class="py-name">I</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method fabio.fabioimage.fabioimage.getmax()=fabio.fabioimage.fabioimage-class.html#getmax"><a title="fabio.fabioimage.fabioimage.getmax" class="py-name" href="#" onclick="return doclink('link-32', 'getmax', 'link-32');">getmax</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class=" [...]
+<a name="L92"></a><tt class="py-lineno">92</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">'integrated intensity (%d %d %d %d) =%.3f'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L93"></a><tt class="py-lineno">93</tt>  <tt class="py-line">            <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-number">40</tt><tt class="py-op">,</tt> <tt class="py-name">I</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method fabio.fabioimage.fabioimage.integrate_area()=fabio.fabioimage.fabioimage-class.html#integrate_ar [...]
+<a name="L94"></a><tt class="py-lineno">94</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L95"></a><tt class="py-lineno">95</tt>  <tt class="py-line">    <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">clock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno">96</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt> <tt class="py-op">-</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L97"></a><tt class="py-lineno">97</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.bruker100image.bruker100image-class.html b/epydoc/fabio.bruker100image.bruker100image-class.html
new file mode 100644
index 0000000..6cd8cd6
--- /dev/null
+++ b/epydoc/fabio.bruker100image.bruker100image-class.html
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.bruker100image.bruker100image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.bruker100image-module.html">Module bruker100image</a> ::
+        Class bruker100image
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.bruker100image.bruker100image-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class bruker100image</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.bruker100image-pysrc.html#bruker100image">source code</a></span></p>
+<pre class="base-tree">
+           object --+        
+                    |        
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+    
+                        |    
+  <a href="fabio.brukerimage.brukerimage-class.html">brukerimage.brukerimage</a> --+
+                            |
+                           <strong class="uidshort">bruker100image</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.bruker100image.bruker100image-class.html#toPIL16" class="summary-sig-name">toPIL16</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Convert to Python Imaging Library 16 bit greyscale image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.bruker100image-pysrc.html#bruker100image.toPIL16">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.bruker100image.bruker100image-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in and unpack the pixels (including overflow table</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.bruker100image-pysrc.html#bruker100image.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.brukerimage.brukerimage-class.html">brukerimage.brukerimage</a></code></b>:
+      <code><a href="fabio.brukerimage.brukerimage-class.html#write">write</a></code>,
+      <code><a href="fabio.brukerimage.brukerimage-class.html#write2">write2</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.brukerimage.brukerimage-class.html">brukerimage.brukerimage</a></code></b> (private):
+      <code><a href="fabio.brukerimage.brukerimage-class.html#_readheader" onclick="show_private();">_readheader</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.brukerimage.brukerimage-class.html">brukerimage.brukerimage</a></code></b>:
+      <code><a href="fabio.brukerimage.brukerimage-class.html#__headerstring__">__headerstring__</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="toPIL16"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">toPIL16</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.bruker100image-pysrc.html#bruker100image.toPIL16">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Convert to Python Imaging Library 16 bit greyscale image</p>
+  <p>FIXME - this should be handled by the libraries now</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#toPIL16">fabioimage.fabioimage.toPIL16</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.bruker100image-pysrc.html#bruker100image.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read in and unpack the pixels (including overflow table</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.brukerimage-module.html b/epydoc/fabio.brukerimage-module.html
new file mode 100644
index 0000000..ed0ab0e
--- /dev/null
+++ b/epydoc/fabio.brukerimage-module.html
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.brukerimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module brukerimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.brukerimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module brukerimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.brukerimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:erik.knudsen at risoe.dk
+
+Based on: openbruker,readbruker, readbrukerheader functions in the opendata
+         module of ImageD11 written by Jon Wright, ESRF, Grenoble, France
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.brukerimage.brukerimage-class.html" class="summary-name">brukerimage</a><br />
+      Read and eventually write ID11 bruker (eg smart6500) images
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test"></a><span class="summary-sig-name">test</span>()</span><br />
+      a testcase</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.brukerimage-pysrc.html#test">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("brukerimage")">logging.getLogger("brukerimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.brukerimage-pysrc.html b/epydoc/fabio.brukerimage-pysrc.html
new file mode 100644
index 0000000..bf261e6
--- /dev/null
+++ b/epydoc/fabio.brukerimage-pysrc.html
@@ -0,0 +1,557 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.brukerimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module brukerimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.brukerimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.brukerimage-module.html">Module fabio.brukerimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">         Center for Fundamental Research: Metal Structures in Four Dimensions</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">         Risoe National Laboratory</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">         Frederiksborgvej 399</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">         DK-4000 Roskilde</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">         email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring">Based on: openbruker,readbruker, readbrukerheader functions in the opendata</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">         module of ImageD11 written by Jon Wright, ESRF, Grenoble, France</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"brukerimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-1');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-1');">fabioimage</a></tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module fabio.readbytestream=fabio.readbytestream-module.html,Function fabio.readbytestream.readbytestream()=fabio.readbytestream-module.html#readbytestream"><a title="fabio.readbytestream
+fabio.readbytestream.readbytestream" class="py-name" href="#" onclick="return doclink('link-3', 'readbytestream', 'link-3');">readbytestream</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name"><a title="fabio.readbytestream
+fabio.readbytestream.readbytestream" class="py-name" href="#" onclick="return doclink('link-4', 'readbytestream', 'link-3');">readbytestream</a></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"> </tt>
+<a name="brukerimage"></a><div id="brukerimage-def"><a name="L22"></a><tt class="py-lineno"> 22</tt> <a class="py-toggle" href="#" id="brukerimage-toggle" onclick="return toggle('brukerimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.brukerimage.brukerimage-class.html">brukerimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="brukerimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="brukerimage-expanded"><a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-docstring">    Read and eventually write ID11 bruker (eg smart6500) images</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">    <tt class="py-comment"># needed if you feel like writing - see ImageD11/scripts/edf2bruker.py</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">    <tt id="link-5" class="py-name" targets="Variable fabio.brukerimage.brukerimage.__headerstring__=fabio.brukerimage.brukerimage-class.html#__headerstring__"><a title="fabio.brukerimage.brukerimage.__headerstring__" class="py-name" href="#" onclick="return doclink('link-5', '__headerstring__', 'link-5');">__headerstring__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
+<a name="brukerimage._readheader"></a><div id="brukerimage._readheader-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="brukerimage._readheader-toggle" onclick="return toggle('brukerimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.brukerimage.brukerimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class=" [...]
+</div><div id="brukerimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="brukerimage._readheader-expanded"><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-docstring">        the bruker format uses 80 char lines in key : value format</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-docstring">        In the fisrt 512*5 bytes of the header there should be a</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-docstring">        HDRBLKS key, whose value denotes how many 512 byte blocks</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring">        are in the total header. The header is always n*5*512 bytes,</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">        otherwise it wont contain whole key: value pairs</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-name">lump</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-6', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">512</tt> <tt class="py-op">*</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="fabio.brukerimage.brukerimage.__headerstring__" class="py-name" href="#" onclick="return doclink('link-7', '__headerstring__', 'link-5');">__headerstring__</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">lump</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt id="link-8" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-8', 'i', 'link-8');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-number">80</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-9', 'header', 'link-9');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt id="link-10" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-10', 'i', 'link-8');">i</a></tt> <tt class="py-op"><</tt> <tt class="py-number">512</tt> <tt class="py-op">*</tt> <tt class="py-number">5</tt><tt class="py-op">:</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">lump</tt><tt class="py-op">[</tt><tt id="link-11" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-11', 'i', 'link-8');">i</a></tt> <tt class="py-op">-</tt> <tt class="py-number">80</tt><tt class="py-op">:</tt> <tt id="link-12" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick= [...]
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                <tt id="link-13" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-13', 'key', 'link-13');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">lump</tt><tt class="py-op">[</tt><tt id="link-14" class="py-name"><a title="f [...]
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">                <tt id="link-16" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-16', 'key', 'link-13');">key</a></tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-17', 'key', 'link-13');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="p [...]
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-18', 'header', 'link-9');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt id="link-19" class="py-name"><a title="fabio.fabioutils.key" class [...]
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">                    <tt class="py-comment"># append lines if key already there</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-20', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt id="link-21" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-21', 'key', 'link-13');">key</a>< [...]
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-24', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt id="link-25" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-25', 'key', 'link-13');">key</a>< [...]
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Variable fabio.edfimage.edfimage.header_keys=fabio.edfimage.edfimage-class.html#header_keys"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-26', 'header_keys', 'link-26');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt  [...]
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">            <tt id="link-28" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-28', 'i', 'link-8');">i</a></tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-29', 'i', 'link-8');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-number">80</tt>                  <tt class=" [...]
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt class="py-comment"># we must have read this in the first 512 bytes.</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">nhdrblks</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-30', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'HDRBLKS'</tt><tt class="py-op"> [...]
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-comment"># Now read in the rest of the header blocks, appending</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-name">rest</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-31', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">512</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">nhdrblks</tt> <tt class="py-op">-</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="fabio.brukerimage.brukerimage.__headerstring__" class="py-name" href="#" onclick="return doclink('link-32', '__headerstring__', 'link-5');">__headerstring__</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">rest</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-name">lump</tt> <tt class="py-op">=</tt> <tt class="py-name">lump</tt><tt class="py-op">[</tt><tt id="link-33" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-33', 'i', 'link-8');">i</a></tt> <tt class="py-op">-</tt> <tt class="py-number">80</tt><tt class="py-op">:</tt> <tt class="py-number">512</tt><tt class="py-op">]</tt> <tt class="py-op">+</ [...]
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt id="link-34" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-34', 'i', 'link-8');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-number">80</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-name">j</tt> <tt class="py-op">=</tt> <tt class="py-number">512</tt> <tt class="py-op">*</tt> <tt class="py-name">nhdrblks</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt id="link-35" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-35', 'i', 'link-8');">i</a></tt> <tt class="py-op"><</tt> <tt class="py-name">j</tt> <tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">lump</tt><tt class="py-op">[</tt><tt id="link-36" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-36', 'i', 'link-8');">i</a></tt> <tt class="py-op">-</tt> <tt class="py-number">80</tt><tt class="py-op">:</tt> <tt id="link-37" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick= [...]
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">                <tt id="link-38" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-38', 'key', 'link-13');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">lump</tt><tt class="py-op">[</tt><tt id="link-39" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link [...]
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">                <tt id="link-41" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-41', 'key', 'link-13');">key</a></tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-42', 'key', 'link-13');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="p [...]
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-43', 'header', 'link-9');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="fabio.fabioutils.key" class [...]
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-45', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt id="link-46" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-46', 'key', 'link-13');">key</a>< [...]
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-49', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt id="link-50" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-50', 'key', 'link-13');">key</a>< [...]
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-51', 'header_keys', 'link-26');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-52" class="py-name"><a title="fabio.fabioutils.key" class="py-name" h [...]
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">            <tt id="link-53" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-53', 'i', 'link-8');">i</a></tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-54', 'i', 'link-8');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-number">80</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-comment"># make a (new) header item called "datastart"</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-55', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'datastart'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">te [...]
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-comment">#set the image dimensions</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-56', 'dim1', 'link-56');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt [...]
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-58', 'dim2', 'link-58');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt [...]
+</div><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
+<a name="brukerimage.read"></a><div id="brukerimage.read-def"><a name="L81"></a><tt class="py-lineno"> 81</tt> <a class="py-toggle" href="#" id="brukerimage.read-toggle" onclick="return toggle('brukerimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.brukerimage.brukerimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</t [...]
+</div><div id="brukerimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="brukerimage.read-expanded"><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt class="py-docstring">        Read in and unpack the pixels (including overflow table</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-60', '_open', 'link-60');">_open</a></tt><tt class="py-op">(</tt><tt clas [...]
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage. [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-61', '_readheader', 'link-61');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-name">rows</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-62', 'dim1', 'link-56');">dim1</a></tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">cols</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-63', 'dim2', 'link-58');">dim2</a></tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">            <tt class="py-comment"># you had to read the Bruker docs to know this!</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">            <tt class="py-name">npixelb</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-64', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NPIXELB'</tt><tt class="py-o [...]
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">            <tt class="py-name">errmsg</tt> <tt class="py-op">=</tt> <tt class="py-string">"length "</tt> <tt class="py-op">+</tt> <tt id="link-65" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-65', 'str', 'link-65');">str</a></tt><tt class="py-op">(</tt><tt id="link-66" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-66', 'len', 'link-66');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py [...]
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">byt</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-68', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NPIXELB'</tt><tt class="py-op">]</tt><tt class [...]
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">                <tt class="py-name">errmsg</tt> <tt class="py-op">+=</tt> <tt class="py-string">"char: "</tt> <tt class="py-op">+</tt> <tt id="link-69" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-69', 'str', 'link-65');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">byt</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">" "</tt> <tt class="py-op">+</tt> <tt id="link-70" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-70', 'str', 'link-65');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">byt</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"\n"</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">            <tt id="link-71" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-71', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-name">errmsg</tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-72', 'data', 'link-72');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="fabio.readbytestream
+fabio.readbytestream.readbytestream" class="py-name" href="#" onclick="return doclink('link-73', 'readbytestream', 'link-3');">readbytestream</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">,</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">                                   <tt class="py-name">rows</tt><tt class="py-op">,</tt> <tt class="py-name">cols</tt><tt class="py-op">,</tt> <tt class="py-name">npixelb</tt><tt class="py-op">,</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">                                   <tt class="py-name">datatype</tt><tt class="py-op">=</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">                                   <tt class="py-name">signed</tt><tt class="py-op">=</tt><tt class="py-string">'n'</tt><tt class="py-op">,</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">                                   <tt class="py-name">swap</tt><tt class="py-op">=</tt><tt class="py-string">'n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-comment">#handle overflows</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-name">nov</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-74', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'NOVERFL'</tt><tt class="py-op">]</t [...]
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nov</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt>   <tt class="py-comment"># Read in the overflows</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt class="py-comment"># need at least int32 sized data I guess - can reach 2^21</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-75', 'data', 'link-72');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-76', 'data', 'link-72');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">            <tt class="py-comment"># 16 character overflows:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">            <tt class="py-comment">#      9 characters of intensity</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">            <tt class="py-comment">#      7 character position</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-77" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-77', 'i', 'link-8');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">nov</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">                <tt class="py-name">ovfl</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-78', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">                <tt class="py-name">intensity</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">ovfl</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt> <tt class="py-number">9</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">                <tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">ovfl</tt><tt class="py-op">[</tt><tt class="py-number">9</tt><tt class="py-op">:</tt> <tt class="py-number">16</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">                <tt class="py-comment"># relies on python style modulo being always +</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">                <tt class="py-name">row</tt> <tt class="py-op">=</tt> <tt class="py-name">position</tt> <tt class="py-op">%</tt> <tt class="py-name">rows</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">                <tt class="py-comment"># relies on truncation down</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">                <tt class="py-name">col</tt> <tt class="py-op">=</tt> <tt class="py-name">position</tt> <tt class="py-op">/</tt> <tt class="py-name">rows</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">                <tt class="py-comment">#print "Overflow ", r, c, intensity, position,\</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">                <tt class="py-comment">#    self.data[r,c],self.data[c,r]</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-79', 'data', 'link-72');">data</a></tt><tt class="py-op">[</tt><tt class="py-name">col</tt><tt class="py-op">,</tt> <tt class="py-name">row</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">intensity</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-80', 'resetvals', 'link-80');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"> </tt>
+<a name="brukerimage.write"></a><div id="brukerimage.write-def"><a name="L136"></a><tt class="py-lineno">136</tt> <a class="py-toggle" href="#" id="brukerimage.write-toggle" onclick="return toggle('brukerimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.brukerimage.brukerimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-o [...]
+</div><div id="brukerimage.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="brukerimage.write-expanded"><a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">        Writes the image as EDF</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-docstring">        FIXME:  this should call edfimage.write if that is wanted?</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-docstring">                obj = edfimage(data = self.data, header = self.header)</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-docstring">                obj.write(fname)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-docstring">                or maybe something like: edfimage.write(self, fname)</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt id="link-81" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-81', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"***warning***: call to unifinished "</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">                <tt class="py-string">"brukerimage.write. This will write the file"</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">                            <tt class="py-name">fname</tt> <tt class="py-op">+</tt> <tt class="py-string">"as an edf-file"</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">        <tt class="py-name">outfile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-82', '_open', 'link-60');">_open</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-string">"wb"</tt><tt class="py-op"> [...]
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">        <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method fabio.GEimage.GEimage.write()=fabio.GEimage.GEimage-class.html#write,Method fabio.OXDimage.OXDimage.write()=fabio.OXDimage.OXDimage-class.html#write,Method fabio.adscimage.adscimage.write()=fabio.adscimage.adscimage-class.html#write,Method fabio.binaryimage.binaryimage.write()=fabio.binaryimage.binaryimage- [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-83', 'write', 'link-83');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'{\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt id="link-84" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-84', 'i', 'link-8');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-number">4</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-85', 'header_keys', 'link-26');">header_keys</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">            <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">"%s = %s;\n"</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">k</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" [...]
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">            <tt id="link-87" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-87', 'i', 'link-8');">i</a></tt> <tt class="py-op">=</tt> <tt id="link-88" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-88', 'i', 'link-8');">i</a></tt> <tt class="py-op">+</tt> <tt id="link-89" class="py-name"><a title="fabio.file_ser [...]
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-90', 'write', 'link-83');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">4096</tt> <tt class="py-op">-</tt> <tt id="link-91" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-91', 'i', 'link-8');">i</a></tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-string">' '</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-92', 'write', 'link-83');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-93', 'write', 'link-83');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">'}\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">        <tt class="py-comment"># Assumes a short-circuiting if / or ...</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-94', 'header', 'link-9');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">"ByteOrder"</tt><tt cla [...]
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">               <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-95', 'header', 'link-9');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"ByteOrder"</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"LowByteFirst"</tt><tt class="py-op">:</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-96', 'write', 'link-83');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-97', 'data', 'link-72');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-98', 'tostring', 'link-98');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-99', 'write', 'link-83');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-100', 'data', 'link-72');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">                    <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-101', 'tostring', 'link-98');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"> </tt>
+<a name="test"></a><div id="test-def"><a name="L173"></a><tt class="py-lineno">173</tt> <a class="py-toggle" href="#" id="test-toggle" onclick="return toggle('test');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.brukerimage-module.html#test">test</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="test-expanded"><a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">    <tt class="py-docstring">""" a testcase """</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">    <tt class="py-name">img</tt> <tt class="py-op">=</tt> <tt id="link-102" class="py-name" targets="Module fabio.brukerimage=fabio.brukerimage-module.html,Class fabio.brukerimage.brukerimage=fabio.brukerimage.brukerimage-class.html"><a title="fabio.brukerimage
+fabio.brukerimage.brukerimage" class="py-name" href="#" onclick="return doclink('link-102', 'brukerimage', 'link-102');">brukerimage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">    <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">clock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">        <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-103', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name" targets="Method fabio.bruker100image.bruker100image.toPIL16()=fabio.bruker100image.bruker100image-class.html#toPIL16,Method fabio.fabioimage.fabioimage.toPIL16()=fabio.fabioimage.fabioimage-class.html#toPIL16"><a title="fabio.bruker100image.bruker100image.toPIL16
+fabio.fabioimage.fabioimage.toPIL16" class="py-name" href="#" onclick="return doclink('link-104', 'toPIL16', 'link-104');">toPIL16</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name" targets="Method fabio.fabioimage.fabioimage.rebin()=fabio.fabioimage.fabioimage-class.html#rebin"><a title="fabio.fabioimage.fabioimage.rebin" class="py-name" href="#" onclick="return doclink('link-105', 'rebin', 'link-105');">rebin</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class [...]
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-name">filename</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">": max=%d, min=%d, mean=%.2e, stddev=%.2e"</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">            <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Method fabio.fabioimage.fabioimage.getmax()=fabio.fabioimage.fabioimage-class.html#getmax"><a title="fabio.fabioimage.fabioimage.getmax" class="py-name" href="#" onclick="return doclink('link-106', 'getmax', 'link-106');">getmax</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt  [...]
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">'integrated intensity (%d %d %d %d) =%.3f'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">            <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-number">40</tt><tt class="py-op">,</tt> <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Method fabio.fabioimage.fabioimage.integrate_area()=fabio.fabioimage.fabioimage-class.html#integra [...]
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">    <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">clock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-name">end</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">    <tt id="link-111" class="py-name" targets="Function fabio.adscimage.test()=fabio.adscimage-module.html#test,Function fabio.brukerimage.test()=fabio.brukerimage-module.html#test,Function fabio.fabioimage.test()=fabio.fabioimage-module.html#test"><a title="fabio.adscimage.test
+fabio.brukerimage.test
+fabio.fabioimage.test" class="py-name" href="#" onclick="return doclink('link-111', 'test', 'link-111');">test</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.brukerimage.brukerimage-class.html b/epydoc/fabio.brukerimage.brukerimage-class.html
new file mode 100644
index 0000000..75b5f3c
--- /dev/null
+++ b/epydoc/fabio.brukerimage.brukerimage-class.html
@@ -0,0 +1,450 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.brukerimage.brukerimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.brukerimage-module.html">Module brukerimage</a> ::
+        Class brukerimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.brukerimage.brukerimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class brukerimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.brukerimage-pysrc.html#brukerimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">brukerimage</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="fabio.bruker100image.bruker100image-class.html">bruker100image.bruker100image</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Read and eventually write ID11 bruker (eg smart6500) images</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.brukerimage.brukerimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      the bruker format uses 80 char lines in key : value format In the 
+      fisrt 512*5 bytes of the header there should be a HDRBLKS key, whose 
+      value denotes how many 512 byte blocks are in the total header.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.brukerimage-pysrc.html#brukerimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.brukerimage.brukerimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in and unpack the pixels (including overflow table</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.brukerimage-pysrc.html#brukerimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.brukerimage.brukerimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      Writes the image as EDF</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.brukerimage-pysrc.html#brukerimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="write2"></a><span class="summary-sig-name">write2</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      FIXME: what is this?</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__headerstring__"></a><span class="summary-name">__headerstring__</span> = <code title="''"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.brukerimage-pysrc.html#brukerimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>the bruker format uses 80 char lines in key : value format In the 
+  fisrt 512*5 bytes of the header there should be a HDRBLKS key, whose 
+  value denotes how many 512 byte blocks are in the total header. The 
+  header is always n*5*512 bytes, otherwise it wont contain whole key: 
+  value pairs</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.brukerimage-pysrc.html#brukerimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read in and unpack the pixels (including overflow table</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.brukerimage-pysrc.html#brukerimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Writes the image as EDF
+
+FIXME:  this should call edfimage.write if that is wanted?
+        obj = edfimage(data = self.data, header = self.header)
+        obj.write(fname)
+        or maybe something like: edfimage.write(self, fname)
+
+</pre>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.byte_offset-module.html b/epydoc/fabio.byte_offset-module.html
new file mode 100644
index 0000000..775d22e
--- /dev/null
+++ b/epydoc/fabio.byte_offset-module.html
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.byte_offset</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module byte_offset
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.byte_offset-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module byte_offset</h1><p class="nomargin-top"></p>
+<p>Authors:      Jerome Kieffer, ESRF Email:        
+  jerome.kieffer at esrf.eu</p>
+  <p>Cif Binary Files images are 2D images written by the Pilatus detector 
+  and others. They use a modified (simplified) byte-offset algorithm.  This
+  file contains the decompression function from a string to an int64 numpy 
+  array.</p>
+  <p>This is Cython: convert it to pure C then compile it with gcc $ cython
+  byte_offset.pyx</p>
+
+<hr />
+<div class="fields">      <p><strong>Author:</strong>
+        J\xc3\xa9r\xc3\xb4me Kieffer
+      </p>
+      <p><strong>Contact:</strong>
+        jerome.kieffer at esrf.eu
+      </p>
+      <p><strong>Copyright:</strong>
+        2010, European Synchrotron Radiation Facility, Grenoble, France
+      </p>
+      <p><strong>License:</strong>
+        GPLv3+
+      </p>
+</div><!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__test__"></a><span class="summary-name">__test__</span> = <code title="{}"><code class="variable-group">{</code><code class="variable-group">}</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.cbfimage-module.html b/epydoc/fabio.cbfimage-module.html
new file mode 100644
index 0000000..8e6d37a
--- /dev/null
+++ b/epydoc/fabio.cbfimage-module.html
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.cbfimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module cbfimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.cbfimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module cbfimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.cbfimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Authors: Jérôme Kieffer, ESRF
+         email:jerome.kieffer at esrf.fr
+
+Cif Binary Files images are 2D images written by the Pilatus detector and others.
+They use a modified (simplified) byte-offset algorithm.
+
+CIF is a library for manipulating Crystallographic information files and tries
+to conform to the specification of the IUCR
+
+</pre>
+
+<hr />
+<div class="fields">      <p><strong>Author:</strong>
+        J\xc3\xa9r\xc3\xb4me Kieffer
+      </p>
+      <p><strong>Contact:</strong>
+        jerome.kieffer at esrf.eu
+      </p>
+      <p><strong>Copyright:</strong>
+        European Synchrotron Radiation Facility, Grenoble, France
+      </p>
+      <p><strong>License:</strong>
+        GPLv3+
+      </p>
+</div><!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.cbfimage.cbfimage-class.html" class="summary-name">cbfimage</a><br />
+      Read the Cif Binary File data format
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.cbfimage.CIF-class.html" class="summary-name">CIF</a><br />
+      This is the CIF class, it represents the CIF dictionary; and as a a
+        python dictionary thus inherits from the dict built in class.
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("cbfimage")">logging.getLogger("cbfimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.cbfimage-module.html#DATA_TYPES" class="summary-name">DATA_TYPES</a> = <code title="{'signed 16-bit integer': <type 'numpy.int16'>,
+ 'signed 32-bit integer': <type 'numpy.int32'>,
+ 'signed 64-bit integer': <type 'numpy.int64'>,
+ 'signed 8-bit integer': <type 'numpy.int8'>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">signed 16-bit integer</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.int16'><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.cbfimage-module.html#MINIMUM_KEYS" class="summary-name">MINIMUM_KEYS</a> = <code title="['X-Binary-Size-Fastest-Dimension',
+ 'ByteOrder',
+ 'Data type',
+ 'X dimension',
+ 'Y dimension',
+ 'Number of readouts']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">X-Binary-Size-Fastest-Dimension</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">ByteOrder</code><code class="variable-quote">'</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="STARTER"></a><span class="summary-name">STARTER</span> = <code title="'\x0c\x1a\x04\xd5'"><code class="variable-quote">'</code><code class="variable-string">\x0c\x1a\x04\xd5</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="PADDING"></a><span class="summary-name">PADDING</span> = <code title="512">512</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="DATA_TYPES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">DATA_TYPES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">signed 16-bit integer</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.int16'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">signed 32-bit integer</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.int32'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">signed 64-bit integer</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.int64'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">signed 8-bit integer</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.int8'><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="MINIMUM_KEYS"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">MINIMUM_KEYS</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">X-Binary-Size-Fastest-Dimension</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">ByteOrder</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Data type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">X dimension</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Y dimension</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Number of readouts</code><code class="variable-quote">'</code><code class="variable-group">]</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.cbfimage-pysrc.html b/epydoc/fabio.cbfimage-pysrc.html
new file mode 100644
index 0000000..8c84906
--- /dev/null
+++ b/epydoc/fabio.cbfimage-pysrc.html
@@ -0,0 +1,1210 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.cbfimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module cbfimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.cbfimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.cbfimage-module.html">Module fabio.cbfimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"># coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Jérôme Kieffer, ESRF</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">         email:jerome.kieffer at esrf.fr</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">Cif Binary Files images are 2D images written by the Pilatus detector and others.</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">They use a modified (simplified) byte-offset algorithm.</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">CIF is a library for manipulating Crystallographic information files and tries</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring">to conform to the specification of the IUCR</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">"Jérôme Kieffer"</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-name">__contact__</tt> <tt class="py-op">=</tt> <tt class="py-string">"jerome.kieffer at esrf.eu"</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> <tt class="py-string">"GPLv3+"</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-name">__copyright__</tt> <tt class="py-op">=</tt> <tt class="py-string">"European Synchrotron Radiation Facility, Grenoble, France"</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-name">__version__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"Generated by CIF.py: Jan 2005 - April 2012"</tt><tt class="py-op">,</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">              <tt class="py-string">"Written by Jerome Kieffer: Jerome.Kieffer at esrf.eu"</tt><tt class="py-op">,</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">              <tt class="py-string">"On-line data analysis / ISDD "</tt><tt class="py-op">,</tt> <tt class="py-string">"ESRF Grenoble (France)"</tt><tt class="py-op">]</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"cbfimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-1');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-1');">fabioimage</a></tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module fabio.compression=fabio.compression-module.html"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-3', 'compression', 'link-3');">compression</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Function fabio.compression.decByteOffet_numpy()=fabio.compression-module.html#de [...]
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-comment">#import time</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable fabio.cbfimage.DATA_TYPES=fabio.cbfimage-module.html#DATA_TYPES,Variable fabio.dm3image.DATA_TYPES=fabio.dm3image-module.html#DATA_TYPES,Variable fabio.edfimage.DATA_TYPES=fabio.edfimage-module.html#DATA_TYPES,Variable fabio.kcdimage.DATA_TYPES=fabio.kcdimage-module.html#DATA_TYPES"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-7', 'DATA_TYPES', 'link-7');">DATA_TYPES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-string">"signed 8-bit integer"</tt>   <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int8</tt><tt class="py-op">,</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">               <tt class="py-string">"signed 16-bit integer"</tt>  <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int16</tt><tt class="py-op">,</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">               <tt class="py-string">"signed 32-bit integer"</tt>  <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">               <tt class="py-string">"signed 64-bit integer"</tt>  <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int64</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">                <tt class="py-op">}</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable fabio.cbfimage.MINIMUM_KEYS=fabio.cbfimage-module.html#MINIMUM_KEYS,Variable fabio.edfimage.MINIMUM_KEYS=fabio.edfimage-module.html#MINIMUM_KEYS,Variable fabio.kcdimage.MINIMUM_KEYS=fabio.kcdimage-module.html#MINIMUM_KEYS"><a title="fabio.cbfimage.MINIMUM_KEYS
+fabio.edfimage.MINIMUM_KEYS
+fabio.kcdimage.MINIMUM_KEYS" class="py-name" href="#" onclick="return doclink('link-8', 'MINIMUM_KEYS', 'link-8');">MINIMUM_KEYS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"X-Binary-Size-Fastest-Dimension"</tt><tt class="py-op">,</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">                <tt class="py-string">'ByteOrder'</tt><tt class="py-op">,</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">                <tt class="py-string">'Data type'</tt><tt class="py-op">,</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">                <tt class="py-string">'X dimension'</tt><tt class="py-op">,</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                <tt class="py-string">'Y dimension'</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">                <tt class="py-string">'Number of readouts'</tt><tt class="py-op">]</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable fabio.cbfimage.STARTER=fabio.cbfimage-module.html#STARTER"><a title="fabio.cbfimage.STARTER" class="py-name" href="#" onclick="return doclink('link-9', 'STARTER', 'link-9');">STARTER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"\x0c\x1a\x04\xd5"</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt id="link-10" class="py-name" targets="Variable fabio.cbfimage.PADDING=fabio.cbfimage-module.html#PADDING"><a title="fabio.cbfimage.PADDING" class="py-name" href="#" onclick="return doclink('link-10', 'PADDING', 'link-10');">PADDING</a></tt> <tt class="py-op">=</tt> <tt class="py-number">512</tt> </tt>
+<a name="cbfimage"></a><div id="cbfimage-def"><a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <a class="py-toggle" href="#" id="cbfimage-toggle" onclick="return toggle('cbfimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.cbfimage.cbfimage-class.html">cbfimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="cbfimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="cbfimage-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring">    Read the Cif Binary File data format</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="cbfimage.__init__"></a><div id="cbfimage.__init__-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <a class="py-toggle" href="#" id="cbfimage.__init__-toggle" onclick="return toggle('cbfimage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.cbfimage-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op" [...]
+</div><div id="cbfimage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="cbfimage.__init__-expanded"><a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-docstring">        Constructor of the class CIF Binary File reader.</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-docstring">        @param _strFilename: the name of the file to open</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring">        @type  _strFilename: string</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt id="link-11" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-11', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fabio.adscimage.adscimage-class.html#__init__,Method fabio.binaryimage.binaryimage.__i [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-12', '__init__', 'link-12');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-13', 'data', 'link-13');">data</a></tt><tt class="py-op">,</tt> <tt id="link-14" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-14', 'header', 'link-14');">header</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt> <tt class="py-op">=</tt> <tt id="link-15" class="py-name" targets="Class fabio.cbfimage.CIF=fabio.cbfimage.CIF-class.html"><a title="fabio.cbfimage.CIF" class="py-name" href="#" onclick="return doclink('link-15', 'CIF', 'link-15');">CIF</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">fname</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-comment">#load the file)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.OXDimage.read()=fabio.OXDimage.OXDimage-class.html# [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-16', 'read', 'link-16');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="cbfimage.checkData"></a><div id="cbfimage.checkData-def"><a name="L63"></a><tt class="py-lineno"> 63</tt> <a class="py-toggle" href="#" id="cbfimage.checkData-toggle" onclick="return toggle('cbfimage.checkData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.cbfimage-class.html#checkData">checkData</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py [...]
+</div><div id="cbfimage.checkData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="cbfimage.checkData-expanded"><a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-17" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-17', 'data', 'link-13');">data</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">issubdtype</tt><tt class="py-op">(</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-18', 'data', 'link-13');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-19" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-19', 'data', 'link-13');">data</a></tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-20" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-20', 'data', 'link-13');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
+<a name="cbfimage._readheader"></a><div id="cbfimage._readheader-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="cbfimage._readheader-toggle" onclick="return toggle('cbfimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.cbfimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">inStream [...]
+</div><div id="cbfimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="cbfimage._readheader-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-docstring">        Read in a header in some CBF format from a string representing binary stuff</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring">        @param inStream: file containing the Cif Binary part.</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-docstring">        @type inStream: opened file.</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method fabio.cbfimage.CIF.loadCIF()=fabio.cbfimage.CIF-class.html#loadCIF"><a title="fabio.cbfimage.CIF.loadCIF" class="py-name" href="#" onclick="return doclink('link-21', 'loadCIF', 'link-21');">loadCIF</a></tt><tt class="py-op">(</tt><tt class="py-name">inStream</ [...]
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"><tt class="py-comment">#        backport contents of the CIF data to the headers</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-22" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-22', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-23" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-23', 'key', 'link-22');">key</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">"_array_data.data"</tt><tt class="py-op">:</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Variable fabio.edfimage.edfimage.header_keys=fabio.edfimage.edfimage-class.html#header_keys"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-24', 'header_keys', 'link-24');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt clas [...]
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-26', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt id="link-27" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-27', 'key', 'link-22');">key</a></tt [...]
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">"_array_data.data"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt><tt class="py-op">:</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"cbfimage: CBF file %s is corrupt, cannot find data block with '_array_data.data' key"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-name">inStream2</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt><tt class="py-op">[</tt><tt class="py-string">"_array_data.data"</tt><tt class="py-op">]</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-name">sep</tt> <tt class="py-op">=</tt> <tt class="py-string">"\r\n"</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">iSepPos</tt> <tt class="py-op">=</tt> <tt class="py-name">inStream2</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-name">sep</tt><tt class="py-op">)</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">iSepPos</tt> <tt class="py-op"><</tt> <tt class="py-number">0</tt> <tt class="py-keyword">or</tt> <tt class="py-name">iSepPos</tt> <tt class="py-op">></tt> <tt class="py-number">80</tt><tt class="py-op">:</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt class="py-name">sep</tt> <tt class="py-op">=</tt> <tt class="py-string">"\n"</tt> <tt class="py-comment">#switch back to unix representation</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt id="link-29" class="py-name" targets="Variable fabio.fabioutils.lines=fabio.fabioutils-module.html#lines"><a title="fabio.fabioutils.lines" class="py-name" href="#" onclick="return doclink('link-29', 'lines', 'link-29');">lines</a></tt> <tt class="py-op">=</tt> <tt class="py-name">inStream2</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-name">sep</tt><tt clas [...]
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">oneLine</tt> <tt class="py-keyword">in</tt> <tt id="link-30" class="py-name"><a title="fabio.fabioutils.lines" class="py-name" href="#" onclick="return doclink('link-30', 'lines', 'link-29');">lines</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-31" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-31', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">oneLine</tt><tt class="py-op">)</tt> <tt class="py-op"><</tt> <t [...]
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">                <tt id="link-32" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-32', 'key', 'link-22');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">oneLine</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt> <tt class="py-op">,</tt> <tt [...]
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">                <tt id="link-33" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-33', 'key', 'link-22');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">oneLine</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt> <tt class="py-op">,</tt> <tt [...]
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt id="link-34" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-34', 'key', 'link-22');">key</a></tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-35', 'key', 'link-22');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-o [...]
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-36', 'header_keys', 'link-24');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" [...]
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-38', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt id="link-39" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-39', 'key', 'link-22');">key</a></tt><t [...]
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-name">missing</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt id="link-40" class="py-name"><a title="fabio.cbfimage.MINIMUM_KEYS
+fabio.edfimage.MINIMUM_KEYS
+fabio.kcdimage.MINIMUM_KEYS" class="py-name" href="#" onclick="return doclink('link-40', 'MINIMUM_KEYS', 'link-8');">MINIMUM_KEYS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">item</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-41', 'header_keys', 'link-24');">header_keys</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">                <tt class="py-name">missing</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-42" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-42', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">missing</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">            <tt id="link-43" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-43', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"CBF file misses the keys "</tt> <tt class="py-op">+</tt> <tt class="py-string">" "</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">missing</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"> </tt>
+<a name="cbfimage.read"></a><div id="cbfimage.read-def"><a name="L115"></a><tt class="py-lineno">115</tt> <a class="py-toggle" href="#" id="cbfimage.read-toggle" onclick="return toggle('cbfimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.cbfimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py- [...]
+</div><div id="cbfimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="cbfimage.read-expanded"><a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">        Read in header into self.header and</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">            the data   into self.data</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-44', 'header', 'link-14');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-45', 'resetvals', 'link-45');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-46', '_open', 'link-46');">_open</a></tt><tt class="py-op">(</tt><tt cla [...]
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._re [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-47', '_readheader', 'link-47');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-comment"># Compute image size</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-48', 'dim1', 'link-48');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">sel [...]
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-50', 'dim2', 'link-50');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">sel [...]
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-string">"CBF file %s is corrupt, no dimensions in it"</tt> <tt class="py-op">%</tt> <tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt id="link-52" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-52', 'bytecode', 'link-52');">bytecode</a></tt> <tt class="py-op">=</tt> <tt id="link-53" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-53', 'DATA_TYPES', 'link-7');">DATA_TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-54', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'X-Binary-Element-Type'</tt><tt class="py-op">]</tt><tt class="p [...]
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-55', 'bpp', 'link-55');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name"><a title="fabio.file_series.file_series.len" cl [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-57', 'bytecode', 'link-52');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-58', 'tostring', 'link-58');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt id="link-59" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-59', 'bytecode', 'link-52');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-60', 'bpp', 'link-55');">bpp</a></tt> <tt class="py-op">=</tt> <tt class="py-number">32</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">            <tt id="link-61" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-61', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Defaulting type to int32"</tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-62', 'header', 'link-14');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"conversions"</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"x-CBF_BYTE_OFFSET" [...]
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-63', 'data', 'link-13');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Method fabio.cbfimage.cbfimage._readbinary_byte_offset()=fabio.cbfimage.cbfimage-class.html#_readbinary_byte_offset"><a title="fabio.cbfimage.cbfimage._readbinary_byte_offset" class="py-name" href="#" onclick="return doclink('link-64', '_readbinar [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-65', 'bytecode', 'link-52');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-66', 'dim2', 'link-50');">dim2</a></tt><tt clas [...]
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-string">"Compression scheme not yet supported, please contact FABIO development team"</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-68', 'bytecode', 'link-52');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-69', 'data', 'link-13');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-70', 'resetvals', 'link-45');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-comment">#        # ensure the PIL image is reset</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt>
+<a name="cbfimage._readbinary_byte_offset"></a><div id="cbfimage._readbinary_byte_offset-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="cbfimage._readbinary_byte_offset-toggle" onclick="return toggle('cbfimage._readbinary_byte_offset');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.cbfimage-class.html#_readbinary_byte_offset">_readbinary_byte_offset</a><tt class="py-op">(</tt><tt class=" [...]
+</div><div id="cbfimage._readbinary_byte_offset-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="cbfimage._readbinary_byte_offset-expanded"><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">        Read in a binary part of an x-CBF_BYTE_OFFSET compressed image</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">        @param inStream: the binary image (without any CIF decorators)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-docstring">        @type inStream: python string.</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-docstring">        @return: a linear numpy array without shape and dtype set</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: numpy array</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">        <tt class="py-name">startPos</tt> <tt class="py-op">=</tt> <tt class="py-name">inStream</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt id="link-71" class="py-name"><a title="fabio.cbfimage.STARTER" class="py-name" href="#" onclick="return doclink('link-71', 'STARTER', 'link-9');">STARTER</a></tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">4</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt id="link-72" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-72', 'data', 'link-13');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">inStream</tt><tt class="py-op">[</tt> <tt class="py-name">startPos</tt><tt class="py-op">:</tt> <tt class="py-name">startPos</tt> <tt class="py-op">+</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="fabio.edfimage.edfi [...]
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">            <tt class="py-keyword">import</tt> <tt id="link-74" class="py-name" targets="Module fabio.byte_offset=fabio.byte_offset-module.html"><a title="fabio.byte_offset" class="py-name" href="#" onclick="return doclink('link-74', 'byte_offset', 'link-74');">byte_offset</a></tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">            <tt id="link-75" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-75', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Error in byte_offset part: Falling back to Numpy implementation"</tt><tt class="py-op">)</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">            <tt class="py-name">myData</tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="fabio.compression.decByteOffet_numpy" class="py-name" href="#" onclick="return doclink('link-76', 'decByteOffet_numpy', 'link-4');">decByteOffet_numpy</a></tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-77', 'data', 'link-13');">data</a></tt><tt class="py-op">,</tt> <tt id="link-78" class="py-name" targets="Variable fabio.fabioutils.BZ2File.size=fabio.fabioutils.BZ2File-class.html#size,Variable fabio.fabioutils.File.size=fabio.fabioutils.File-class.html#size,Variable fabio.fabioutils.GzipFile.size=fabio.fabioutils.GzipFile-class.html#size,Variable fabio.fabioutils.StringIO.size=fabio.fabioutils.StringIO [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-78', 'size', 'link-78');">size</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-79', 'dim1', 'link-48');">dim1</a></tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title=" [...]
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">            <tt class="py-name">myData</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="fabio.byte_offset" class="py-name" href="#" onclick="return doclink('link-81', 'byte_offset', 'link-74');">byte_offset</a></tt><tt class="py-op">.</tt><tt class="py-name">analyseCython</tt><tt class="py-op">(</tt><tt id="link-82" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-82', 'data', 'link-13');">data</a></tt><tt class="py-op">,</tt> <tt id="link-83" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-83', 'size', 'link-78');">size</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-84', 'dim1', 'link-48');">dim1</a></tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title=" [...]
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt id="link-86" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-86', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">myData</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="fabio. [...]
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">myData</tt> </tt>
+</div><a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"> </tt>
+<a name="cbfimage.write"></a><div id="cbfimage.write-def"><a name="L175"></a><tt class="py-lineno">175</tt> <a class="py-toggle" href="#" id="cbfimage.write-toggle" onclick="return toggle('cbfimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.cbfimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">)</tt><tt class [...]
+</div><div id="cbfimage.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="cbfimage.write-expanded"><a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">        write the file in CBF format</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring">        @param fname: name of the file</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-docstring">        @type: string</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-89', 'data', 'link-13');">data</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-90', 'dim2', 'link-50');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="retu [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-92', 'data', 'link-13');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"CBF image contains no data"</tt><tt class="py-op">)</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">        <tt class="py-name">binary_blob</tt> <tt class="py-op">=</tt> <tt id="link-93" class="py-name"><a title="fabio.compression.compByteOffet_numpy" class="py-name" href="#" onclick="return doclink('link-93', 'compByteOffet_numpy', 'link-6');">compByteOffet_numpy</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-94', 'data', 'link-13');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-comment">#        l = len(binary_blob)</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-comment">#        if (l % PADDING) != 0:</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-comment">#            rem = PADDING - (l % PADDING)</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-comment">#            binary_blob += "\x00" * rem</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">        <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-string">"Unknown"</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-95" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-95', 'key', 'link-22');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt id="link-96" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-96', 'DATA_TYPES', 'link-7');">DATA_TYPES</a></tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-97', 'data', 'link-13');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">:</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">                <tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt id="link-98" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-98', 'key', 'link-22');">key</a></tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">        <tt class="py-name">binary_block</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">                        <tt class="py-string">"--CIF-BINARY-FORMAT-SECTION--"</tt><tt class="py-op">,</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">                        <tt class="py-string">"Content-Type: application/octet-stream;"</tt><tt class="py-op">,</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">                        <tt class="py-string">'     conversions="x-CBF_BYTE_OFFSET"'</tt><tt class="py-op">,</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">                        <tt class="py-string">'Content-Transfer-Encoding: BINARY'</tt><tt class="py-op">,</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">                        <tt class="py-string">"X-Binary-Size: %d"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-99', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">binary_blob</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">                        <tt class="py-string">"X-Binary-ID: 1"</tt><tt class="py-op">,</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">                        <tt class="py-string">'X-Binary-Element-Type: "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">                        <tt class="py-string">"X-Binary-Element-Byte-Order: LITTLE_ENDIAN"</tt> <tt class="py-op">,</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">                        <tt class="py-string">"Content-MD5: %s"</tt> <tt class="py-op">%</tt> <tt id="link-100" class="py-name"><a title="fabio.compression.md5sum" class="py-name" href="#" onclick="return doclink('link-100', 'md5sum', 'link-5');">md5sum</a></tt><tt class="py-op">(</tt><tt class="py-name">binary_blob</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">                        <tt class="py-string">"X-Binary-Number-of-Elements: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-101', 'dim1', 'link-48');">dim1</a></tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class= [...]
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">                        <tt class="py-string">"X-Binary-Size-Fastest-Dimension: %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-103', 'dim1', 'link-48');">dim1</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">                        <tt class="py-string">"X-Binary-Size-Second-Dimension: %d"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-104', 'dim2', 'link-50');">dim2</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">                        <tt class="py-string">"X-Binary-Size-Padding: %d"</tt> <tt class="py-op">%</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">                        <tt class="py-string">""</tt><tt class="py-op">,</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">                        <tt id="link-105" class="py-name"><a title="fabio.cbfimage.STARTER" class="py-name" href="#" onclick="return doclink('link-105', 'STARTER', 'link-9');">STARTER</a></tt> <tt class="py-op">+</tt> <tt class="py-name">binary_blob</tt><tt class="py-op">,</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">                        <tt class="py-string">""</tt><tt class="py-op">,</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">                        <tt class="py-string">"--CIF-BINARY-FORMAT-SECTION----"</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">                        <tt class="py-op">]</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"_array_data.header_contents"</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-106', 'header', 'link-14');">header</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">            <tt class="py-name">nonCifHeaders</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">            <tt class="py-name">nonCifHeaders</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-107" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-107', 'i', 'link-107');">i</a></tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)< [...]
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-111" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-111', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-112',  [...]
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt id="link-113" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-113', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="fabio.edfimage.edfimage.header_key [...]
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-115', 'header_keys', 'link-24');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-116" class="py-name"><a title="fabio.fabioutils.key" class="py-name" h [...]
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-117" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-117', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-1 [...]
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-119" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-119', 'key', 'link-22');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"_"</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-120" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-120', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class [...]
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt><tt class="py-op">[</tt><tt id="link-124" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-124', 'key', 'link-22');">key</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"> [...]
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt id="link-127" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-127', 'key', 'link-22');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"X-Binary-"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt id="link-128" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-128', 'key', 'link-22');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"Content-"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt id="link-129" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-129', 'key', 'link-22');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"conversions"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt id="link-130" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-130', 'key', 'link-22');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"filename"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt id="link-131" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-131', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-1 [...]
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">                <tt class="py-name">nonCifHeaders</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"%s %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-133" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-133', 'key', 'link-22');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name"> [...]
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-136" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-136', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">nonCifHeaders</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt><tt class="py-op">[</tt><tt class="py-string">"_array_data.header_contents"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"\r\n"</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"# %s"</tt> <tt class="py-op">%</tt> <tt i [...]
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line"> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt><tt class="py-op">[</tt><tt class="py-string">"_array_data.data"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"\r\n"</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">binary_block</tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cif</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name" targets="Method fabio.cbfimage.CIF.saveCIF()=fabio.cbfimage.CIF-class.html#saveCIF"><a title="fabio.cbfimage.CIF.saveCIF" class="py-name" href="#" onclick="return doclink('link-139', 'saveCIF', 'link-139');">saveCIF</a></tt><tt class="py-op">(</tt><tt class="py-name">fname< [...]
+</div></div><a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"> </tt>
+<a name="CIF"></a><div id="CIF-def"><a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-comment"># CIF class</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <a class="py-toggle" href="#" id="CIF-toggle" onclick="return toggle('CIF');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html">CIF</a><tt class="py-op">(</tt><tt class="py-base-class">dict</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CIF-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="CIF-expanded"><a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line"><tt class="py-docstring">    This is the CIF class, it represents the CIF dictionary;</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"><tt class="py-docstring">    and as a a python dictionary thus inherits from the dict built in class.</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">    <tt id="link-140" class="py-name" targets="Variable fabio.cbfimage.CIF.EOL=fabio.cbfimage.CIF-class.html#EOL"><a title="fabio.cbfimage.CIF.EOL" class="py-name" href="#" onclick="return doclink('link-140', 'EOL', 'link-140');">EOL</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"\r"</tt><tt class="py-op">,</tt> <tt class="py-string">"\n"</tt><tt class="py-op">,</tt> <tt class="py-str [...]
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">    <tt id="link-141" class="py-name" targets="Variable fabio.cbfimage.CIF.BLANK=fabio.cbfimage.CIF-class.html#BLANK"><a title="fabio.cbfimage.CIF.BLANK" class="py-name" href="#" onclick="return doclink('link-141', 'BLANK', 'link-141');">BLANK</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">" "</tt><tt class="py-op">,</tt> <tt class="py-string">"\t"</tt><tt class="py-op">]</tt> <tt clas [...]
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">    <tt id="link-143" class="py-name" targets="Variable fabio.cbfimage.CIF.START_COMMENT=fabio.cbfimage.CIF-class.html#START_COMMENT"><a title="fabio.cbfimage.CIF.START_COMMENT" class="py-name" href="#" onclick="return doclink('link-143', 'START_COMMENT', 'link-143');">START_COMMENT</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"\""</tt><tt class="py-op">,</tt> <tt class="py-string">" [...]
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">    <tt id="link-144" class="py-name" targets="Variable fabio.cbfimage.CIF.BINARY_MARKER=fabio.cbfimage.CIF-class.html#BINARY_MARKER"><a title="fabio.cbfimage.CIF.BINARY_MARKER" class="py-name" href="#" onclick="return doclink('link-144', 'BINARY_MARKER', 'link-144');">BINARY_MARKER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"--CIF-BINARY-FORMAT-SECTION--"</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line"> </tt>
+<a name="CIF.__init__"></a><div id="CIF.__init__-def"><a name="L255"></a><tt class="py-lineno">255</tt> <a class="py-toggle" href="#" id="CIF.__init__-toggle" onclick="return toggle('CIF.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_strFilename</tt><tt class="py-op">=</tt><tt class [...]
+</div><div id="CIF.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.__init__-expanded"><a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line"><tt class="py-docstring">        Constructor of the class.</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line"><tt class="py-docstring">        @param _strFilename: the name of the file to open</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"><tt class="py-docstring">        @type  _strFilename: filename (str) or file object</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">        <tt class="py-name">dict</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-145', '__init__', 'link-12');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ordered</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">_strFilename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-comment">#load the file)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="fabio.cbfimage.CIF.loadCIF" class="py-name" href="#" onclick="return doclink('link-146', 'loadCIF', 'link-21');">loadCIF</a></tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"> </tt>
+<a name="CIF.__setitem__"></a><div id="CIF.__setitem__-def"><a name="L267"></a><tt class="py-lineno">267</tt> <a class="py-toggle" href="#" id="CIF.__setitem__-toggle" onclick="return toggle('CIF.__setitem__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">,</tt> [...]
+</div><div id="CIF.__setitem__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.__setitem__-expanded"><a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-147" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-147', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</ [...]
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ordered</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-148" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-148', 'key', 'link-22');">key</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">dict</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Method fabio.cbfimage.CIF.__setitem__()=fabio.cbfimage.CIF-class.html#__setitem__"><a title="fabio.cbfimage.CIF.__setitem__" class="py-name" href="#" onclick="return doclink('link-149', '__setitem__', 'link-149');">__setitem__</a></tt><tt class="py-op">(</tt><tt class="py-name">sel [...]
+</div><a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line"> </tt>
+<a name="CIF.pop"></a><div id="CIF.pop-def"><a name="L272"></a><tt class="py-lineno">272</tt> <a class="py-toggle" href="#" id="CIF.pop-toggle" onclick="return toggle('CIF.pop');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#pop">pop</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CIF.pop-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.pop-expanded"><a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-151" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-151', 'key', 'link-22');">key</a></tt>  <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name"> [...]
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ordered</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-152" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-152', 'key', 'link-22');">key</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">dict</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Method fabio.cbfimage.CIF.pop()=fabio.cbfimage.CIF-class.html#pop"><a title="fabio.cbfimage.CIF.pop" class="py-name" href="#" onclick="return doclink('link-153', 'pop', 'link-153');">pop</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="l [...]
+</div><a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line"> </tt>
+<a name="CIF.popitem"></a><div id="CIF.popitem-def"><a name="L277"></a><tt class="py-lineno">277</tt> <a class="py-toggle" href="#" id="CIF.popitem-toggle" onclick="return toggle('CIF.popitem');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#popitem">popitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CIF.popitem-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.popitem-expanded"><a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-155" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-155', 'key', 'link-22');">key</a></tt>  <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="p [...]
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ordered</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-156" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-156', 'key', 'link-22');">key</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">dict</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Method fabio.cbfimage.CIF.popitem()=fabio.cbfimage.CIF-class.html#popitem"><a title="fabio.cbfimage.CIF.popitem" class="py-name" href="#" onclick="return doclink('link-157', 'popitem', 'link-157');">popitem</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py- [...]
+</div><a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line"> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line"> </tt>
+<a name="CIF.loadCIF"></a><div id="CIF.loadCIF-def"><a name="L283"></a><tt class="py-lineno">283</tt> <a class="py-toggle" href="#" id="CIF.loadCIF-toggle" onclick="return toggle('CIF.loadCIF');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#loadCIF">loadCIF</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_strFilename</tt><tt class="py-op">,</tt> <tt class="py- [...]
+</div><div id="CIF.loadCIF-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.loadCIF-expanded"><a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">        <tt class="py-docstring">"""Load the CIF file and populates the CIF dictionary into the object</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line"><tt class="py-docstring">        @param _strFilename: the name of the file to open</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line"><tt class="py-docstring">        @type  _strFilename: string</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"><tt class="py-docstring">        @param _strFilename: the name of the file to open</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line"><tt class="py-docstring">        @type  _strFilename: string</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"><tt class="py-docstring">        @return: None</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line"> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-159" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-159', 'str', 'link-159');">str</a></tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">                <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"CIF.loadCIF: No such file to open: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">_strFilename</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">        <tt class="py-comment">#elif isinstance(_strFilename, file, bz2.BZ2File, ):</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-string">"read"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dir</tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">            <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">_strFilename</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"CIF.loadCIF: what is %s type %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt  [...]
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">_bKeepComment</tt><tt class="py-op">:</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name" targets="Method fabio.cbfimage.CIF._parseCIF()=fabio.cbfimage.CIF-class.html#_parseCIF"><a title="fabio.cbfimage.CIF._parseCIF" class="py-name" href="#" onclick="return doclink('link-160', '_parseCIF', 'link-160');">_parseCIF</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="l [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-161', 'read', 'link-16');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="fabio.cbfimage.CIF._parseCIF" class="py-name" href="#" onclick="return doclink('link-162', '_parseCIF', 'link-160');">_parseCIF</a></tt><tt class="py-op">(</tt><tt id="link-163" class="py-name"><a title="fabio.cbfimage.CIF" class="py-name" href="#" onclick="return doclink('link-163', 'CIF', 'link-15');">CIF</a> [...]
+</div><a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">    <tt class="py-name">readCIF</tt> <tt class="py-op">=</tt> <tt id="link-165" class="py-name"><a title="fabio.cbfimage.CIF.loadCIF" class="py-name" href="#" onclick="return doclink('link-165', 'loadCIF', 'link-21');">loadCIF</a></tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="CIF.isAscii"></a><div id="CIF.isAscii-def"><a name="L309"></a><tt class="py-lineno">309</tt> <a class="py-toggle" href="#" id="CIF.isAscii-toggle" onclick="return toggle('CIF.isAscii');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#isAscii">isAscii</a><tt class="py-op">(</tt><tt class="py-param">_strIn</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CIF.isAscii-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.isAscii-expanded"><a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line"><tt class="py-docstring">        Check if all characters in a string are ascii,</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line"><tt class="py-docstring">        @param _strIn: input string</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line"><tt class="py-docstring">        @type _strIn: python string</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line"><tt class="py-docstring">        @return: boolean</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: boolean</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">        <tt class="py-name">bIsAcii</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-166" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-166', 'i', 'link-107');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">_strIn</tt><tt class="py-op">:</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt id="link-167" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-167', 'i', 'link-107');">i</a></tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">127</tt><tt class="py-op">:</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">                <tt class="py-name">bIsAcii</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">bIsAcii</tt> </tt>
+</div><a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line"> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line"> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="CIF._readCIF"></a><div id="CIF._readCIF-def"><a name="L327"></a><tt class="py-lineno">327</tt> <a class="py-toggle" href="#" id="CIF._readCIF-toggle" onclick="return toggle('CIF._readCIF');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#_readCIF">_readCIF</a><tt class="py-op">(</tt><tt class="py-param">_instream</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CIF._readCIF-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF._readCIF-expanded"><a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line"><tt class="py-docstring">        - Check if the filename containing the CIF data exists</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"><tt class="py-docstring">        - read the cif file</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"><tt class="py-docstring">        - removes the comments</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line"><tt class="py-docstring">        @param _instream: the file containing the CIF data</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line"><tt class="py-docstring">        @type _instream: open file in read mode</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"><tt class="py-docstring">        @return: a string containing the raw data</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: string</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">"readlines"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dir</tt><tt class="py-op">(</tt><tt class="py-name">_instream</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"CIF._readCIF(instream): I expected instream to be an opened file,\</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"><tt class="py-string">             here I got %s type %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">_instream</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">_instream</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">        <tt class="py-name">lLinesRead</tt> <tt class="py-op">=</tt> <tt class="py-name">_instream</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">        <tt class="py-name">sText</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">sLine</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lLinesRead</tt><tt class="py-op">:</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">            <tt class="py-name">iPos</tt> <tt class="py-op">=</tt> <tt class="py-name">sLine</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"#"</tt><tt class="py-op">)</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">iPos</tt> <tt class="py-op">>=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-168" class="py-name"><a title="fabio.cbfimage.CIF" class="py-name" href="#" onclick="return doclink('link-168', 'CIF', 'link-15');">CIF</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name" targets="Static Method fabio.cbfimage.CIF.isAscii()=fabio.cbfimage.CIF-class.html#isAscii,Function fabio.fabioutils.isAscii()=fabio.fabioutils-module.html#isAs [...]
+fabio.fabioutils.isAscii" class="py-name" href="#" onclick="return doclink('link-169', 'isAscii', 'link-169');">isAscii</a></tt><tt class="py-op">(</tt><tt class="py-name">sLine</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">                    <tt class="py-name">sText</tt> <tt class="py-op">+=</tt> <tt class="py-name">sLine</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">iPos</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">linesep</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">iPos</tt> <tt class="py-op">></tt> <tt class="py-number">80</tt> <tt class="py-op">:</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">                    <tt id="link-170" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-170', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"This line is too long and could cause problems in PreQuest: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">sLine</tt><tt class="py-op">)</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt> <tt class="py-op">:</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">                <tt class="py-name">sText</tt> <tt class="py-op">+=</tt> <tt class="py-name">sLine</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-171" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-171', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sLine</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&gt [...]
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line">                    <tt id="link-172" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-172', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"This line is too long and could cause problems in PreQues: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">sLine</tt><tt class="py-op">)</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">sText</tt> </tt>
+</div><a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line"> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line"> </tt>
+<a name="CIF._parseCIF"></a><div id="CIF._parseCIF-def"><a name="L358"></a><tt class="py-lineno">358</tt> <a class="py-toggle" href="#" id="CIF._parseCIF-toggle" onclick="return toggle('CIF._parseCIF');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#_parseCIF">_parseCIF</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sText</tt><tt class="py-op">)</tt><tt class= [...]
+</div><div id="CIF._parseCIF-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF._parseCIF-expanded"><a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line"><tt class="py-docstring">        - Parses the text of a CIF file</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line"><tt class="py-docstring">        - Cut it in fields</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line"><tt class="py-docstring">        - Find all the loops and process</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line"><tt class="py-docstring">        - Find all the keys and values</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line"><tt class="py-docstring">        @param sText: the content of the CIF - file</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line"><tt class="py-docstring">        @type sText: string</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line"><tt class="py-docstring">        @return: Nothing, the data are incorporated at the CIF object dictionary</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: None</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">        <tt class="py-name">loopidx</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">        <tt class="py-name">looplen</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">        <tt class="py-name">loop</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">        <tt class="py-comment">#first of all : separate the cif file in fields</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">        <tt class="py-name">lFields</tt> <tt class="py-op">=</tt> <tt id="link-173" class="py-name"><a title="fabio.cbfimage.CIF" class="py-name" href="#" onclick="return doclink('link-173', 'CIF', 'link-15');">CIF</a></tt><tt class="py-op">.</tt><tt id="link-174" class="py-name" targets="Static Method fabio.cbfimage.CIF._splitCIF()=fabio.cbfimage.CIF-class.html#_splitCIF"><a title="fabio.cbfimage.CIF._splitCIF" class [...]
+<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">        <tt class="py-comment">#Then : look for loops</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-175" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-175', 'i', 'link-107');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt id="link-176" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-176', ' [...]
+<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-177" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-177', 'i', 'link-107');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-s [...]
+<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">                <tt class="py-name">loopidx</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-178" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-178', 'i', 'link-107');">i</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-179" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-179', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">loopidx</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-180" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-180', 'i', 'link-107');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">loopidx</tt><tt class="py-op">:</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">                <tt class="py-name">loopone</tt><tt class="py-op">,</tt> <tt class="py-name">length</tt><tt class="py-op">,</tt> <tt class="py-name">keys</tt> <tt class="py-op">=</tt> <tt id="link-181" class="py-name"><a title="fabio.cbfimage.CIF" class="py-name" href="#" onclick="return doclink('link-181', 'CIF', 'link-15');">CIF</a></tt><tt class="py-op">.</tt><tt id="link-182" class="py-name" targets="Static Method [...]
+<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line">                <tt class="py-name">loop</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">keys</tt><tt class="py-op">,</tt> <tt class="py-name">loopone</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">                <tt class="py-name">looplen</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line"> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line"> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-184" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-184', 'i', 'link-107');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt id="link-185" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-185 [...]
+<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">                <tt class="py-name">f1</tt> <tt class="py-op">=</tt> <tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">loopidx</tt><tt class="py-op">[</tt><tt id="link-186" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-186', 'i', 'link-107');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py [...]
+<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">                <tt class="py-name">lFields</tt> <tt class="py-op">=</tt> <tt class="py-name">f1</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line"> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">"loop_"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">loop</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line"> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-189" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-189', 'i', 'link-107');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt id="link-190" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-190', ' [...]
+<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">    <tt class="py-comment">#        print lFields[i], lFields[i+1]</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-191" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-191', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-192" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-192', ' [...]
+<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-194" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-194', 'i', 'link-107');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"_"</tt> <tt class= [...]
+<a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-196" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-196', 'i', 'link-107');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link [...]
+</div><a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line"> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="CIF._splitCIF"></a><div id="CIF._splitCIF-def"><a name="L399"></a><tt class="py-lineno">399</tt> <a class="py-toggle" href="#" id="CIF._splitCIF-toggle" onclick="return toggle('CIF._splitCIF');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#_splitCIF">_splitCIF</a><tt class="py-op">(</tt><tt class="py-param">sText</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CIF._splitCIF-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF._splitCIF-expanded"><a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line"><tt class="py-docstring">        Separate the text in fields as defined in the CIF</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line"><tt class="py-docstring">        @param sText: the content of the CIF - file</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line"><tt class="py-docstring">        @type sText: string</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line"><tt class="py-docstring">        @return: list of all the fields of the CIF</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: list</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line">        <tt class="py-name">lFields</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-198" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-198', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sText</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"'"</tt><tt class="py-op">:</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt>  <tt class="py-line">                <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line">                <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt>  <tt class="py-line">                <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt>  <tt class="py-name">bFinished</tt><tt class="py-op">:</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line">                    <tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> <tt class="py-op">+</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"'"</tt>< [...]
+<a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line">    <tt class="py-comment">##########debuging    in case we arrive at the end of the text</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">idx</tt> <tt class="py-op">>=</tt> <tt id="link-199" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-199', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sText</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt clas [...]
+<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line">    <tt class="py-comment">#                    print sText,idx,len(sText)</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">                        <tt class="py-name">lFields</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><t [...]
+<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line">                        <tt class="py-name">sText</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line">                        <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line">                        <tt class="py-keyword">break</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line"> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt id="link-200" class="py-name"><a title="fabio.cbfimage.CIF" class="py-name" href="#" onclick="return doclink('link-200', 'CIF', 'link-15');">CIF</a></tt><tt class="py-op">.</ [...]
+<a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">                        <tt class="py-name">lFields</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line">                        <tt class="py-name">sText1</tt> <tt class="py-op">=</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line">                        <tt class="py-name">sText</tt> <tt class="py-op">=</tt> <tt class="py-name">sText1</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line">                        <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line"> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'"'</tt><tt class="py-op">:</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line">                <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line">                <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt>  <tt class="py-line">                <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt>  <tt class="py-name">bFinished</tt><tt class="py-op">:</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt>  <tt class="py-line">                    <tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> <tt class="py-op">+</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'"'</tt>< [...]
+<a name="L436"></a><tt class="py-lineno">436</tt>  <tt class="py-line">    <tt class="py-comment">##########debuging    in case we arrive at the end of the text</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">idx</tt> <tt class="py-op">>=</tt> <tt id="link-202" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-202', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sText</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt clas [...]
+<a name="L438"></a><tt class="py-lineno">438</tt>  <tt class="py-line">    <tt class="py-comment">#                    print sText,idx,len(sText)</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt>  <tt class="py-line">                        <tt class="py-name">lFields</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><t [...]
+<a name="L440"></a><tt class="py-lineno">440</tt>  <tt class="py-line"><tt class="py-comment">#                        print lFields[-1]</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt>  <tt class="py-line">                        <tt class="py-name">sText</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line">                        <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt>  <tt class="py-line">                        <tt class="py-keyword">break</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt>  <tt class="py-line"> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt id="link-203" class="py-name"><a title="fabio.cbfimage.CIF" class="py-name" href="#" onclick="return doclink('link-203', 'CIF', 'link-15');">CIF</a></tt><tt class="py-op">.</ [...]
+<a name="L446"></a><tt class="py-lineno">446</tt>  <tt class="py-line">                        <tt class="py-name">lFields</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt>  <tt class="py-line"><tt class="py-comment">#                        print lFields[-1]</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt>  <tt class="py-line">                        <tt class="py-name">sText1</tt> <tt class="py-op">=</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt>  <tt class="py-line">                        <tt class="py-name">sText</tt> <tt class="py-op">=</tt> <tt class="py-name">sText1</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line">                        <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">';'</tt><tt class="py-op">:</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt id="link-205" class="py-name"><a title="fabio.cbfimage.CIF" c [...]
+<a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line">                    <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">32</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt id="link-207" class="py-name"><a title="fabio.cbfimage.CIF" class="py-name" href="#" onclick="return doclink('link-207', 'CIF', 'link-1 [...]
+<a name="L454"></a><tt class="py-lineno">454</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">idx</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line">                        <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line">                        <tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-number">32</tt> <tt class="py-op">+</tt> <tt id="link-209" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-209', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt id="link-210" class="py-name"><a title="fabio.cbfimage.CIF" class="py-name" href="#" on [...]
+<a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt>  <tt class="py-line">                    <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line">                <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line">                <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt>  <tt class="py-name">bFinished</tt><tt class="py-op">:</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line">                    <tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> <tt class="py-op">+</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">';'</tt>< [...]
+<a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt id="link-212" class="py-name"><a title="fabio.cbfimage.CIF" class="py-name" href="#" onclick="return doclink('link-212', 'CIF', 'link-15');">CIF</a></tt><tt class="py-op">.</ [...]
+<a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line">                        <tt class="py-name">lFields</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-name">idx</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(< [...]
+<a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line">                        <tt class="py-name">sText1</tt> <tt class="py-op">=</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt>  <tt class="py-line">                        <tt class="py-name">sText</tt> <tt class="py-op">=</tt> <tt class="py-name">sText1</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line">                        <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line">                <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">sText</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line">                <tt class="py-name">lFields</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt>  <tt class="py-line"><tt class="py-comment">#                print lFields[-1]</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line">                <tt class="py-name">sText1</tt> <tt class="py-op">=</tt> <tt class="py-name">sText</tt><tt class="py-op">[</tt><tt id="link-214" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-214', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> [...]
+<a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line">                <tt class="py-name">sText</tt> <tt class="py-op">=</tt> <tt class="py-name">sText1</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">lFields</tt> </tt>
+</div><a name="L475"></a><tt class="py-lineno">475</tt>  <tt class="py-line"> </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line"> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="CIF._analyseOneLoop"></a><div id="CIF._analyseOneLoop-def"><a name="L478"></a><tt class="py-lineno">478</tt> <a class="py-toggle" href="#" id="CIF._analyseOneLoop-toggle" onclick="return toggle('CIF._analyseOneLoop');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#_analyseOneLoop">_analyseOneLoop</a><tt class="py-op">(</tt><tt class="py-param">lFields</tt><tt class="py-op">,</tt> <tt class="py-param">iStar [...]
+</div><div id="CIF._analyseOneLoop-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF._analyseOneLoop-expanded"><a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line">        <tt class="py-docstring">"""Processes one loop in the data extraction of the CIF file</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line"><tt class="py-docstring">        @param lFields: list of all the words contained in the cif file</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line"><tt class="py-docstring">        @type lFields: list</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line"><tt class="py-docstring">        @param iStart: the starting index corresponding to the "loop_" key</tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt>  <tt class="py-line"><tt class="py-docstring">        @type iStart: integer</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line"><tt class="py-docstring">        @return: the list of loop dictionaries, the length of the data</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line"><tt class="py-docstring">            extracted from the lFields and the list of all the keys of the loop.</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: tuple</tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line">    <tt class="py-comment">#    in earch loop we first search the length of the loop</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line">    <tt class="py-comment">#    print lFields</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line"><tt class="py-comment">#        curloop = {}</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line">        <tt class="py-name">loop</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line">        <tt class="py-name">keys</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line">        <tt id="link-215" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-215', 'i', 'link-107');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iStart</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line">        <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt> <tt class="py-name">bFinished</tt><tt class="py-op">:</tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-216" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-216', 'i', 'link-107');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"_"</tt><tt class=" [...]
+<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line">                <tt class="py-name">keys</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-217" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-217', 'i', 'link-107');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-comment">#.lower())</tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line">                <tt id="link-218" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-218', 'i', 'link-107');">i</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line">                <tt class="py-name">bFinished</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line">        <tt id="link-219" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-219', 'data', 'link-13');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-220" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-220', 'i', 'link-107');">i</a></tt> <tt class="py-op">>=</tt> <tt id="link-221" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-221', 'len', 'link-31');">len</a></tt><tt class="py-op">(</t [...]
+<a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt id="link-222" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-222', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-223" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-223', [...]
+<a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-224" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-224', 'i', 'link-107');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"_"</tt><tt class [...]
+<a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L509"></a><tt class="py-lineno">509</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-225" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-225', 'i', 'link-107');">i</a></tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">"loop_"</tt><tt class="py-op">,</tt> <tt class="py-string">"stop [...]
+<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line">                <tt id="link-226" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-226', 'data', 'link-13');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">lFields</tt><tt class="py-op">[</tt><tt id="link-227" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-227', 'i', 'link-107');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line">                <tt id="link-228" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-228', 'i', 'link-107');">i</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line">        <tt class="py-comment">#print len(keys), len(data)</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line">        <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line"> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-229" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-229', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt id="link-230" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-230', 'data', 'link-13');">data</a></tt><tt class="py-op">)</tt> <tt class="py-op"><</tt> <tt id="link-231" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-231', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">keys</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line">            <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">keys</tt><tt class="py-op">:</tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-op"><</tt> <tt id="link-232" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-232', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt id="link-233" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-233', 'data', 'link-13');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line">                    <tt class="py-name">element</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-234" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-234', 'data', 'link-13');">data</a></tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt> <tt class="py-op">:</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line">                    <tt class="py-name">element</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"?"</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line">                <tt class="py-name">k</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line">            <tt class="py-comment">#print element</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line">            <tt class="py-name">loop</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line"> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line">            <tt class="py-comment">#print data</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line">            <tt class="py-comment">#print keys</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-235" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-235', 'i', 'link-107');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt id="link-236" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-236 [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-237', 'data', 'link-13');">data</a></tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt id="link-238" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-238', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">keys</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line">                <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">keys</tt><tt class="py-op">:</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line">                    <tt class="py-name">element</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-239" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-239', 'data', 'link-13');">data</a></tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line">                    <tt class="py-name">k</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line">    <tt class="py-comment">#            print element</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line">                <tt class="py-name">loop</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line">    <tt class="py-comment">#    print loop</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">loop</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt> <tt class="py-op">+</tt> <tt id="link-240" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-240', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">keys</tt><tt class="py-op">)</tt> <tt class="py-op">+< [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-242', 'data', 'link-13');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">keys</tt> </tt>
+</div><a name="L540"></a><tt class="py-lineno">540</tt>  <tt class="py-line"> </tt>
+<a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line"> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt>  <tt class="py-line"> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt>  <tt class="py-line"> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line"> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line"> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt>  <tt class="py-line"><tt class="py-comment">#############################################################################################</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line"><tt class="py-comment">########     everything needed to  write a cif file #########################################</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line"><tt class="py-comment">#############################################################################################</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line"> </tt>
+<a name="CIF.saveCIF"></a><div id="CIF.saveCIF-def"><a name="L550"></a><tt class="py-lineno">550</tt> <a class="py-toggle" href="#" id="CIF.saveCIF-toggle" onclick="return toggle('CIF.saveCIF');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#saveCIF">saveCIF</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_strFilename</tt><tt class="py-op">=</tt><tt class="py-s [...]
+</div><div id="CIF.saveCIF-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.saveCIF-expanded"><a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line">        <tt class="py-docstring">"""Transforms the CIF object in string then write it into the given file</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line"><tt class="py-docstring">        @param _strFilename: the of the file to be written</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line"><tt class="py-docstring">        @param linesep: line separation used (to force compatibility with windows/unix)</tt> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line"><tt class="py-docstring">        @param binary: Shall we write the data as binary (True only for imageCIF/CBF)</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line"><tt class="py-docstring">        @type param: string</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L557"></a><tt class="py-lineno">557</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">binary</tt><tt class="py-op">:</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line">            <tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-string">"wb"</tt> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt>  <tt class="py-line">            <tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-string">"w"</tt> </tt>
+<a name="L561"></a><tt class="py-lineno">561</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt>  <tt class="py-line">            <tt class="py-name">fFile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Error during the opening of file for write: %s"</tt> <tt class="py-op">%</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt>  <tt class="py-line">                                                            <tt class="py-name">_strFilename</tt><tt class="py-op">)</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt>  <tt class="py-line">        <tt class="py-name">fFile</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name" targets="Method fabio.GEimage.GEimage.write()=fabio.GEimage.GEimage-class.html#write,Method fabio.OXDimage.OXDimage.write()=fabio.OXDimage.OXDimage-class.html#write,Method fabio.adscimage.adscimage.write()=fabio.adscimage.adscimage-class.html#write,Method fabio.binaryimage.binaryimage.write()=fabio.binaryimage.binaryimage-c [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-243', 'write', 'link-243');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-244', 'tostring', 'link-58');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">,</tt> <tt class="py-name">linesep</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt>  <tt class="py-line">            <tt class="py-name">fFile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Error during the closing of file for write: %s"</tt> <tt class="py-op">%</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt>  <tt class="py-line">                                                             <tt class="py-name">_strFilename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L573"></a><tt class="py-lineno">573</tt>  <tt class="py-line"> </tt>
+<a name="L574"></a><tt class="py-lineno">574</tt>  <tt class="py-line"> </tt>
+<a name="CIF.tostring"></a><div id="CIF.tostring-def"><a name="L575"></a><tt class="py-lineno">575</tt> <a class="py-toggle" href="#" id="CIF.tostring-toggle" onclick="return toggle('CIF.tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#tostring">tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_strFilename</tt><tt class="py-op">=</tt><tt class [...]
+</div><div id="CIF.tostring-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.tostring-expanded"><a name="L576"></a><tt class="py-lineno">576</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt>  <tt class="py-line"><tt class="py-docstring">        Converts a cif dictionnary to a string according to the CIF syntax</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt>  <tt class="py-line"><tt class="py-docstring">        @param _strFilename: the name of the filename to be appended in the header of the CIF file</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt>  <tt class="py-line"><tt class="py-docstring">        @type _strFilename: string</tt> </tt>
+<a name="L581"></a><tt class="py-lineno">581</tt>  <tt class="py-line"><tt class="py-docstring">        @return: a sting that corresponds to the content of the CIF - file.</tt> </tt>
+<a name="L582"></a><tt class="py-lineno">582</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L583"></a><tt class="py-lineno">583</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt>  <tt class="py-line"><tt class="py-comment">#        sCifText = ""</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt>  <tt class="py-line">        <tt class="py-name">lstStrCif</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"# "</tt> <tt class="py-op">+</tt> <tt id="link-245" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-245', 'i', 'link-107');">i</a></tt> <tt class="py-keyword">for</tt> <tt id="link-246" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href= [...]
+<a name="L586"></a><tt class="py-lineno">586</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"_chemical_name_common"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt>  <tt class="py-line">            <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">"_chemical_name_common"</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">_strFilename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt>  <tt class="py-line">            <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">splitext</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt id="link-247" class="py-name"><a t [...]
+str" class="py-name" href="#" onclick="return doclink('link-247', 'str', 'link-159');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt>  <tt class="py-line">            <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L592"></a><tt class="py-lineno">592</tt>  <tt class="py-line">        <tt class="py-name">lstStrCif</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"data_%s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L593"></a><tt class="py-lineno">593</tt>  <tt class="py-line">        <tt class="py-comment">#first of all get all the keys :</tt> </tt>
+<a name="L594"></a><tt class="py-lineno">594</tt>  <tt class="py-line">        <tt class="py-name">lKeys</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L595"></a><tt class="py-lineno">595</tt>  <tt class="py-line">        <tt class="py-name">lKeys</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-248" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-248', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">lKeys</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L597"></a><tt class="py-lineno">597</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-249" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-249', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ordered</tt><tt class="py-op">:</tt> </tt>
+<a name="L598"></a><tt class="py-lineno">598</tt>  <tt class="py-line">                <tt class="py-name">lKeys</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-250" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-250', 'key', 'link-22');">key</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L599"></a><tt class="py-lineno">599</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ordered</tt> <tt class="py-op">+=</tt> <tt class="py-name">lKeys</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt>  <tt class="py-line"> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">sKey</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ordered</tt><tt class="py-op">:</tt> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">sKey</tt> <tt class="py-op">==</tt> <tt class="py-string">"loop_"</tt><tt class="py-op">:</tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L604"></a><tt class="py-lineno">604</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">sKey</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ordered</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">sKey</tt><tt class="py-op">)</tt> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt>  <tt class="py-line">                <tt id="link-251" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-251', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Skipping key %s from ordered list as no more present in dict"</tt><tt class="py-op">)</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt>  <tt class="py-line">            <tt class="py-name">sValue</tt> <tt class="py-op">=</tt> <tt id="link-252" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-252', 'str', 'link-159');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">sKey</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L609"></a><tt class="py-lineno">609</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">sValue</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> <tt class="py-comment">#should add value  between ;;</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt>  <tt class="py-line">                <tt class="py-name">lLine</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">sKey</tt><tt class="py-op">,</tt> <tt class="py-string">";"</tt><tt class="py-op">,</tt> <tt class="py-name">sValue</tt><tt class="py-op">,</tt> <tt class="py-string">";"</tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">]</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt id="link-253" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-253', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sValue</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">> [...]
+<a name="L612"></a><tt class="py-lineno">612</tt>  <tt class="py-line">                <tt class="py-name">sLine</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s        '%s'"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">sKey</tt><tt class="py-op">,</tt> <tt class="py-name">sValue</tt><tt class="py-op">)</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-254" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-254', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sLine</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">80</tt><tt class="py-op">:</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt>  <tt class="py-line">                    <tt class="py-name">lLine</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-255" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-255', 'str', 'link-159');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sKey</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">sValue</tt><tt class="py-op">]</tt> </tt>
+<a name="L615"></a><tt class="py-lineno">615</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt>  <tt class="py-line">                    <tt class="py-name">lLine</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">sLine</tt><tt class="py-op">]</tt> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt>  <tt class="py-line">                <tt class="py-name">sLine</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s        %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">sKey</tt><tt class="py-op">,</tt> <tt class="py-name">sValue</tt><tt class="py-op">)</tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-256" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-256', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sLine</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">80</tt><tt class="py-op">:</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt>  <tt class="py-line">                    <tt class="py-name">lLine</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-257" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-257', 'str', 'link-159');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sKey</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">sValue</tt><tt class="py-op">]</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt>  <tt class="py-line">                    <tt class="py-name">lLine</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">sLine</tt><tt class="py-op">]</tt> </tt>
+<a name="L623"></a><tt class="py-lineno">623</tt>  <tt class="py-line">            <tt class="py-name">lstStrCif</tt> <tt class="py-op">+=</tt> <tt class="py-name">lLine</tt> </tt>
+<a name="L624"></a><tt class="py-lineno">624</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">"loop_"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L625"></a><tt class="py-lineno">625</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">loop</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">"loop_"</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L626"></a><tt class="py-lineno">626</tt>  <tt class="py-line">                <tt class="py-name">lstStrCif</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"loop_ "</tt><tt class="py-op">)</tt> </tt>
+<a name="L627"></a><tt class="py-lineno">627</tt>  <tt class="py-line">                <tt class="py-name">lKeys</tt> <tt class="py-op">=</tt> <tt class="py-name">loop</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt>  <tt class="py-line">                <tt class="py-name">llData</tt> <tt class="py-op">=</tt> <tt class="py-name">loop</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt>  <tt class="py-line">                <tt class="py-name">lstStrCif</tt> <tt class="py-op">+=</tt> <tt class="py-op">[</tt><tt class="py-string">" %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">sKey</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">sKey</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lKeys</tt><tt class="py-op">]</tt> </tt>
+<a name="L630"></a><tt class="py-lineno">630</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">lData</tt> <tt class="py-keyword">in</tt> <tt class="py-name">llData</tt><tt class="py-op">:</tt> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt>  <tt class="py-line">                    <tt class="py-name">sLine</tt> <tt class="py-op">=</tt> <tt class="py-string">" "</tt> </tt>
+<a name="L632"></a><tt class="py-lineno">632</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt id="link-258" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-258', 'key', 'link-22');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">lKeys</tt><tt class="py-op">:</tt> </tt>
+<a name="L633"></a><tt class="py-lineno">633</tt>  <tt class="py-line">                        <tt class="py-name">sRawValue</tt> <tt class="py-op">=</tt> <tt class="py-name">lData</tt><tt class="py-op">[</tt><tt id="link-259" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-259', 'key', 'link-22');">key</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L634"></a><tt class="py-lineno">634</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">sRawValue</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> <tt class="py-comment">#should add value  between ;;</tt> </tt>
+<a name="L635"></a><tt class="py-lineno">635</tt>  <tt class="py-line">                            <tt class="py-name">lstStrCif</tt> <tt class="py-op">+=</tt> <tt class="py-op">[</tt><tt class="py-name">sLine</tt><tt class="py-op">,</tt> <tt class="py-string">";"</tt><tt class="py-op">,</tt> <tt id="link-260" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-260', 'str', 'link-159');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sRawValue</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">";"</tt><tt class="py-op">]</tt> </tt>
+<a name="L636"></a><tt class="py-lineno">636</tt>  <tt class="py-line">                            <tt class="py-name">sLine</tt> <tt class="py-op">=</tt> <tt class="py-string">" "</tt> </tt>
+<a name="L637"></a><tt class="py-lineno">637</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt>  <tt class="py-line">                            <tt class="py-keyword">if</tt> <tt id="link-261" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-261', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sRawValue</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt c [...]
+<a name="L639"></a><tt class="py-lineno">639</tt>  <tt class="py-line">                                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-string">"'%s'"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">sRawValue</tt><tt class="py-op">)</tt> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt>  <tt class="py-line">                            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L641"></a><tt class="py-lineno">641</tt>  <tt class="py-line">                                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-262" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-262', 'str', 'link-159');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sRawValue</tt><tt class="py-op">)</tt> </tt>
+<a name="L642"></a><tt class="py-lineno">642</tt>  <tt class="py-line">                            <tt class="py-keyword">if</tt> <tt id="link-263" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-263', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">sLine</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-264" class="py-name"><a title="fabio.file_series.file_series.len" class=" [...]
+<a name="L643"></a><tt class="py-lineno">643</tt>  <tt class="py-line">                                <tt class="py-name">lstStrCif</tt> <tt class="py-op">+=</tt> <tt class="py-op">[</tt><tt class="py-name">sLine</tt><tt class="py-op">]</tt> </tt>
+<a name="L644"></a><tt class="py-lineno">644</tt>  <tt class="py-line">                                <tt class="py-name">sLine</tt> <tt class="py-op">=</tt> <tt class="py-string">" "</tt> <tt class="py-op">+</tt> <tt class="py-name">value</tt> </tt>
+<a name="L645"></a><tt class="py-lineno">645</tt>  <tt class="py-line">                            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L646"></a><tt class="py-lineno">646</tt>  <tt class="py-line">                                <tt class="py-name">sLine</tt> <tt class="py-op">+=</tt> <tt class="py-string">" "</tt> <tt class="py-op">+</tt> <tt class="py-name">value</tt> </tt>
+<a name="L647"></a><tt class="py-lineno">647</tt>  <tt class="py-line">                    <tt class="py-name">lstStrCif</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">sLine</tt><tt class="py-op">)</tt> </tt>
+<a name="L648"></a><tt class="py-lineno">648</tt>  <tt class="py-line">                <tt class="py-name">lstStrCif</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
+<a name="L649"></a><tt class="py-lineno">649</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">linesep</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">lstStrCif</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L650"></a><tt class="py-lineno">650</tt>  <tt class="py-line"> </tt>
+<a name="L651"></a><tt class="py-lineno">651</tt>  <tt class="py-line"> </tt>
+<a name="CIF.exists"></a><div id="CIF.exists-def"><a name="L652"></a><tt class="py-lineno">652</tt> <a class="py-toggle" href="#" id="CIF.exists-toggle" onclick="return toggle('CIF.exists');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#exists">exists</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sKey</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CIF.exists-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.exists-expanded"><a name="L653"></a><tt class="py-lineno">653</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L654"></a><tt class="py-lineno">654</tt>  <tt class="py-line"><tt class="py-docstring">        Check if the key exists in the CIF and is non empty.</tt> </tt>
+<a name="L655"></a><tt class="py-lineno">655</tt>  <tt class="py-line"><tt class="py-docstring">        @param sKey: CIF key</tt> </tt>
+<a name="L656"></a><tt class="py-lineno">656</tt>  <tt class="py-line"><tt class="py-docstring">        @type sKey: string</tt> </tt>
+<a name="L657"></a><tt class="py-lineno">657</tt>  <tt class="py-line"><tt class="py-docstring">        @param cif: CIF dictionary</tt> </tt>
+<a name="L658"></a><tt class="py-lineno">658</tt>  <tt class="py-line"><tt class="py-docstring">        @return: True if the key exists in the CIF dictionary and is non empty</tt> </tt>
+<a name="L659"></a><tt class="py-lineno">659</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: boolean</tt> </tt>
+<a name="L660"></a><tt class="py-lineno">660</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt>  <tt class="py-line">        <tt class="py-name">bExists</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L662"></a><tt class="py-lineno">662</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-name">sKey</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L663"></a><tt class="py-lineno">663</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-265" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-265', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">sKey</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">>=</tt> <tt class="py-number"> [...]
+<a name="L664"></a><tt class="py-lineno">664</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">sKey</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">"?"</tt><tt class="py-op">,</tt> <tt class="py-string">"."</tt><tt class="py-op">] [...]
+<a name="L665"></a><tt class="py-lineno">665</tt>  <tt class="py-line">                    <tt class="py-name">bExists</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L666"></a><tt class="py-lineno">666</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">bExists</tt> </tt>
+</div><a name="L667"></a><tt class="py-lineno">667</tt>  <tt class="py-line"> </tt>
+<a name="L668"></a><tt class="py-lineno">668</tt>  <tt class="py-line"> </tt>
+<a name="CIF.existsInLoop"></a><div id="CIF.existsInLoop-def"><a name="L669"></a><tt class="py-lineno">669</tt> <a class="py-toggle" href="#" id="CIF.existsInLoop-toggle" onclick="return toggle('CIF.existsInLoop');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#existsInLoop">existsInLoop</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sKey</tt><tt class="py-op" [...]
+</div><div id="CIF.existsInLoop-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.existsInLoop-expanded"><a name="L670"></a><tt class="py-lineno">670</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L671"></a><tt class="py-lineno">671</tt>  <tt class="py-line"><tt class="py-docstring">        Check if the key exists in the CIF dictionary.</tt> </tt>
+<a name="L672"></a><tt class="py-lineno">672</tt>  <tt class="py-line"><tt class="py-docstring">        @param sKey: CIF key</tt> </tt>
+<a name="L673"></a><tt class="py-lineno">673</tt>  <tt class="py-line"><tt class="py-docstring">        @type sKey: string</tt> </tt>
+<a name="L674"></a><tt class="py-lineno">674</tt>  <tt class="py-line"><tt class="py-docstring">        @param cif: CIF dictionary</tt> </tt>
+<a name="L675"></a><tt class="py-lineno">675</tt>  <tt class="py-line"><tt class="py-docstring">        @return: True if the key exists in the CIF dictionary and is non empty</tt> </tt>
+<a name="L676"></a><tt class="py-lineno">676</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: boolean</tt> </tt>
+<a name="L677"></a><tt class="py-lineno">677</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L678"></a><tt class="py-lineno">678</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-266" class="py-name" targets="Method fabio.cbfimage.CIF.exists()=fabio.cbfimage.CIF-class.html#exists"><a title="fabio.cbfimage.CIF.exists" class="py-name" href="#" onclick="return doclink('link-266', 'exists', 'link-266');">exists</a></tt><tt class="py-op">(</tt><tt class="py-string [...]
+<a name="L679"></a><tt class="py-lineno">679</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L680"></a><tt class="py-lineno">680</tt>  <tt class="py-line">        <tt class="py-name">bExists</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L681"></a><tt class="py-lineno">681</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">bExists</tt><tt class="py-op">:</tt> </tt>
+<a name="L682"></a><tt class="py-lineno">682</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-267" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-267', 'i', 'link-107');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">"loop_"</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L683"></a><tt class="py-lineno">683</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt id="link-268" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-268', 'i', 'link-107');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L684"></a><tt class="py-lineno">684</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">j</tt> <tt class="py-op">==</tt> <tt class="py-name">sKey</tt><tt class="py-op">:</tt> </tt>
+<a name="L685"></a><tt class="py-lineno">685</tt>  <tt class="py-line">                        <tt class="py-name">bExists</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L686"></a><tt class="py-lineno">686</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">bExists</tt> </tt>
+</div><a name="L687"></a><tt class="py-lineno">687</tt>  <tt class="py-line"> </tt>
+<a name="L688"></a><tt class="py-lineno">688</tt>  <tt class="py-line"> </tt>
+<a name="CIF.loadCHIPLOT"></a><div id="CIF.loadCHIPLOT-def"><a name="L689"></a><tt class="py-lineno">689</tt> <a class="py-toggle" href="#" id="CIF.loadCHIPLOT-toggle" onclick="return toggle('CIF.loadCHIPLOT');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#loadCHIPLOT">loadCHIPLOT</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_strFilename</tt><tt class="py-o [...]
+</div><div id="CIF.loadCHIPLOT-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.loadCHIPLOT-expanded"><a name="L690"></a><tt class="py-lineno">690</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L691"></a><tt class="py-lineno">691</tt>  <tt class="py-line"><tt class="py-docstring">        Load the powder diffraction CHIPLOT file and returns the</tt> </tt>
+<a name="L692"></a><tt class="py-lineno">692</tt>  <tt class="py-line"><tt class="py-docstring">        pd_CIF dictionary in the object</tt> </tt>
+<a name="L693"></a><tt class="py-lineno">693</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L694"></a><tt class="py-lineno">694</tt>  <tt class="py-line"><tt class="py-docstring">        @param _strFilename: the name of the file to open</tt> </tt>
+<a name="L695"></a><tt class="py-lineno">695</tt>  <tt class="py-line"><tt class="py-docstring">        @type  _strFilename: string</tt> </tt>
+<a name="L696"></a><tt class="py-lineno">696</tt>  <tt class="py-line"><tt class="py-docstring">        @return: the CIF object corresponding to the powder diffraction</tt> </tt>
+<a name="L697"></a><tt class="py-lineno">697</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: dictionary</tt> </tt>
+<a name="L698"></a><tt class="py-lineno">698</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L699"></a><tt class="py-lineno">699</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">"I cannot find the file %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">_strFilename</tt> </tt>
+<a name="L701"></a><tt class="py-lineno">701</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> </tt>
+<a name="L702"></a><tt class="py-lineno">702</tt>  <tt class="py-line">        <tt class="py-name">lInFile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">_strFilename</tt><tt class="py-op">,</tt> <tt class="py-string">"r"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L703"></a><tt class="py-lineno">703</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">"_audit_creation_method"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'From 2-D detector using FIT2D and CIFfile'</tt> </tt>
+<a name="L704"></a><tt class="py-lineno">704</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">"_pd_meas_scan_method"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"fixed"</tt> </tt>
+<a name="L705"></a><tt class="py-lineno">705</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">"_pd_spec_description"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">lInFile</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L706"></a><tt class="py-lineno">706</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L707"></a><tt class="py-lineno">707</tt>  <tt class="py-line">            <tt class="py-name">iLenData</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">lInFile</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L708"></a><tt class="py-lineno">708</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L709"></a><tt class="py-lineno">709</tt>  <tt class="py-line">            <tt class="py-name">iLenData</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L710"></a><tt class="py-lineno">710</tt>  <tt class="py-line">        <tt class="py-name">lOneLoop</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L711"></a><tt class="py-lineno">711</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L712"></a><tt class="py-lineno">712</tt>  <tt class="py-line">            <tt class="py-name">f2ThetaMin</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">lInFile</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt clas [...]
+<a name="L713"></a><tt class="py-lineno">713</tt>  <tt class="py-line">            <tt id="link-269" class="py-name" targets="Method fabio.file_series.file_series.last()=fabio.file_series.file_series-class.html#last"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick="return doclink('link-269', 'last', 'link-269');">last</a></tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L714"></a><tt class="py-lineno">714</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">sLine</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lInFile</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">20</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L715"></a><tt class="py-lineno">715</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sLine</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">""</tt><tt class="py-op">:</tt> </tt>
+<a name="L716"></a><tt class="py-lineno">716</tt>  <tt class="py-line">                    <tt id="link-270" class="py-name"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick="return doclink('link-270', 'last', 'link-269');">last</a></tt> <tt class="py-op">=</tt> <tt class="py-name">sLine</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L717"></a><tt class="py-lineno">717</tt>  <tt class="py-line">            <tt class="py-name">f2ThetaMax</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt id="link-271" class="py-name"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick="return doclink('link-271', 'last', 'link-269');">last</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op [...]
+<a name="L718"></a><tt class="py-lineno">718</tt>  <tt class="py-line">            <tt class="py-name">limitsOK</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L719"></a><tt class="py-lineno">719</tt>  <tt class="py-line"> </tt>
+<a name="L720"></a><tt class="py-lineno">720</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">IndexError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L721"></a><tt class="py-lineno">721</tt>  <tt class="py-line">            <tt class="py-name">limitsOK</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L722"></a><tt class="py-lineno">722</tt>  <tt class="py-line">            <tt class="py-name">f2ThetaMin</tt> <tt class="py-op">=</tt> <tt class="py-number">180.0</tt> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt>  <tt class="py-line">            <tt class="py-name">f2ThetaMax</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L724"></a><tt class="py-lineno">724</tt>  <tt class="py-line"><tt class="py-comment">#        print "limitsOK:", limitsOK</tt> </tt>
+<a name="L725"></a><tt class="py-lineno">725</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">sLine</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lInFile</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L726"></a><tt class="py-lineno">726</tt>  <tt class="py-line">            <tt class="py-name">sCleaned</tt> <tt class="py-op">=</tt> <tt class="py-name">sLine</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"#"</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L727"></a><tt class="py-lineno">727</tt>  <tt class="py-line">            <tt id="link-272" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-272', 'data', 'link-13');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">sCleaned</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L728"></a><tt class="py-lineno">728</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-273" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-273', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt id="link-274" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-274', 'data', 'link-13');">data</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt> <tt class="py-op">:</tt> </tt>
+<a name="L729"></a><tt class="py-lineno">729</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">limitsOK</tt><tt class="py-op">:</tt> </tt>
+<a name="L730"></a><tt class="py-lineno">730</tt>  <tt class="py-line">                    <tt class="py-name">f2Theta</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt id="link-275" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-275', 'data', 'link-13');">data</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L731"></a><tt class="py-lineno">731</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">f2Theta</tt> <tt class="py-op"><</tt> <tt class="py-name">f2ThetaMin</tt> <tt class="py-op">:</tt> </tt>
+<a name="L732"></a><tt class="py-lineno">732</tt>  <tt class="py-line">                        <tt class="py-name">f2ThetaMin</tt> <tt class="py-op">=</tt> <tt class="py-name">f2Theta</tt> </tt>
+<a name="L733"></a><tt class="py-lineno">733</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">f2Theta</tt> <tt class="py-op">></tt> <tt class="py-name">f2ThetaMax</tt> <tt class="py-op">:</tt> </tt>
+<a name="L734"></a><tt class="py-lineno">734</tt>  <tt class="py-line">                        <tt class="py-name">f2ThetaMax</tt> <tt class="py-op">=</tt> <tt class="py-name">f2Theta</tt> </tt>
+<a name="L735"></a><tt class="py-lineno">735</tt>  <tt class="py-line">                <tt class="py-name">lOneLoop</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt> <tt class="py-string">"_pd_meas_intensity_total"</tt><tt class="py-op">:</tt> <tt id="link-276" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-276', 'data', 'link-13');">data</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L736"></a><tt class="py-lineno">736</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">iLenData</tt><tt class="py-op">:</tt> </tt>
+<a name="L737"></a><tt class="py-lineno">737</tt>  <tt class="py-line">            <tt class="py-name">iLenData</tt> <tt class="py-op">=</tt> <tt id="link-277" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-277', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">lOneLoop</tt><tt class="py-op">)</tt> </tt>
+<a name="L738"></a><tt class="py-lineno">738</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-op">(</tt><tt class="py-name">iLenData</tt> <tt class="py-op">==</tt> <tt id="link-278" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-278', 'len', 'link-31');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">lOneLoop</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L739"></a><tt class="py-lineno">739</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">[</tt> <tt class="py-string">"_pd_meas_2theta_range_inc"</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"%.4f"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">f2ThetaMax</tt> <tt class="py-op">-</tt> <tt class="py-name">f2ThetaMin</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> < [...]
+<a name="L740"></a><tt class="py-lineno">740</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt> <tt class="py-string">"_pd_meas_2theta_range_inc"</tt> <tt class="py-op">]</tt> <tt class="py-op"><</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L741"></a><tt class="py-lineno">741</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">[</tt> <tt class="py-string">"_pd_meas_2theta_range_inc"</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">abs</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt> <tt class="py-string">"_pd_meas_2theta_range_inc"</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L742"></a><tt class="py-lineno">742</tt>  <tt class="py-line">            <tt class="py-name">tmp</tt> <tt class="py-op">=</tt> <tt class="py-name">f2ThetaMax</tt> </tt>
+<a name="L743"></a><tt class="py-lineno">743</tt>  <tt class="py-line">            <tt class="py-name">f2ThetaMax</tt> <tt class="py-op">=</tt> <tt class="py-name">f2ThetaMin</tt> </tt>
+<a name="L744"></a><tt class="py-lineno">744</tt>  <tt class="py-line">            <tt class="py-name">f2ThetaMin</tt> <tt class="py-op">=</tt> <tt class="py-name">tmp</tt> </tt>
+<a name="L745"></a><tt class="py-lineno">745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">[</tt> <tt class="py-string">"_pd_meas_2theta_range_max"</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"%.4f"</tt> <tt class="py-op">%</tt> <tt class="py-name">f2ThetaMax</tt> </tt>
+<a name="L746"></a><tt class="py-lineno">746</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">[</tt> <tt class="py-string">"_pd_meas_2theta_range_min"</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"%.4f"</tt> <tt class="py-op">%</tt> <tt class="py-name">f2ThetaMin</tt> </tt>
+<a name="L747"></a><tt class="py-lineno">747</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">[</tt> <tt class="py-string">"_pd_meas_number_of_points"</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-279" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-279', 'str', 'link-159');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">iLenData</tt><tt class="py-op">)</tt> </tt>
+<a name="L748"></a><tt class="py-lineno">748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">"loop_"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-op">[</tt> <tt class="py-op">[</tt><tt class="py-string">"_pd_meas_intensity_total"</tt> <tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">lOneLoop</tt> <tt class="py-op">]</tt> <tt class="py-op">]</tt> </tt>
+</div><a name="L749"></a><tt class="py-lineno">749</tt>  <tt class="py-line"> </tt>
+<a name="L750"></a><tt class="py-lineno">750</tt>  <tt class="py-line"> </tt>
+<a name="L751"></a><tt class="py-lineno">751</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="CIF.LoopHasKey"></a><div id="CIF.LoopHasKey-def"><a name="L752"></a><tt class="py-lineno">752</tt> <a class="py-toggle" href="#" id="CIF.LoopHasKey-toggle" onclick="return toggle('CIF.LoopHasKey');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.cbfimage.CIF-class.html#LoopHasKey">LoopHasKey</a><tt class="py-op">(</tt><tt class="py-param">loop</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt cl [...]
+</div><div id="CIF.LoopHasKey-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CIF.LoopHasKey-expanded"><a name="L753"></a><tt class="py-lineno">753</tt>  <tt class="py-line">        <tt class="py-docstring">"Returns True if the key (string) exist in the array called loop"</tt><tt class="py-string">""</tt> </tt>
+<a name="L754"></a><tt class="py-lineno">754</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L755"></a><tt class="py-lineno">755</tt>  <tt class="py-line">            <tt class="py-name">loop</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt id="link-280" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-280', 'key', 'link-22');">key</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L756"></a><tt class="py-lineno">756</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L757"></a><tt class="py-lineno">757</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L758"></a><tt class="py-lineno">758</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div></div><a name="L759"></a><tt class="py-lineno">759</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.cbfimage.CIF-class.html b/epydoc/fabio.cbfimage.CIF-class.html
new file mode 100644
index 0000000..47d1fb7
--- /dev/null
+++ b/epydoc/fabio.cbfimage.CIF-class.html
@@ -0,0 +1,1068 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.cbfimage.CIF</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.cbfimage-module.html">Module cbfimage</a> ::
+        Class CIF
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.cbfimage.CIF-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class CIF</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF">source code</a></span></p>
+<pre class="base-tree">
+object --+    
+         |    
+      dict --+
+             |
+            <strong class="uidshort">CIF</strong>
+</pre>
+
+<hr />
+<p>This is the CIF class, it represents the CIF dictionary; and as a a 
+  python dictionary thus inherits from the dict built in class.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"><pre class="literalblock">
+new empty dictionary
+
+</pre></span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_strFilename</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Constructor of the class.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#__setitem__" class="summary-sig-name">__setitem__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">key</span>,
+        <span class="summary-sig-arg">value</span>)</span><br />
+      x[i]=y</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.__setitem__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">v, remove specified key and return the corresponding value</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#pop" class="summary-sig-name">pop</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">key</span>)</span><br />
+      If key is not found, d is returned if given, otherwise KeyError is 
+      raised</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.pop">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">(k, v), remove and return some (key, value) pair as a</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#popitem" class="summary-sig-name">popitem</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">key</span>)</span><br />
+      2-tuple; but raise KeyError if D is empty.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.popitem">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#loadCIF" class="summary-sig-name">loadCIF</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_strFilename</span>,
+        <span class="summary-sig-arg">_bKeepComment</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Load the CIF file and populates the CIF dictionary into the object</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.loadCIF">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#readCIF" class="summary-sig-name">readCIF</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_strFilename</span>,
+        <span class="summary-sig-arg">_bKeepComment</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Load the CIF file and populates the CIF dictionary into the object</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.loadCIF">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">None</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#_parseCIF" class="summary-sig-name" onclick="show_private();">_parseCIF</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">sText</span>)</span><br />
+      Parses the text of a CIF file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF._parseCIF">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#saveCIF" class="summary-sig-name">saveCIF</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_strFilename</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">test.cif</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">linesep</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">\n</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">binary</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Transforms the CIF object in string then write it into the given file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.saveCIF">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#tostring" class="summary-sig-name">tostring</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_strFilename</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">linesep</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">\n</code><code class="variable-quote">'</code></span>)</span><br />
+      Converts a cif dictionnary to a string according to the CIF syntax</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.tostring">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">boolean</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#exists" class="summary-sig-name">exists</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">sKey</span>)</span><br />
+      Check if the key exists in the CIF and is non empty.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.exists">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">boolean</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#existsInLoop" class="summary-sig-name">existsInLoop</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">sKey</span>)</span><br />
+      Check if the key exists in the CIF dictionary.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.existsInLoop">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">dictionary</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#loadCHIPLOT" class="summary-sig-name">loadCHIPLOT</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_strFilename</span>)</span><br />
+      Load the powder diffraction CHIPLOT file and returns the pd_CIF 
+      dictionary in the object</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.loadCHIPLOT">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>dict</code></b>:
+      <code>__cmp__</code>,
+      <code>__contains__</code>,
+      <code>__delitem__</code>,
+      <code>__eq__</code>,
+      <code>__ge__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__gt__</code>,
+      <code>__iter__</code>,
+      <code>__le__</code>,
+      <code>__len__</code>,
+      <code>__lt__</code>,
+      <code>__ne__</code>,
+      <code>__new__</code>,
+      <code>__repr__</code>,
+      <code>__sizeof__</code>,
+      <code>clear</code>,
+      <code>copy</code>,
+      <code>fromkeys</code>,
+      <code>get</code>,
+      <code>has_key</code>,
+      <code>items</code>,
+      <code>iteritems</code>,
+      <code>iterkeys</code>,
+      <code>itervalues</code>,
+      <code>keys</code>,
+      <code>setdefault</code>,
+      <code>update</code>,
+      <code>values</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">boolean</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#isAscii" class="summary-sig-name">isAscii</a>(<span class="summary-sig-arg">_strIn</span>)</span><br />
+      Check if all characters in a string are ascii,</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.isAscii">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#_readCIF" class="summary-sig-name" onclick="show_private();">_readCIF</a>(<span class="summary-sig-arg">_instream</span>)</span><br />
+      Check if the filename containing the CIF data exists</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF._readCIF">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">list</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#_splitCIF" class="summary-sig-name" onclick="show_private();">_splitCIF</a>(<span class="summary-sig-arg">sText</span>)</span><br />
+      Separate the text in fields as defined in the CIF</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF._splitCIF">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">tuple</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.CIF-class.html#_analyseOneLoop" class="summary-sig-name" onclick="show_private();">_analyseOneLoop</a>(<span class="summary-sig-arg">lFields</span>,
+        <span class="summary-sig-arg">iStart</span>)</span><br />
+      Processes one loop in the data extraction of the CIF file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF._analyseOneLoop">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="LoopHasKey"></a><span class="summary-sig-name">LoopHasKey</span>(<span class="summary-sig-arg">loop</span>,
+        <span class="summary-sig-arg">key</span>)</span><br />
+      Returns True if the key (string) exist in the array called loop</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.LoopHasKey">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="EOL"></a><span class="summary-name">EOL</span> = <code title="['\r', '\n', '\r\n', '\n\r']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">\r</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">\n</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class=" [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="BLANK"></a><span class="summary-name">BLANK</span> = <code title="[' ', '\t', '\r', '\n', '\r\n', '\n\r']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"> </code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">\t</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="START_COMMENT"></a><span class="summary-name">START_COMMENT</span> = <code title="['"', '\'']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">"</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">\'</code><code class="variable-quote">'</code><code class="variable-group">]</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="BINARY_MARKER"></a><span class="summary-name">BINARY_MARKER</span> = <code title="'--CIF-BINARY-FORMAT-SECTION--'"><code class="variable-quote">'</code><code class="variable-string">--CIF-BINARY-FORMAT-SECTION--</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>dict</code></b>:
+      <code>__hash__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">_strFilename</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Constructor of the class.</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_strFilename</code></strong> (filename (str) or file object) - the name of the file to open</li>
+    </ul></dd>
+    <dt>Returns: <pre class="literalblock">
+new empty dictionary
+
+</pre></dt>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__setitem__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__setitem__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">key</span>,
+        <span class="sig-arg">value</span>)</span>
+    <br /><em class="fname">(Index assignment operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.__setitem__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>x[i]=y</p>
+  <dl class="fields">
+    <dt>Overrides:
+        dict.__setitem__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="pop"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">pop</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">key</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.pop">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>If key is not found, d is returned if given, otherwise KeyError is 
+  raised</p>
+  <dl class="fields">
+    <dt>Returns: v, remove specified key and return the corresponding value</dt>
+    <dt>Overrides:
+        dict.pop
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="popitem"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">popitem</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">key</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.popitem">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>2-tuple; but raise KeyError if D is empty.</p>
+  <dl class="fields">
+    <dt>Returns: (k, v), remove and return some (key, value) pair as a</dt>
+    <dt>Overrides:
+        dict.popitem
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="loadCIF"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">loadCIF</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">_strFilename</span>,
+        <span class="sig-arg">_bKeepComment</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.loadCIF">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Load the CIF file and populates the CIF dictionary into the object</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_strFilename</code></strong> (string) - the name of the file to open</li>
+        <li><strong class="pname"><code>_strFilename</code></strong> (string) - the name of the file to open</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>None</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="readCIF"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">readCIF</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">_strFilename</span>,
+        <span class="sig-arg">_bKeepComment</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.loadCIF">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Load the CIF file and populates the CIF dictionary into the object</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_strFilename</code></strong> (string) - the name of the file to open</li>
+        <li><strong class="pname"><code>_strFilename</code></strong> (string) - the name of the file to open</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>None</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="isAscii"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">isAscii</span>(<span class="sig-arg">_strIn</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.isAscii">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Check if all characters in a string are ascii,</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_strIn</code></strong> (python string) - input string</li>
+    </ul></dd>
+    <dt>Returns: boolean</dt>
+        <dd>boolean</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readCIF"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readCIF</span>(<span class="sig-arg">_instream</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF._readCIF">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <ul>
+    <li>
+      Check if the filename containing the CIF data exists
+    </li>
+    <li>
+      read the cif file
+    </li>
+    <li>
+      removes the comments
+    </li>
+  </ul>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_instream</code></strong> (open file in read mode) - the file containing the CIF data</li>
+    </ul></dd>
+    <dt>Returns: string</dt>
+        <dd>a string containing the raw data</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_parseCIF"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_parseCIF</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">sText</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF._parseCIF">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <ul>
+    <li>
+      Parses the text of a CIF file
+    </li>
+    <li>
+      Cut it in fields
+    </li>
+    <li>
+      Find all the loops and process
+    </li>
+    <li>
+      Find all the keys and values
+    </li>
+  </ul>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>sText</code></strong> (string) - the content of the CIF - file</li>
+    </ul></dd>
+    <dt>Returns: None</dt>
+        <dd>Nothing, the data are incorporated at the CIF object dictionary</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_splitCIF"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_splitCIF</span>(<span class="sig-arg">sText</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF._splitCIF">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Separate the text in fields as defined in the CIF</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>sText</code></strong> (string) - the content of the CIF - file</li>
+    </ul></dd>
+    <dt>Returns: list</dt>
+        <dd>list of all the fields of the CIF</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_analyseOneLoop"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_analyseOneLoop</span>(<span class="sig-arg">lFields</span>,
+        <span class="sig-arg">iStart</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF._analyseOneLoop">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Processes one loop in the data extraction of the CIF file</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>lFields</code></strong> (list) - list of all the words contained in the cif file</li>
+        <li><strong class="pname"><code>iStart</code></strong> (integer) - the starting index corresponding to the "loop_" key</li>
+    </ul></dd>
+    <dt>Returns: tuple</dt>
+        <dd>the list of loop dictionaries, the length of the data extracted 
+          from the lFields and the list of all the keys of the loop.</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="saveCIF"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">saveCIF</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">_strFilename</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">test.cif</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">linesep</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">\n</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">binary</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.saveCIF">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Transforms the CIF object in string then write it into the given 
+  file</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_strFilename</code></strong> - the of the file to be written</li>
+        <li><strong class="pname"><code>linesep</code></strong> - line separation used (to force compatibility with windows/unix)</li>
+        <li><strong class="pname"><code>binary</code></strong> - Shall we write the data as binary (True only for imageCIF/CBF)</li>
+        <li><strong class="pname"><code>param</code></strong> (string)</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="tostring"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">tostring</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">_strFilename</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">linesep</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">\n</code><code class="variable-quote">'</code></span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.tostring">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Converts a cif dictionnary to a string according to the CIF syntax</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_strFilename</code></strong> (string) - the name of the filename to be appended in the header of the CIF 
+          file</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>a sting that corresponds to the content of the CIF - file.</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="exists"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">exists</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">sKey</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.exists">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Check if the key exists in the CIF and is non empty.</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>sKey</code></strong> (string) - CIF key</li>
+        <li><strong class="pname"><code>cif</code></strong> - CIF dictionary</li>
+    </ul></dd>
+    <dt>Returns: boolean</dt>
+        <dd>True if the key exists in the CIF dictionary and is non empty</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="existsInLoop"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">existsInLoop</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">sKey</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.existsInLoop">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Check if the key exists in the CIF dictionary.</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>sKey</code></strong> (string) - CIF key</li>
+        <li><strong class="pname"><code>cif</code></strong> - CIF dictionary</li>
+    </ul></dd>
+    <dt>Returns: boolean</dt>
+        <dd>True if the key exists in the CIF dictionary and is non empty</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="loadCHIPLOT"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">loadCHIPLOT</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">_strFilename</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#CIF.loadCHIPLOT">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Load the powder diffraction CHIPLOT file and returns the pd_CIF 
+  dictionary in the object</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_strFilename</code></strong> (string) - the name of the file to open</li>
+    </ul></dd>
+    <dt>Returns: dictionary</dt>
+        <dd>the CIF object corresponding to the powder diffraction</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.cbfimage.cbfimage-class.html b/epydoc/fabio.cbfimage.cbfimage-class.html
new file mode 100644
index 0000000..7bedf3f
--- /dev/null
+++ b/epydoc/fabio.cbfimage.cbfimage-class.html
@@ -0,0 +1,554 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.cbfimage.cbfimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.cbfimage-module.html">Module cbfimage</a> ::
+        Class cbfimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.cbfimage.cbfimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class cbfimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">cbfimage</strong>
+</pre>
+
+<hr />
+<p>Read the Cif Binary File data format</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.cbfimage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">header</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">fname</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Constructor of the class CIF Binary File reader.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.cbfimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">inStream</span>)</span><br />
+      Read in a header in some CBF format from a string representing binary
+      stuff</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.cbfimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in header into self.header and...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">numpy array</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.cbfimage-class.html#_readbinary_byte_offset" class="summary-sig-name" onclick="show_private();">_readbinary_byte_offset</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">inStream</span>)</span><br />
+      Read in a binary part of an x-CBF_BYTE_OFFSET compressed image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage._readbinary_byte_offset">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.cbfimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      write the file in CBF format</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cbfimage.cbfimage-class.html#checkData" class="summary-sig-name">checkData</a>(<span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Empty for fabioimage but may be populated by others classes, 
+      especially for format accepting only integers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage.checkData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">header</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">fname</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Constructor of the class CIF Binary File reader.</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_strFilename</code></strong> (string) - the name of the file to open</li>
+    </ul></dd>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="checkData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">checkData</span>(<span class="sig-arg">data</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage.checkData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Empty for fabioimage but may be populated by others classes, 
+  especially for format accepting only integers</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#checkData">fabioimage.fabioimage.checkData</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">inStream</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read in a header in some CBF format from a string representing binary 
+  stuff</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>inStream</code></strong> (opened file.) - file containing the Cif Binary part.</li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Read in header into self.header and
+    the data   into self.data
+
+</pre>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readbinary_byte_offset"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readbinary_byte_offset</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">inStream</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage._readbinary_byte_offset">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read in a binary part of an x-CBF_BYTE_OFFSET compressed image</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>inStream</code></strong> (python string.) - the binary image (without any CIF decorators)</li>
+    </ul></dd>
+    <dt>Returns: numpy array</dt>
+        <dd>a linear numpy array without shape and dtype set</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.cbfimage-pysrc.html#cbfimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>write the file in CBF format</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>fname</code></strong> - name of the file</li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.cf_io-module.html b/epydoc/fabio.cf_io-module.html
new file mode 100644
index 0000000..f5a93fb
--- /dev/null
+++ b/epydoc/fabio.cf_io-module.html
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.cf_io</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module cf_io
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.cf_io-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module cf_io</h1><p class="nomargin-top"></p>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.cf_io-module.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      call the c-columnfile reading interface.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code><br />
+      hash(x)
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Function Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-FunctionDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>call the c-columnfile reading interface. The mode keyword argument is 
+  either: "a" for ascii (the default) "b" for 
+  binary</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.compression-module.html b/epydoc/fabio.compression-module.html
new file mode 100644
index 0000000..1380d9d
--- /dev/null
+++ b/epydoc/fabio.compression-module.html
@@ -0,0 +1,772 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.compression</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module compression
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.compression-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module compression</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.compression-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Authors: Jérôme Kieffer, ESRF
+         email:jerome.kieffer at esrf.fr
+
+FabIO library containing compression and decompression algorithm for various
+
+</pre>
+
+<hr />
+<div class="fields">      <p><strong>Author:</strong>
+        J\xc3\xa9r\xc3\xb4me Kieffer
+      </p>
+      <p><strong>Contact:</strong>
+        jerome.kieffer at esrf.eu
+      </p>
+      <p><strong>Copyright:</strong>
+        European Synchrotron Radiation Facility, Grenoble, France
+      </p>
+      <p><strong>License:</strong>
+        GPLv3+
+      </p>
+</div><!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="str-class.html" class="summary-name">str</a><br />
+      str(object) -> string
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="md5sum"></a><span class="summary-sig-name">md5sum</span>(<span class="summary-sig-arg">blob</span>)</span><br />
+      returns the md5sum of an object...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#md5sum">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="endianness"></a><span class="summary-sig-name">endianness</span>()</span><br />
+      Return the native endianness of the system</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#endianness">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="decGzip"></a><span class="summary-sig-name">decGzip</span>(<span class="summary-sig-arg">stream</span>)</span><br />
+      Decompress a chunk of data using the gzip algorithm from Python or 
+      alternatives if possible</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decGzip">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="decBzip2"></a><span class="summary-sig-name">decBzip2</span>(<span class="summary-sig-arg">stream</span>)</span><br />
+      Decompress a chunk of data using the bzip2 algorithm from Python</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decBzip2">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="decZlib"></a><span class="summary-sig-name">decZlib</span>(<span class="summary-sig-arg">stream</span>)</span><br />
+      Decompress a chunk of data using the zlib algorithm from Python</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decZlib">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#decByteOffet_python" class="summary-sig-name">decByteOffet_python</a>(<span class="summary-sig-arg">stream</span>,
+        <span class="summary-sig-arg">size</span>)</span><br />
+      Analyze a stream of char with any length of exception (2,4, or 8 
+      bytes integers)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decByteOffet_python">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#decByteOffet_weave" class="summary-sig-name">decByteOffet_weave</a>(<span class="summary-sig-arg">stream</span>,
+        <span class="summary-sig-arg">size</span>)</span><br />
+      Analyze a stream of char with any length of exception (2,4, or 8 
+      bytes integers)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decByteOffet_weave">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#decByteOffet_numpy" class="summary-sig-name">decByteOffet_numpy</a>(<span class="summary-sig-arg">stream</span>,
+        <span class="summary-sig-arg">size</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Analyze a stream of char with any length of exception:
+            2, 4, or 8 bytes integers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decByteOffet_numpy">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#decByteOffet_cython" class="summary-sig-name">decByteOffet_cython</a>(<span class="summary-sig-arg">stream</span>,
+        <span class="summary-sig-arg">size</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Analyze a stream of char with any length of exception:
+            2, 4, or 8 bytes integers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decByteOffet_cython">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#compByteOffet_numpy" class="summary-sig-name">compByteOffet_numpy</a>(<span class="summary-sig-arg">data</span>)</span><br />
+      Compress a dataset into a string using the byte_offet algorithm</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#compByteOffet_numpy">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#decTY1" class="summary-sig-name">decTY1</a>(<span class="summary-sig-arg">raw_8</span>,
+        <span class="summary-sig-arg">raw_16</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">raw_32</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Modified byte offset decompressor used in Oxford Diffraction images</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decTY1">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#decKM4CCD" class="summary-sig-name">decKM4CCD</a>(<span class="summary-sig-arg">raw_8</span>,
+        <span class="summary-sig-arg">raw_16</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">raw_32</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Modified byte offset decompressor used in Oxford Diffraction images</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decTY1">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#compTY1" class="summary-sig-name">compTY1</a>(<span class="summary-sig-arg">data</span>)</span><br />
+      Modified byte offset compressor used in Oxford Diffraction images</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#compTY1">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#decPCK" class="summary-sig-name">decPCK</a>(<span class="summary-sig-arg">stream</span>,
+        <span class="summary-sig-arg">dim1</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">dim2</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">overflowPix</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Modified CCP4  pck decompressor used in MAR345 images</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#decPCK">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.compression-module.html#compPCK" class="summary-sig-name">compPCK</a>(<span class="summary-sig-arg">data</span>)</span><br />
+      Modified CCP4  pck compressor used in MAR345 images</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.compression-pysrc.html#compPCK">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("compression")">logging.getLogger("compression")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Function Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-FunctionDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="decByteOffet_python"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">decByteOffet_python</span>(<span class="sig-arg">stream</span>,
+        <span class="sig-arg">size</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#decByteOffet_python">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Analyze a stream of char with any length of exception (2,4, or 8 bytes
+  integers)</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>stream</code></strong> - string representing the compressed data</li>
+        <li><strong class="pname"><code>size</code></strong> - the size of the output array (of longInts)</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>1D-ndarray</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="decByteOffet_weave"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">decByteOffet_weave</span>(<span class="sig-arg">stream</span>,
+        <span class="sig-arg">size</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#decByteOffet_weave">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Analyze a stream of char with any length of exception (2,4, or 8 bytes
+  integers)</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>stream</code></strong> - string representing the compressed data</li>
+        <li><strong class="pname"><code>size</code></strong> - the size of the output array (of longInts)</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>1D-ndarray</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="decByteOffet_numpy"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">decByteOffet_numpy</span>(<span class="sig-arg">stream</span>,
+        <span class="sig-arg">size</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#decByteOffet_numpy">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Analyze a stream of char with any length of exception:
+            2, 4, or 8 bytes integers
+
+ at param stream: string representing the compressed data
+ at param size: the size of the output array (of longInts)
+ at return: 1D-ndarray
+
+</pre>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="decByteOffet_cython"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">decByteOffet_cython</span>(<span class="sig-arg">stream</span>,
+        <span class="sig-arg">size</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#decByteOffet_cython">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Analyze a stream of char with any length of exception:
+            2, 4, or 8 bytes integers
+
+ at param stream: string representing the compressed data
+ at param size: the size of the output array (of longInts)
+ at return: 1D-ndarray
+
+</pre>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="compByteOffet_numpy"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">compByteOffet_numpy</span>(<span class="sig-arg">data</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#compByteOffet_numpy">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Compress a dataset into a string using the byte_offet algorithm</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>data</code></strong> - ndarray</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>string/bytes with compressed data
+          <p>test = 
+          numpy.array([0,1,2,127,0,1,2,128,0,1,2,32767,0,1,2,32768,0,1,2,2147483647,0,1,2,2147483648,0,1,2,128,129,130,32767,32768,128,129,130,32768,2147483647,2147483648])</p></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="decTY1"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">decTY1</span>(<span class="sig-arg">raw_8</span>,
+        <span class="sig-arg">raw_16</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">raw_32</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#decTY1">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Modified byte offset decompressor used in Oxford Diffraction 
+  images</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>raw_8</code></strong> - strings containing raw data with integer 8 bits</li>
+        <li><strong class="pname"><code>raw_16</code></strong> - strings containing raw data with integer 16 bits</li>
+        <li><strong class="pname"><code>raw_32</code></strong> - strings containing raw data with integer 32 bits</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>numpy.ndarray</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="decKM4CCD"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">decKM4CCD</span>(<span class="sig-arg">raw_8</span>,
+        <span class="sig-arg">raw_16</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">raw_32</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#decTY1">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Modified byte offset decompressor used in Oxford Diffraction 
+  images</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>raw_8</code></strong> - strings containing raw data with integer 8 bits</li>
+        <li><strong class="pname"><code>raw_16</code></strong> - strings containing raw data with integer 16 bits</li>
+        <li><strong class="pname"><code>raw_32</code></strong> - strings containing raw data with integer 32 bits</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>numpy.ndarray</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="compTY1"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">compTY1</span>(<span class="sig-arg">data</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#compTY1">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Modified byte offset compressor used in Oxford Diffraction images</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>data</code></strong> - numpy.ndarray with the input data (integers!)</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>3-tuple of strings: raw_8,raw_16,raw_32 containing raw data with 
+          integer of the given size</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="decPCK"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">decPCK</span>(<span class="sig-arg">stream</span>,
+        <span class="sig-arg">dim1</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">dim2</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">overflowPix</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#decPCK">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Modified CCP4  pck decompressor used in MAR345 images</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>stream</code></strong> - string or file</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>numpy.ndarray (square array)</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="compPCK"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">compPCK</span>(<span class="sig-arg">data</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.compression-pysrc.html#compPCK">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Modified CCP4  pck compressor used in MAR345 images</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>data</code></strong> - numpy.ndarray (square array)</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>compressed stream</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.compression-pysrc.html b/epydoc/fabio.compression-pysrc.html
new file mode 100644
index 0000000..0f7f0e2
--- /dev/null
+++ b/epydoc/fabio.compression-pysrc.html
@@ -0,0 +1,1013 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.compression</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module compression
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.compression-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.compression-module.html">Module fabio.compression</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"># coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Jérôme Kieffer, ESRF</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">         email:jerome.kieffer at esrf.fr</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">FabIO library containing compression and decompression algorithm for various</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">"Jérôme Kieffer"</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-name">__contact__</tt> <tt class="py-op">=</tt> <tt class="py-string">"jerome.kieffer at esrf.eu"</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> <tt class="py-string">"GPLv3+"</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-name">__copyright__</tt> <tt class="py-op">=</tt> <tt class="py-string">"European Synchrotron Radiation Facility, Grenoble, France"</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt><tt class="py-op">,</tt> <tt class="py-name">struct</tt><tt class="py-op">,</tt> <tt class="py-name">hashlib</tt><tt class="py-op">,</tt> <tt class="py-name">base64</tt><tt class="py-op">,</tt> <tt id="link-0" class="py-name" targets="Class fabio.fabioutils.StringIO=fabio.fabioutils.StringIO-class.html"><a title="fabio.fabioutils.StringIO" class="py-nam [...]
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">>=</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line">    <tt id="link-1" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-1', 'str', 'link-1');">str</a></tt> <tt class="py-op">=</tt> <tt class="py-name">bytes</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-2', 'logger', 'link-2');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"compression"</tt><tt class="py-op">)</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">gzip</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">    <tt id="link-3" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-3', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to import gzip module: disabling gzip compression"</tt><tt class="py-op">)</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">    <tt class="py-name">gzip</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">bz2</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">    <tt id="link-4" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-4', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to import bz2 module: disabling bz2 compression"</tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">    <tt class="py-name">bz2</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">zlib</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">    <tt id="link-5" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-5', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to import zlib module: disabling zlib compression"</tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">    <tt class="py-name">zlib</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"> </tt>
+<a name="md5sum"></a><div id="md5sum-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="md5sum-toggle" onclick="return toggle('md5sum');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#md5sum">md5sum</a><tt class="py-op">(</tt><tt class="py-param">blob</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="md5sum-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="md5sum-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">    returns the md5sum of an object...</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64encode</tt><tt class="py-op">(</tt><tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt><tt class="py-op">(</tt><tt class="py-name">blob</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt cl [...]
+</div><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
+<a name="endianness"></a><div id="endianness-def"><a name="L46"></a><tt class="py-lineno"> 46</tt> <a class="py-toggle" href="#" id="endianness-toggle" onclick="return toggle('endianness');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#endianness">endianness</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="endianness-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="endianness-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring">    Return the native endianness of the system</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">little_endian</tt><tt class="py-op">:</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"LITTLE_ENDIAN"</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">"BIG_ENDIAN"</tt> </tt>
+</div><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"> </tt>
+<a name="decGzip"></a><div id="decGzip-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="decGzip-toggle" onclick="return toggle('decGzip');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#decGzip">decGzip</a><tt class="py-op">(</tt><tt class="py-param">stream</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="decGzip-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="decGzip-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-docstring">    Decompress a chunk of data using the gzip algorithm from Python or alternatives if possible</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">gzip</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">ImportError</tt><tt class="py-op">(</tt><tt class="py-string">"gzip module is not available"</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt class="py-name">fileobj</tt> <tt class="py-op">=</tt> <tt id="link-6" class="py-name"><a title="fabio.fabioutils.StringIO" class="py-name" href="#" onclick="return doclink('link-6', 'StringIO', 'link-0');">StringIO</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="fabio.fabioutils.StringIO" class="py-name" href="#" onclick="return doclink('link-7', 'StringIO', 'link-0');">StringIO</a></t [...]
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Class fabio.fabioutils.GzipFile=fabio.fabioutils.GzipFile-class.html"><a title="fabio.fabioutils.GzipFile" class="py-name" href="#" onclick="return doclink('link-8', 'GzipFile', 'link-8');">GzipFile</a></tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-9', 'read', 'link-9');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt id="link-10" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-10', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Encounter the python-gzip bug with trailing garbage, trying subprocess gzip"</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">            <tt class="py-comment">#This is as an ugly hack against a bug in Python gzip</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">            <tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">            <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">Popen</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"gzip"</tt><tt class="py-op">,</tt> <tt class="py-string">"-d"</tt><tt class="py-op">,</tt> <tt class="py-string">"-f"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">stdou [...]
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">            <tt class="py-name">rawData</tt><tt class="py-op">,</tt> <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt class="py-name">communicate</tt><tt class="py-op">(</tt><tt class="py-name">input</tt><tt class="py-op">=</tt><tt class="py-name">stream</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">            <tt id="link-11" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-11', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Gzip subprocess ended with %s err= %s; I got %s bytes back"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt class="py-name">wait</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt [...]
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> <tt class="py-comment">#IGNORE:W0703</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">            <tt id="link-13" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-13', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to use the subprocess gzip (%s). Is gzip available? "</tt> <tt class="py-op">%</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-14" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-14', 'i', 'link-14');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-numbe [...]
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">                    <tt class="py-name">fileobj</tt> <tt class="py-op">=</tt> <tt id="link-15" class="py-name"><a title="fabio.fabioutils.StringIO" class="py-name" href="#" onclick="return doclink('link-15', 'StringIO', 'link-0');">StringIO</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="fabio.fabioutils.StringIO" class="py-name" href="#" onclick="return doclink('link-16', 'StringIO', 'link-0 [...]
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                    <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="fabio.fabioutils.GzipFile" class="py-name" href="#" onclick="return doclink('link-18', 'GzipFile', 'link-8');">GzipFile</a></tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">fileobj</tt><tt clas [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-19', 'read', 'link-9');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">                    <tt id="link-20" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-20', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"trying with %s bytes less, doesn't work"</tt> <tt class="py-op">%</tt> <tt id="link-21" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-21', 'i', 'link-14');">i</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">                <tt id="link-22" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-22', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"I am totally unable to read this gzipped compressed data block, giving up"</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">rawData</tt> </tt>
+</div><a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
+<a name="decBzip2"></a><div id="decBzip2-def"><a name="L91"></a><tt class="py-lineno"> 91</tt> <a class="py-toggle" href="#" id="decBzip2-toggle" onclick="return toggle('decBzip2');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#decBzip2">decBzip2</a><tt class="py-op">(</tt><tt class="py-param">stream</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="decBzip2-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="decBzip2-expanded"><a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-docstring">    Decompress a chunk of data using the bzip2 algorithm from Python</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">bz2</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">ImportError</tt><tt class="py-op">(</tt><tt class="py-string">"bz2 module is not available"</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">bz2</tt><tt class="py-op">.</tt><tt class="py-name">decompress</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"> </tt>
+<a name="decZlib"></a><div id="decZlib-def"><a name="L102"></a><tt class="py-lineno">102</tt> <a class="py-toggle" href="#" id="decZlib-toggle" onclick="return toggle('decZlib');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#decZlib">decZlib</a><tt class="py-op">(</tt><tt class="py-param">stream</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="decZlib-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="decZlib-expanded"><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-docstring">    Decompress a chunk of data using the zlib algorithm from Python</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">zlib</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">ImportError</tt><tt class="py-op">(</tt><tt class="py-string">"zlib module is not available"</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">decompress</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="decByteOffet_python"></a><div id="decByteOffet_python-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="decByteOffet_python-toggle" onclick="return toggle('decByteOffet_python');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#decByteOffet_python">decByteOffet_python</a><tt class="py-op">(</tt><tt class="py-param">stream</tt><tt class="py-op">,</tt> <tt class="py-param">si [...]
+</div><div id="decByteOffet_python-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="decByteOffet_python-expanded"><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">    Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">    @param stream: string representing the compressed data</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">    @param size: the size of the output array (of longInts)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">    @return: 1D-ndarray</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">    <tt id="link-23" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-23', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"CBF decompression using Python with Cython loops"</tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">    <tt class="py-name">dataOut</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name" targets="Variable fabio.fabioutils.BZ2File.size=fabio.fabioutils.BZ2File-class.html#size,Variable fabio.fabioutils.File.size=fabio.fabioutils.File-class.html#size,Variable fabio.fabioutils.GzipF [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-24', 'size', 'link-24');">size</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int64</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">    <tt id="link-25" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-25', 'i', 'link-14');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">    <tt class="py-name">j</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">    <tt id="link-26" class="py-name" targets="Method fabio.file_series.file_series.last()=fabio.file_series.file_series-class.html#last"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick="return doclink('link-26', 'last', 'link-26');">last</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">    <tt id="link-27" class="py-name" targets="Method fabio.file_series.file_series.current()=fabio.file_series.file_series-class.html#current,Method fabio.file_series.filename_series.current()=fabio.file_series.filename_series-class.html#current"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-27', 'current', 'link-27');">current</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-28" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-28', 'i', 'link-14');">i</a></tt> <tt class="py-op"><</tt> <tt id="link-29" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-29', 'len', 'link-12') [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-30', 'size', 'link-24');">size</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">[</tt><tt id="link-31" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-31', 'i', 'link-14');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'\x80'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">[</tt><tt id="link-32" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-32', 'i', 'link-14');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt id="link-33" class="py-name"><a title="fabio.fabioutils.i" class=" [...]
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">[</tt><tt id="link-34" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-34', 'i', 'link-14');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt><tt id="link-35" class="py-name"><a title="fabio.fabioutils.i" cla [...]
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">                    <tt id="link-36" class="py-name"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-36', 'current', 'link-27');">current</a></tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method fabio.edfimage.edfimage.unpack()=fabio.edfimage.edfimage-class.html#unpack,Method fabio.tifimage.Image_File_Directory.unpack()=fabio.tifimage.Image_File_Directory-class.html#unpack,Method fabio.tifimage.Image_File_Direc [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-37', 'unpack', 'link-37');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-string">"<q"</tt><tt class="py-op">,</tt> <tt class="py-name">stream</tt><tt class="py-op">[</tt><tt id="link-38" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-38', 'i', 'link-14');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-number">7</tt>< [...]
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">                    <tt id="link-40" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-40', 'i', 'link-14');">i</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">15</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">                    <tt id="link-41" class="py-name"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-41', 'current', 'link-27');">current</a></tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-42', 'unpack', 'link-37');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-string">"<i"</tt><tt class="py-op">,</tt> <tt class="py-name">stream</tt><tt class="py-op">[</tt><tt id="link-43" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-43', 'i', 'link-14');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-number">3</tt>< [...]
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">                    <tt id="link-45" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-45', 'i', 'link-14');">i</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">7</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">                <tt id="link-46" class="py-name"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-46', 'current', 'link-27');">current</a></tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-47', 'unpack', 'link-37');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-string">"<h"</tt><tt class="py-op">,</tt> <tt class="py-name">stream</tt><tt class="py-op">[</tt><tt id="link-48" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-48', 'i', 'link-14');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt>< [...]
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">                <tt id="link-50" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-50', 'i', 'link-14');">i</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">3</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">            <tt id="link-51" class="py-name"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-51', 'current', 'link-27');">current</a></tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-52', 'unpack', 'link-37');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-string">"<b"</tt><tt class="py-op">,</tt> <tt class="py-name">stream</tt><tt class="py-op">[</tt><tt id="link-53" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-53', 'i', 'link-14');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt cla [...]
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">            <tt id="link-54" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-54', 'i', 'link-14');">i</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">        <tt id="link-55" class="py-name"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick="return doclink('link-55', 'last', 'link-26');">last</a></tt> <tt class="py-op">+=</tt> <tt id="link-56" class="py-name"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-56', 'current', 'link-27');">current</a></tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt class="py-name">dataOut</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick="return doclink('link-57', 'last', 'link-26');">last</a></tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-name">j</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">dataOut</tt> </tt>
+</div><a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"> </tt>
+<a name="decByteOffet_weave"></a><div id="decByteOffet_weave-def"><a name="L148"></a><tt class="py-lineno">148</tt> <a class="py-toggle" href="#" id="decByteOffet_weave-toggle" onclick="return toggle('decByteOffet_weave');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#decByteOffet_weave">decByteOffet_weave</a><tt class="py-op">(</tt><tt class="py-param">stream</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt [...]
+</div><div id="decByteOffet_weave-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="decByteOffet_weave-expanded"><a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">    Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">    @param stream: string representing the compressed data</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">    @param size: the size of the output array (of longInts)</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">    @return: 1D-ndarray</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">    <tt id="link-58" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-58', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"CBF decompression using Weave"</tt><tt class="py-op">)</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt class="py-name">scipy</tt> <tt class="py-keyword">import</tt> <tt class="py-name">weave</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt class="py-name">scipy</tt><tt class="py-op">.</tt><tt class="py-name">weave</tt> <tt class="py-keyword">import</tt> <tt id="link-59" class="py-name" targets="Module fabio.converters=fabio.converters-module.html"><a title="fabio.converters" class="py-name" href="#" onclick="return doclink('link-59', 'converters', 'link-59');">converters</a></tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt id="link-60" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-60', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"scipy.weave is not available, falling back on slow Numpy implementations"</tt><tt class="py-op">)</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-61" class="py-name" targets="Function fabio.compression.decByteOffet_numpy()=fabio.compression-module.html#decByteOffet_numpy"><a title="fabio.compression.decByteOffet_numpy" class="py-name" href="#" onclick="return doclink('link-61', 'decByteOffet_numpy', 'link-61');">decByteOffet_numpy</a></tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-62', 'size', 'link-24');">size</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">    <tt class="py-name">dataIn</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"uint8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">    <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">dataIn</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-63', 'size', 'link-24');">size</a></tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">    <tt class="py-name">dataOut</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt id="link-64" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-64', 'size', 'link-24');">size</a></tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"int64"</tt><tt class="py-op">)</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">    <tt class="py-name">codeC</tt> <tt class="py-op">=</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-string">unsigned char key = 0x80;</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-string">long   j = 0;</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-string">long   last=0;</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-string">long   current=0;</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-string">for (int i=0; i< n; i++){</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-string">   if (j>=size){</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-string">   //printf("i= %i<%i, j=%i < size= %i %i\\n",i,n,j,size,dataIn(i));</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-string">       break;</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-string">  }</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-string">  if (dataIn(i) == key){</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-string">      if ( (dataIn(i+1)==0) and (dataIn(i+2)==key) ){</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-string">          if ( (dataIn(i+3)==0) and (dataIn(i+4)==0) and (dataIn(i+5)==0) and (dataIn(i+6)==key) )  {</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-string">               // 64 bits mode</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line"><tt class="py-string">               char tmp = dataIn(i+14) ;</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"><tt class="py-string">               current = (long(tmp)<<56) | (long(dataIn(i+13))<<48) | (long(dataIn(i+12))<<40) | (long(dataIn(i+11))<<32) | (long(dataIn(i+10))<<24) | (long(dataIn(i+9))<<16) | (long(dataIn(i+8))<<8) | (long(dataIn(i+7)));</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"><tt class="py-string">//                printf("64 bit int at pos %i, %i, value=%ld \\n",i,j,current);</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"><tt class="py-string">               i+=14;</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"><tt class="py-string">           }else{</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-string">               // 32 bits mode</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-string">               char tmp = dataIn(i+6) ;</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-string">               current = (long(tmp)<<24) | (long(dataIn(i+5))<<16) | (long(dataIn(i+4))<<8) | (long(dataIn(i+3)));</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-string">//                printf("32 bit int at pos %i, %i, value=%ld was %i %i %i %i %i %i %i\\n",i,j,current,dataIn(i),dataIn(i+1),dataIn(i+2),dataIn(i+3),dataIn(i+4),dataIn(i+5),dataIn(i+6));</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"><tt class="py-string">//                printf("%ld %ld %ld %ld\\n",(long(tmp)<<24) , (long(dataIn(i+5))<<16) , (long(dataIn(i+4))<<8) ,long(dataIn(i+3)));</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-string">               i+=6;</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-string">           }</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"><tt class="py-string">      }else{</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt class="py-string">           // 16 bit mode</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"><tt class="py-string">           char tmp = dataIn(i+2);</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"><tt class="py-string">           current = (long(tmp)<<8) | (long (dataIn(i+1)));</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"><tt class="py-string">//           printf("16 bit int at pos %i, %i, value=%ld was %i %i %i\\n",i,j,current,dataIn(i),dataIn(i+1),dataIn(i+2));</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"><tt class="py-string">           i+=2;</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"><tt class="py-string">      }</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"><tt class="py-string">  }else{</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"><tt class="py-string">      // 8 bit mode</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"><tt class="py-string">      char tmp = dataIn(i) ;</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"><tt class="py-string">      current= long(tmp) ;</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"><tt class="py-string">  }</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line"><tt class="py-string">  last+=current;</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"><tt class="py-string">  dataOut(j)=last;</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"><tt class="py-string">  j++ ;</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"><tt class="py-string">}</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line"><tt class="py-string">return_val=0;</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"><tt class="py-string">     """</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt class="py-name">rc</tt> <tt class="py-op">=</tt> <tt class="py-name">weave</tt><tt class="py-op">.</tt><tt class="py-name">inline</tt><tt class="py-op">(</tt><tt class="py-name">codeC</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">"dataIn"</tt><tt class="py-op">,</tt> <tt class="py-string">"dataOut"</tt><tt class="py-op">,</tt> <tt class="py-string">"n"</tt><tt class="py-op">,</tt>  [...]
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">rc</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt id="link-66" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-66', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"weave binary module return error code %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">rc</tt><tt class="py-op">)</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">dataOut</tt> </tt>
+</div><a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"> </tt>
+<a name="decByteOffet_numpy"></a><div id="decByteOffet_numpy-def"><a name="L218"></a><tt class="py-lineno">218</tt> <a class="py-toggle" href="#" id="decByteOffet_numpy-toggle" onclick="return toggle('decByteOffet_numpy');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#decByteOffet_numpy">decByteOffet_numpy</a><tt class="py-op">(</tt><tt class="py-param">stream</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt [...]
+</div><div id="decByteOffet_numpy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="decByteOffet_numpy-expanded"><a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"><tt class="py-docstring">    Analyze a stream of char with any length of exception:</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"><tt class="py-docstring">                2, 4, or 8 bytes integers</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"><tt class="py-docstring">    @param stream: string representing the compressed data</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-docstring">    @param size: the size of the output array (of longInts)</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-docstring">    @return: 1D-ndarray</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">    <tt id="link-67" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-67', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"CBF decompression using Numpy"</tt><tt class="py-op">)</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">    <tt class="py-name">listnpa</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">    <tt class="py-name">key16</tt> <tt class="py-op">=</tt> <tt class="py-string">"\x80"</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">    <tt class="py-name">key32</tt> <tt class="py-op">=</tt> <tt class="py-string">"\x00\x80"</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">    <tt class="py-name">key64</tt> <tt class="py-op">=</tt> <tt class="py-string">"\x00\x00\x00\x80"</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">    <tt class="py-name">shift</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-name">stream</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-name">key16</tt><tt class="py-op">)</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">idx</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">            <tt class="py-name">listnpa</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"int8"</tt><tt class="py-op">)</tt><tt class="py-op"> [...]
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-name">listnpa</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt [...]
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">stream</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">key32</tt><tt class="py-op">:</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">stream</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">7</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">key64</tt><tt class="py-op">:</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-comment">#                        long int 64 bits</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">                <tt class="py-name">listnpa</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">7</tt><tt class="py-op">:</tt><tt class="py-name"> [...]
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">                                             <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"int64"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">                <tt class="py-name">shift</tt> <tt class="py-op">=</tt> <tt class="py-number">15</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> <tt class="py-comment">#32 bit int</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">                <tt class="py-name">listnpa</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-name"> [...]
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">                                             <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"int32"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">                <tt class="py-name">shift</tt> <tt class="py-op">=</tt> <tt class="py-number">7</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt>  <tt class="py-comment"># int16</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">            <tt class="py-name">listnpa</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-name">idx< [...]
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">                                         <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"int16"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">            <tt class="py-name">shift</tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-name">stream</tt> <tt class="py-op">=</tt> <tt class="py-name">stream</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt> <tt class="py-op">+</tt> <tt class="py-name">shift</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt>  <tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">hstack</tt><tt class="py-op">(</tt><tt class="py-name">listnpa</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int64"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt cla [...]
+</div><a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line"> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line"> </tt>
+<a name="decByteOffet_cython"></a><div id="decByteOffet_cython-def"><a name="L259"></a><tt class="py-lineno">259</tt> <a class="py-toggle" href="#" id="decByteOffet_cython-toggle" onclick="return toggle('decByteOffet_cython');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#decByteOffet_cython">decByteOffet_cython</a><tt class="py-op">(</tt><tt class="py-param">stream</tt><tt class="py-op">,</tt> <tt class="py-param">si [...]
+</div><div id="decByteOffet_cython-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="decByteOffet_cython-expanded"><a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-docstring">    Analyze a stream of char with any length of exception:</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line"><tt class="py-docstring">                2, 4, or 8 bytes integers</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-docstring">    @param stream: string representing the compressed data</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-docstring">    @param size: the size of the output array (of longInts)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"><tt class="py-docstring">    @return: 1D-ndarray</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">    <tt id="link-68" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-68', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"CBF decompression using cython"</tt><tt class="py-op">)</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-69" class="py-name" targets="Package fabio=fabio-module.html"><a title="fabio" class="py-name" href="#" onclick="return doclink('link-69', 'fabio', 'link-69');">fabio</a></tt><tt class="py-op">.</tt><tt id="link-70" class="py-name" targets="Module fabio.byte_offset=fabio.byte_offset-module.html"><a title="fabio.byte_offset" class="py-name" href="#" onclick="return  [...]
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">        <tt id="link-71" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-71', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Failed to import byte_offset cython module, falling back on numpy method"</tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-72" class="py-name"><a title="fabio.compression.decByteOffet_numpy" class="py-name" href="#" onclick="return doclink('link-72', 'decByteOffet_numpy', 'link-61');">decByteOffet_numpy</a></tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt id="link-73" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-73', 'size', 'link-24');">size</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">analyseCython</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt id="link-74" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-74', 'size', 'link-24');">size</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"> </tt>
+<a name="compByteOffet_numpy"></a><div id="compByteOffet_numpy-def"><a name="L278"></a><tt class="py-lineno">278</tt> <a class="py-toggle" href="#" id="compByteOffet_numpy-toggle" onclick="return toggle('compByteOffet_numpy');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#compByteOffet_numpy">compByteOffet_numpy</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="compByteOffet_numpy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="compByteOffet_numpy-expanded"><a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line"><tt class="py-docstring">    Compress a dataset into a string using the byte_offet algorithm</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line"><tt class="py-docstring">    @param data: ndarray</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line"><tt class="py-docstring">    @return: string/bytes with compressed data</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line"><tt class="py-docstring">    test = numpy.array([0,1,2,127,0,1,2,128,0,1,2,32767,0,1,2,32768,0,1,2,2147483647,0,1,2,2147483648,0,1,2,128,129,130,32767,32768,128,129,130,32768,2147483647,2147483648])</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">    <tt class="py-name">flat</tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-75', 'data', 'link-75');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int64"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">ravel</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">    <tt class="py-name">delta</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros_like</tt><tt class="py-op">(</tt><tt class="py-name">flat</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">    <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">flat</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">    <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">flat</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">-</tt> <tt class="py-name">flat</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt c [...]
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">    <tt class="py-name">mask</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">delta</tt> <tt class="py-op">></tt> <tt class="py-number">127</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-name">delta</tt> <tt class="py-op"><</tt> <tt class="py-op">-</tt><tt class="py-number">127</tt><tt class="py-op">)</tt><tt class="py- [...]
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">    <tt class="py-name">exceptions</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">nonzero</tt><tt class="py-op">(</tt><tt class="py-name">mask</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">little_endian</tt><tt class="py-op">:</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">        <tt class="py-name">byteswap</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">        <tt class="py-name">byteswap</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">    <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">    <tt class="py-name">binary_blob</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">stop</tt> <tt class="py-keyword">in</tt> <tt class="py-name">exceptions</tt><tt class="py-op">:</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">stop</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">            <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-name">start</tt><tt class="py-op">:</tt><tt class="py-name">stop</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int8"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-76" class="p [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-76', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt class="py-name">exc</tt> <tt class="py-op">=</tt> <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-name">stop</tt><tt class="py-op">]</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">exc</tt> <tt class="py-op">></tt> <tt class="py-number">2147483647</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">exc</tt> <tt class="py-op"><</tt> <tt class="py-op">-</tt><tt class="py-number">2147483647</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-com [...]
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">            <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-string">"\x80\x00\x80\x00\x00\x00\x80"</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">byteswap</tt><tt class="py-op">:</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">                <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-name">stop</tt><tt class="py-op">:</tt><tt class="py-name">stop</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-77', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">                <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-name">stop</tt><tt class="py-op">:</tt><tt class="py-name">stop</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-78', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">exc</tt> <tt class="py-op">></tt> <tt class="py-number">32767</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">exc</tt> <tt class="py-op"><</tt> <tt class="py-op">-</tt><tt class="py-number">32767</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-comment">#2 [...]
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">            <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-string">"\x80\x00\x80"</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">byteswap</tt><tt class="py-op">:</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">                <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-name">stop</tt><tt class="py-op">:</tt><tt class="py-name">stop</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int32"</tt><tt class="py-o [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-79', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">                <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-name">stop</tt><tt class="py-op">:</tt><tt class="py-name">stop</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int32"</tt><tt class="py-o [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-80', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> <tt class="py-comment">#>127</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">            <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-string">"\x80"</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">byteswap</tt><tt class="py-op">:</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">                <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-name">stop</tt><tt class="py-op">:</tt><tt class="py-name">stop</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int16"</tt><tt class="py-o [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-81', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">                <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-name">stop</tt><tt class="py-op">:</tt><tt class="py-name">stop</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int16"</tt><tt class="py-o [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-82', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">        <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">stop</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">start</tt> <tt class="py-op"><</tt> <tt class="py-name">delta</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-83', 'size', 'link-24');">size</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">        <tt class="py-name">binary_blob</tt> <tt class="py-op">+=</tt> <tt class="py-name">delta</tt><tt class="py-op">[</tt><tt class="py-name">start</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int8"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="fabio.cbfimage. [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-84', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">binary_blob</tt> </tt>
+</div><a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line"> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line"> </tt>
+<a name="decTY1"></a><div id="decTY1-def"><a name="L328"></a><tt class="py-lineno">328</tt> <a class="py-toggle" href="#" id="decTY1-toggle" onclick="return toggle('decTY1');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#decTY1">decTY1</a><tt class="py-op">(</tt><tt class="py-param">raw_8</tt><tt class="py-op">,</tt> <tt class="py-param">raw_16</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op" [...]
+</div><div id="decTY1-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="decTY1-expanded"><a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"><tt class="py-docstring">    Modified byte offset decompressor used in Oxford Diffraction images</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"><tt class="py-docstring">    @param raw_8:  strings containing raw data with integer 8 bits</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line"><tt class="py-docstring">    @param raw_16: strings containing raw data with integer 16 bits</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line"><tt class="py-docstring">    @param raw_32: strings containing raw data with integer 32 bits</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"><tt class="py-docstring">    @return: numpy.ndarray</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">    <tt id="link-85" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-85', 'data', 'link-75');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">raw_8</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"uint8"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt cla [...]
+<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">    <tt id="link-86" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-86', 'data', 'link-75');">data</a></tt> <tt class="py-op">-=</tt> <tt class="py-number">127</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">raw_32</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">        <tt class="py-name">int32</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">raw_32</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"int32"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</ [...]
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">        <tt class="py-name">exception32</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">nonzero</tt><tt class="py-op">(</tt><tt id="link-87" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-87', 'data', 'link-75');">data</a></tt> <tt class="py-op">==</tt> <tt class="py-number">128</tt><tt class="py-op">)</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">raw_16</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">        <tt class="py-name">int16</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">raw_16</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"int16"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</ [...]
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">        <tt class="py-name">exception16</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">nonzero</tt><tt class="py-op">(</tt><tt id="link-88" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-88', 'data', 'link-75');">data</a></tt> <tt class="py-op">==</tt> <tt class="py-number">127</tt><tt class="py-op">)</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">        <tt id="link-89" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-89', 'data', 'link-75');">data</a></tt><tt class="py-op">[</tt><tt class="py-name">exception16</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int16</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">raw_32</tt><tt class="py-op">:</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line">        <tt id="link-90" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-90', 'data', 'link-75');">data</a></tt><tt class="py-op">[</tt><tt class="py-name">exception32</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int32</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">    <tt class="py-name">summed</tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-91', 'data', 'link-75');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">cumsum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">    <tt class="py-name">smax</tt> <tt class="py-op">=</tt> <tt class="py-name">summed</tt><tt class="py-op">.</tt><tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">smax</tt> <tt class="py-op">></tt> <tt class="py-op">(</tt><tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">31</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">        <tt id="link-92" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-92', 'bytecode', 'link-92');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"int64"</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">smax</tt> <tt class="py-op">></tt> <tt class="py-op">(</tt><tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">15</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line">        <tt id="link-93" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-93', 'bytecode', 'link-92');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"int32"</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">smax</tt> <tt class="py-op">></tt> <tt class="py-op">(</tt><tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">7</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">        <tt id="link-94" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-94', 'bytecode', 'link-92');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"int16"</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">        <tt id="link-95" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-95', 'bytecode', 'link-92');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"int8"</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">summed</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt id="link-96" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-96', 'bytecode', 'link-92');">bytecode</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line"><tt class="py-name">decKM4CCD</tt> <tt class="py-op">=</tt> <tt id="link-97" class="py-name" targets="Function fabio.compression.decTY1()=fabio.compression-module.html#decTY1"><a title="fabio.compression.decTY1" class="py-name" href="#" onclick="return doclink('link-97', 'decTY1', 'link-97');">decTY1</a></tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line"> </tt>
+<a name="compTY1"></a><div id="compTY1-def"><a name="L362"></a><tt class="py-lineno">362</tt> <a class="py-toggle" href="#" id="compTY1-toggle" onclick="return toggle('compTY1');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#compTY1">compTY1</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="compTY1-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="compTY1-expanded"><a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line"><tt class="py-docstring">    Modified byte offset compressor used in Oxford Diffraction images</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line"><tt class="py-docstring">    @param data: numpy.ndarray with the input data (integers!)</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line"><tt class="py-docstring">    @return: 3-tuple of strings: raw_8,raw_16,raw_32 containing raw data with integer of the given size</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">    <tt class="py-name">fdata</tt> <tt class="py-op">=</tt> <tt id="link-98" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-98', 'data', 'link-75');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">    <tt class="py-name">diff</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros_like</tt><tt class="py-op">(</tt><tt class="py-name">fdata</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">    <tt class="py-name">diff</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fdata</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">    <tt class="py-name">diff</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fdata</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">-</tt> <tt class="py-name">fdata</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt  [...]
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">    <tt class="py-name">adiff</tt> <tt class="py-op">=</tt> <tt class="py-name">abs</tt><tt class="py-op">(</tt><tt class="py-name">diff</tt><tt class="py-op">)</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">    <tt class="py-name">exception32</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">adiff</tt> <tt class="py-op">></tt> <tt class="py-number">32767</tt><tt class="py-op">)</tt><tt class="py-comment">#2**15-1</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">    <tt class="py-name">exception16</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">adiff</tt> <tt class="py-op">>=</tt> <tt class="py-number">127</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">exception32</tt> <tt class="py-comment">#2**7-1)</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">    <tt class="py-name">we16</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">where</tt><tt class="py-op">(</tt><tt class="py-name">exception16</tt><tt class="py-op">)</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">    <tt class="py-name">we32</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">where</tt><tt class="py-op">(</tt><tt class="py-name">exception32</tt><tt class="py-op">)</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">    <tt class="py-name">raw_16</tt> <tt class="py-op">=</tt> <tt class="py-name">diff</tt><tt class="py-op">[</tt><tt class="py-name">we16</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int16"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-99', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">    <tt class="py-name">raw_32</tt> <tt class="py-op">=</tt> <tt class="py-name">diff</tt><tt class="py-op">[</tt><tt class="py-name">we32</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"int32"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-100', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">    <tt class="py-name">diff</tt><tt class="py-op">[</tt><tt class="py-name">we16</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">127</tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line">    <tt class="py-name">diff</tt><tt class="py-op">[</tt><tt class="py-name">we32</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">128</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">    <tt class="py-name">diff</tt> <tt class="py-op">+=</tt> <tt class="py-number">127</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line">    <tt class="py-name">raw_8</tt> <tt class="py-op">=</tt> <tt class="py-name">diff</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"uint8"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-101', 'tostring', 'link-76');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt>  <tt class="py-name">raw_8</tt><tt class="py-op">,</tt> <tt class="py-name">raw_16</tt><tt class="py-op">,</tt> <tt class="py-name">raw_32</tt> </tt>
+</div><a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line"> </tt>
+<a name="decPCK"></a><div id="decPCK-def"><a name="L387"></a><tt class="py-lineno">387</tt> <a class="py-toggle" href="#" id="decPCK-toggle" onclick="return toggle('decPCK');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#decPCK">decPCK</a><tt class="py-op">(</tt><tt class="py-param">stream</tt><tt class="py-op">,</tt> <tt class="py-param">dim1</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op"> [...]
+</div><div id="decPCK-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="decPCK-expanded"><a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line"><tt class="py-docstring">    Modified CCP4  pck decompressor used in MAR345 images</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line"><tt class="py-docstring">    @param stream: string or file</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line"><tt class="py-docstring">    @return: numpy.ndarray (square array)</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line"> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-102" class="py-name" targets="Module fabio.mar345_IO=fabio.mar345_IO-module.html"><a title="fabio.mar345_IO" class="py-name" href="#" onclick="return doclink('link-102', 'mar345_IO', 'link-102');">mar345_IO</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">uncompress_pck</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to import mar345_IO to read compressed dataset"</tt><tt class="py-op">)</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">"seek"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dir</tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line">        <tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-103', 'seek', 'link-103');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line">        <tt class="py-name">raw</tt> <tt class="py-op">=</tt> <tt class="py-name">stream</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-104', 'read', 'link-9');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line">        <tt class="py-name">raw</tt> <tt class="py-op">=</tt> <tt id="link-105" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-105', 'str', 'link-1');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">stream</tt><tt class="py-op">)</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line"> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">uncompress_pck</tt><tt class="py-op">(</tt><tt class="py-name">raw</tt><tt class="py-op">,</tt> <tt id="link-106" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-106', 'dim1', 'link-106');">dim1</a></tt><tt clas [...]
+</div><a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line"> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line"> </tt>
+<a name="compPCK"></a><div id="compPCK-def"><a name="L409"></a><tt class="py-lineno">409</tt> <a class="py-toggle" href="#" id="compPCK-toggle" onclick="return toggle('compPCK');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.compression-module.html#compPCK">compPCK</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="compPCK-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="compPCK-expanded"><a name="L410"></a><tt class="py-lineno">410</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line"><tt class="py-docstring">    Modified CCP4  pck compressor used in MAR345 images</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt>  <tt class="py-line"><tt class="py-docstring">    @param data: numpy.ndarray (square array)</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line"><tt class="py-docstring">    @return:  compressed stream</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-108" class="py-name"><a title="fabio.mar345_IO" class="py-name" href="#" onclick="return doclink('link-108', 'mar345_IO', 'link-102');">mar345_IO</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">compress_pck</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to import mar345_IO to write compressed dataset"</tt><tt class="py-op">)</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">compress_pck</tt><tt class="py-op">(</tt><tt id="link-109" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-109', 'data', 'link-75');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.converters-module.html b/epydoc/fabio.converters-module.html
new file mode 100644
index 0000000..6564d97
--- /dev/null
+++ b/epydoc/fabio.converters-module.html
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.converters</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module converters
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.converters-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module converters</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.converters-pysrc.html">source code</a></span></p>
+<p>Converter module. This is for the moment empty (populated only with 
+  almost pass through anonymous functions) but aims to be populated with 
+  more sofisticated translators ...</p>
+
+<hr />
+<div class="fields">      <p><strong>Author:</strong>
+        J\xc3\xa9r\xc3\xb4me Kieffer
+      </p>
+      <p><strong>Contact:</strong>
+        jerome.kieffer at esrf.eu
+      </p>
+      <p><strong>Copyright:</strong>
+        European Synchrotron Radiation Facility, Grenoble, France
+      </p>
+      <p><strong>License:</strong>
+        GPLv3+
+      </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="convert_data_integer"></a><span class="summary-sig-name">convert_data_integer</span>(<span class="summary-sig-arg">data</span>)</span><br />
+      convert data to integer</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.converters-pysrc.html#convert_data_integer">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.converters-module.html#convert_data" class="summary-sig-name">convert_data</a>(<span class="summary-sig-arg">inp</span>,
+        <span class="summary-sig-arg">outp</span>,
+        <span class="summary-sig-arg">data</span>)</span><br />
+      Return data converted to the output format ...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.converters-pysrc.html#convert_data">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.converters-module.html#convert_header" class="summary-sig-name">convert_header</a>(<span class="summary-sig-arg">inp</span>,
+        <span class="summary-sig-arg">outp</span>,
+        <span class="summary-sig-arg">header</span>)</span><br />
+      return header converted to the output format</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.converters-pysrc.html#convert_header">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("converter")">logging.getLogger("converter")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.converters-module.html#CONVERSION_HEADER" class="summary-name">CONVERSION_HEADER</a> = <code title="{('edfimage', 'edfimage'): <function <lambda> at 0x2136500>}"><code class="variable-group">{</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">edfimage</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string"> [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.converters-module.html#CONVERSION_DATA" class="summary-name">CONVERSION_DATA</a> = <code title="{("edfimage", "edfimage"): lambda data: data, ("edfimage", "cbfimage")\
+: convert_data_integer, ("edfimage", "mar345image"): convert_data_inte\
+ger, ("edfimage", "fit2dmaskimage"): convert_data_integer, ("edfimage"\
+, "kcdimage"): convert_data_integer, ("edfimage", "OXDimage"): convert\
+_data_integer, ("edfimage", "pnmimage"): convert_data_integer,}"><code class="variable-group">{</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">edfimage</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">OXDimage</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-o [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Function Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-FunctionDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="convert_data"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">convert_data</span>(<span class="sig-arg">inp</span>,
+        <span class="sig-arg">outp</span>,
+        <span class="sig-arg">data</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.converters-pysrc.html#convert_data">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Return data converted to the output format ... over-simplistic 
+  implementation for the moment ...</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>inp</code></strong>, <strong class="pname"><code>outp</code></strong> - input/output format like "cbfimage"</li>
+        <li><strong class="pname"><code>data(ndarray)</code></strong> - the actual dataset to be transformed</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="convert_header"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">convert_header</span>(<span class="sig-arg">inp</span>,
+        <span class="sig-arg">outp</span>,
+        <span class="sig-arg">header</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.converters-pysrc.html#convert_header">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>return header converted to the output format</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>inp</code></strong>, <strong class="pname"><code>outp</code></strong> - input/output format like "cbfimage"</li>
+        <li><strong class="pname"><code>header(dict)</code></strong> - the actual set of headers to be transformed</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="CONVERSION_HEADER"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">CONVERSION_HEADER</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">edfimage</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">edfimage</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code><function <lambda> at 0x2136500><code class="variable-group"> [...]
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="CONVERSION_DATA"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">CONVERSION_DATA</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+{("edfimage", "edfimage"): lambda data: data, ("edfimage", "cbfimage")<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+: convert_data_integer, ("edfimage", "mar345image"): convert_data_inte<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+ger, ("edfimage", "fit2dmaskimage"): convert_data_integer, ("edfimage"<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+, "kcdimage"): convert_data_integer, ("edfimage", "OXDimage"): convert<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+_data_integer, ("edfimage", "pnmimage"): convert_data_integer,}
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.converters-pysrc.html b/epydoc/fabio.converters-pysrc.html
new file mode 100644
index 0000000..01d499a
--- /dev/null
+++ b/epydoc/fabio.converters-pysrc.html
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.converters</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module converters
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.converters-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.converters-module.html">Module fabio.converters</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python </tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-docstring">Converter module. </tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-docstring">This is for the moment empty (populated only with almost pass through anonymous functions)</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-docstring">but aims to be populated with more sofisticated translators ...  </tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">"Jérôme Kieffer"</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-name">__contact__</tt> <tt class="py-op">=</tt> <tt class="py-string">"jerome.kieffer at esrf.eu"</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> <tt class="py-string">"GPLv3+"</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-name">__copyright__</tt> <tt class="py-op">=</tt> <tt class="py-string">"European Synchrotron Radiation Facility, Grenoble, France"</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">types</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bruk [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"converter"</tt><tt class="py-op">)</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"> </tt>
+<a name="convert_data_integer"></a><div id="convert_data_integer-def"><a name="L17"></a><tt class="py-lineno">17</tt> <a class="py-toggle" href="#" id="convert_data_integer-toggle" onclick="return toggle('convert_data_integer');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.converters-module.html#convert_data_integer">convert_data_integer</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="convert_data_integer-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="convert_data_integer-expanded"><a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-docstring">    convert data to integer</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-1', 'data', 'link-1');">data</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-2" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-2', 'data', 'link-1');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">)</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-3', 'data', 'link-1');">data</a></tt> </tt>
+</div><a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable fabio.converters.CONVERSION_HEADER=fabio.converters-module.html#CONVERSION_HEADER"><a title="fabio.converters.CONVERSION_HEADER" class="py-name" href="#" onclick="return doclink('link-4', 'CONVERSION_HEADER', 'link-4');">CONVERSION_HEADER</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">                     <tt class="py-op">(</tt><tt class="py-string">"edfimage"</tt><tt class="py-op">,</tt> <tt class="py-string">"edfimage"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">lambda</tt> <tt id="link-5" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" oncl [...]
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">                     <tt class="py-op">}</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable fabio.converters.CONVERSION_DATA=fabio.converters-module.html#CONVERSION_DATA"><a title="fabio.converters.CONVERSION_DATA" class="py-name" href="#" onclick="return doclink('link-7', 'CONVERSION_DATA', 'link-7');">CONVERSION_DATA</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">                   <tt class="py-op">(</tt><tt class="py-string">"edfimage"</tt><tt class="py-op">,</tt> <tt class="py-string">"edfimage"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">lambda</tt> <tt id="link-8" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-8', 'data', 'link-1');">data</a></tt><tt class="py-op">:</tt><tt id="link-9" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-9', 'data', 'link-1');">data</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">                   <tt class="py-op">(</tt><tt class="py-string">"edfimage"</tt><tt class="py-op">,</tt> <tt class="py-string">"cbfimage"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt id="link-10" class="py-name" targets="Function fabio.converters.convert_data_integer()=fabio.converters-module.html#convert_data_integer"><a title="fabio.converters.convert_data_integer" class="py-name" href="#" onclick="return  [...]
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">                   <tt class="py-op">(</tt><tt class="py-string">"edfimage"</tt><tt class="py-op">,</tt> <tt class="py-string">"mar345image"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt id="link-11" class="py-name"><a title="fabio.converters.convert_data_integer" class="py-name" href="#" onclick="return doclink('link-11', 'convert_data_integer', 'link-10');">convert_data_integer</a></tt><tt class="py-op">,</ [...]
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">                   <tt class="py-op">(</tt><tt class="py-string">"edfimage"</tt><tt class="py-op">,</tt> <tt class="py-string">"fit2dmaskimage"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt id="link-12" class="py-name"><a title="fabio.converters.convert_data_integer" class="py-name" href="#" onclick="return doclink('link-12', 'convert_data_integer', 'link-10');">convert_data_integer</a></tt><tt class="py-op"> [...]
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">                   <tt class="py-op">(</tt><tt class="py-string">"edfimage"</tt><tt class="py-op">,</tt> <tt class="py-string">"kcdimage"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt id="link-13" class="py-name"><a title="fabio.converters.convert_data_integer" class="py-name" href="#" onclick="return doclink('link-13', 'convert_data_integer', 'link-10');">convert_data_integer</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">                   <tt class="py-op">(</tt><tt class="py-string">"edfimage"</tt><tt class="py-op">,</tt> <tt class="py-string">"OXDimage"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt id="link-14" class="py-name"><a title="fabio.converters.convert_data_integer" class="py-name" href="#" onclick="return doclink('link-14', 'convert_data_integer', 'link-10');">convert_data_integer</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">                   <tt class="py-op">(</tt><tt class="py-string">"edfimage"</tt><tt class="py-op">,</tt> <tt class="py-string">"pnmimage"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt id="link-15" class="py-name"><a title="fabio.converters.convert_data_integer" class="py-name" href="#" onclick="return doclink('link-15', 'convert_data_integer', 'link-10');">convert_data_integer</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">                   <tt class="py-op">}</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"> </tt>
+<a name="convert_data"></a><div id="convert_data-def"><a name="L40"></a><tt class="py-lineno">40</tt> <a class="py-toggle" href="#" id="convert_data-toggle" onclick="return toggle('convert_data');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.converters-module.html#convert_data">convert_data</a><tt class="py-op">(</tt><tt class="py-param">inp</tt><tt class="py-op">,</tt> <tt class="py-param">outp</tt><tt class="py-op">,</tt> <tt class="py-pa [...]
+</div><div id="convert_data-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="convert_data-expanded"><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line"><tt class="py-docstring">    Return data converted to the output format ... over-simplistic implementation for the moment ...</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line"><tt class="py-docstring">    @param inp,outp: input/output format like "cbfimage"</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"><tt class="py-docstring">    @param data(ndarray): the actual dataset to be transformed</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-16" class="py-name"><a title="fabio.converters.CONVERSION_DATA" class="py-name" href="#" onclick="return doclink('link-16', 'CONVERSION_DATA', 'link-7');">CONVERSION_DATA</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">inp</tt><tt class="py-op">,</tt> <tt class="py-name">outp</tt><tt class= [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-17', 'data', 'link-1');">data</a></tt><tt class="py-op">:</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-18', 'data', 'link-1');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">(</tt><tt id="link-19" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-19', 'data', 'link-1');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line"> </tt>
+<a name="convert_header"></a><div id="convert_header-def"><a name="L48"></a><tt class="py-lineno">48</tt> <a class="py-toggle" href="#" id="convert_header-toggle" onclick="return toggle('convert_header');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.converters-module.html#convert_header">convert_header</a><tt class="py-op">(</tt><tt class="py-param">inp</tt><tt class="py-op">,</tt> <tt class="py-param">outp</tt><tt class="py-op">,</tt> <tt  [...]
+</div><div id="convert_header-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="convert_header-expanded"><a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt class="py-docstring">    return header converted to the output format</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-docstring">    @param inp,outp: input/output format like "cbfimage"</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"><tt class="py-docstring">    @param header(dict):the actual set of headers to be transformed </tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-20" class="py-name"><a title="fabio.converters.CONVERSION_HEADER" class="py-name" href="#" onclick="return doclink('link-20', 'CONVERSION_HEADER', 'link-4');">CONVERSION_HEADER</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">inp</tt><tt class="py-op">,</tt> <tt class="py-name">outp</tt><tt  [...]
+</div><a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.datIO-module.html b/epydoc/fabio.datIO-module.html
new file mode 100644
index 0000000..05ee176
--- /dev/null
+++ b/epydoc/fabio.datIO-module.html
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.datIO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module datIO
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.datIO-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module datIO</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.datIO-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:erik.knudsen at risoe.dk
+         
+         and Jon Wright, ESRF
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.datIO.fabiodata-class.html" class="summary-name">fabiodata</a><br />
+      A common class for dataIO in fable Contains a 2d numpy array for 
+        keeping data, and two lists (clabels and rlabels) containing labels
+        for columns and rows respectively
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.datIO.columnfile-class.html" class="summary-name">columnfile</a><br />
+      Concrete fabiodata class
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code><br />
+      hash(x)
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.datIO-pysrc.html b/epydoc/fabio.datIO-pysrc.html
new file mode 100644
index 0000000..12a537c
--- /dev/null
+++ b/epydoc/fabio.datIO-pysrc.html
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.datIO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module datIO
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.datIO-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.datIO-module.html">Module fabio.datIO</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-docstring">         Center for Fundamental Research: Metal Structures in Four Dimensions</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-docstring">         Risoe National Laboratory</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-docstring">         Frederiksborgvej 399</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-docstring">         DK-4000 Roskilde</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-docstring">         email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-docstring">         </tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-docstring">         and Jon Wright, ESRF</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"> </tt>
+<a name="fabiodata"></a><div id="fabiodata-def"><a name="L14"></a><tt class="py-lineno">14</tt> <a class="py-toggle" href="#" id="fabiodata-toggle" onclick="return toggle('fabiodata');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.datIO.fabiodata-class.html">fabiodata</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabiodata-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="fabiodata-expanded"><a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-docstring">    A common class for dataIO in fable</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-docstring">    Contains a 2d numpy array for keeping data, and two lists (clabels and rlabels)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-docstring">    containing labels for columns and rows respectively</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"> </tt>
+<a name="fabiodata.__init__"></a><div id="fabiodata.__init__-def"><a name="L21"></a><tt class="py-lineno">21</tt> <a class="py-toggle" href="#" id="fabiodata.__init__-toggle" onclick="return toggle('fabiodata.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.datIO.fabiodata-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op [...]
+</div><div id="fabiodata.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="fabiodata.__init__-expanded"><a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-docstring">        set up initial values</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt id="link-0" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-0', 'data', 'link-0');">data</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">"string"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"fabioimage.__init__ bad argument - "</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">                                <tt class="py-string">"data should be numpy array"</tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-1', 'data', 'link-0');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-2', 'data', 'link-0');">data</a></tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-3', 'data', 'link-0');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Variable fabio.edfimage.edfimage.dims=fabio.edfimage.edfimage-class.html#dims"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-4', 'dims', 'link-4');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-n [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-5', 'data', 'link-0');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clabels</tt> <tt class="py-op">=</tt> <tt class="py-name">clabels</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rlabels</tt> <tt class="py-op">=</tt> <tt class="py-name">rlabels</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.OXDimage.read()=fabio.OXDimage.OXDimage-class.html#re [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-6', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"> </tt>
+<a name="fabiodata.read"></a><div id="fabiodata.read-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="fabiodata.read-toggle" onclick="return toggle('fabiodata.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.datIO.fabiodata-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">=</tt><tt class="py-n [...]
+</div><div id="fabiodata.read-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="fabiodata.read-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"><tt class="py-docstring">        To be overridden by format specific subclasses</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Class has not implemented read method yet"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line"><tt class="py-comment">#import stuff from Jon's columnfile things</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line"> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"> </tt>
+<a name="columnfile"></a><div id="columnfile-def"><a name="L45"></a><tt class="py-lineno">45</tt> <a class="py-toggle" href="#" id="columnfile-toggle" onclick="return toggle('columnfile');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.datIO.columnfile-class.html">columnfile</a><tt class="py-op">(</tt><tt class="py-base-class">fabiodata</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="columnfile-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="columnfile-expanded"><a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">    <tt class="py-docstring">"Concrete fabiodata class"</tt> </tt>
+<a name="columnfile.read"></a><div id="columnfile.read-def"><a name="L47"></a><tt class="py-lineno">47</tt> <a class="py-toggle" href="#" id="columnfile.read-toggle" onclick="return toggle('columnfile.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.datIO.columnfile-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class [...]
+</div><div id="columnfile.read-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="columnfile.read-expanded"><a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Module fabio.cf_io=fabio.cf_io-module.html"><a title="fabio.cf_io" class="py-name" href="#" onclick="return doclink('link-7', 'cf_io', 'link-7');">cf_io</a></tt> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">            <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"columnfile: file"</tt> <tt class="py-op">+</tt> <tt id="link-8" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-8', 'str', 'link-8');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"not found."</tt><tt class="py-op">)</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-9', 'data', 'link-0');">data</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">clabels</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt id="link-10" class="py-name"><a title="fabio.cf_io" class="py-name" href="#" onclick="return doclink('link-10', 'cf_io', 'link-7');">cf_io</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-11', 'read', 'link-6');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"columnfile: read error, file "</tt> <tt class="py-op">+</tt> <tt id="link-12" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-12', 'str', 'link-8');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">" possibly corrupt"</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-13', 'dims', 'link-4');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-14', 'data', 'link-0');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.datIO.columnfile-class.html b/epydoc/fabio.datIO.columnfile-class.html
new file mode 100644
index 0000000..b85ecf2
--- /dev/null
+++ b/epydoc/fabio.datIO.columnfile-class.html
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.datIO.columnfile</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.datIO-module.html">Module datIO</a> ::
+        Class columnfile
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.datIO.columnfile-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class columnfile</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.datIO-pysrc.html#columnfile">source code</a></span></p>
+<pre class="base-tree">
+object --+    
+         |    
+ <a href="fabio.datIO.fabiodata-class.html">fabiodata</a> --+
+             |
+            <strong class="uidshort">columnfile</strong>
+</pre>
+
+<hr />
+<p>Concrete fabiodata class</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.datIO.columnfile-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      To be overridden by format specific subclasses</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.datIO-pysrc.html#columnfile.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.datIO.fabiodata-class.html">fabiodata</a></code></b>:
+      <code><a href="fabio.datIO.fabiodata-class.html#__init__">__init__</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.datIO-pysrc.html#columnfile.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>To be overridden by format specific subclasses</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.datIO.fabiodata-class.html#read">fabiodata.read</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.datIO.fabiodata-class.html b/epydoc/fabio.datIO.fabiodata-class.html
new file mode 100644
index 0000000..d3c3c06
--- /dev/null
+++ b/epydoc/fabio.datIO.fabiodata-class.html
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.datIO.fabiodata</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.datIO-module.html">Module datIO</a> ::
+        Class fabiodata
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.datIO.fabiodata-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class fabiodata</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.datIO-pysrc.html#fabiodata">source code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">fabiodata</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="fabio.datIO.columnfile-class.html">columnfile</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>A common class for dataIO in fable Contains a 2d numpy array for 
+  keeping data, and two lists (clabels and rlabels) containing labels for 
+  columns and rows respectively</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.datIO.fabiodata-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">clabels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">rlabels</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">fname</span>=<span class="summary-sig-default">None</span>)</span><br />
+      set up initial values</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.datIO-pysrc.html#fabiodata.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="read"></a><span class="summary-sig-name">read</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      To be overridden by format specific subclasses</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.datIO-pysrc.html#fabiodata.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">clabels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">rlabels</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">fname</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.datIO-pysrc.html#fabiodata.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>set up initial values</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.dm3image-module.html b/epydoc/fabio.dm3image-module.html
new file mode 100644
index 0000000..8bd5dbf
--- /dev/null
+++ b/epydoc/fabio.dm3image-module.html
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.dm3image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module dm3image
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.dm3image-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module dm3image</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.dm3image-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:erik.knudsen at risoe.dk
+
+        + Jon Wright, ESRF
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.dm3image.dm3image-class.html" class="summary-name">dm3image</a><br />
+      Read and try to write the dm3 data format
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("dm3image")">logging.getLogger("dm3image")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.dm3image-module.html#DATA_TYPES" class="summary-name">DATA_TYPES</a> = <code title="{2: <type 'numpy.int16'>,
+ 3: <type 'numpy.int32'>,
+ 4: <type 'numpy.uint16'>,
+ 5: <type 'numpy.uint32'>,
+ 6: <type 'numpy.float32'>,
+ 7: <type 'float'>,
+ 8: <type 'numpy.int8'>,
+ 9: None,
+..."><code class="variable-group">{</code>2<code class="variable-op">: </code><type 'numpy.int16'><code class="variable-op">, </code>3<code class="variable-op">: </code><type 'numpy.int32'><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.dm3image-module.html#DATA_BYTES" class="summary-name">DATA_BYTES</a> = <code title="{2: 2,
+ 3: 4,
+ 4: 2,
+ 5: 4,
+ 6: 4,
+ 7: 8,
+ 8: 1,
+ 9: None,
+..."><code class="variable-group">{</code>2<code class="variable-op">: </code>2<code class="variable-op">, </code>3<code class="variable-op">: </code>4<code class="variable-op">, </code>4<code class="variable-op">: </code>2<code class="variable-op">, </code>5<code class="variable-op">: </code>4<code class="variable-op">, </code>6<code class="variable-op">: </code>4<code class="variable-op">, </code>7<code class="variable-op">: </code>8<code class="variable-op">, </code>8<code class="vari [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="DATA_TYPES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">DATA_TYPES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>2<code class="variable-op">: </code><type 'numpy.int16'><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><type 'numpy.int32'><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><type 'numpy.uint16'><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><type 'numpy.uint32'><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><type 'numpy.float32'><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><type 'float'><code class="variable-op">,</code>
+ 8<code class="variable-op">: </code><type 'numpy.int8'><code class="variable-op">,</code>
+ 9<code class="variable-op">: </code>None<code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="DATA_BYTES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">DATA_BYTES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>2<code class="variable-op">: </code>2<code class="variable-op">,</code>
+ 3<code class="variable-op">: </code>4<code class="variable-op">,</code>
+ 4<code class="variable-op">: </code>2<code class="variable-op">,</code>
+ 5<code class="variable-op">: </code>4<code class="variable-op">,</code>
+ 6<code class="variable-op">: </code>4<code class="variable-op">,</code>
+ 7<code class="variable-op">: </code>8<code class="variable-op">,</code>
+ 8<code class="variable-op">: </code>1<code class="variable-op">,</code>
+ 9<code class="variable-op">: </code>None<code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.dm3image-pysrc.html b/epydoc/fabio.dm3image-pysrc.html
new file mode 100644
index 0000000..85b56c7
--- /dev/null
+++ b/epydoc/fabio.dm3image-pysrc.html
@@ -0,0 +1,831 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.dm3image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module dm3image
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.dm3image-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.dm3image-module.html">Module fabio.dm3image</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">         Center for Fundamental Research: Metal Structures in Four Dimensions</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">         Risoe National Laboratory</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">         Frederiksborgvej 399</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">         DK-4000 Roskilde</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">         email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">        + Jon Wright, ESRF</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-0', 'fabioimage', 'link-0');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-0');">fabioimage</a></tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-2', 'logger', 'link-2');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"dm3image"</tt><tt class="py-op">)</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable fabio.cbfimage.DATA_TYPES=fabio.cbfimage-module.html#DATA_TYPES,Variable fabio.dm3image.DATA_TYPES=fabio.dm3image-module.html#DATA_TYPES,Variable fabio.edfimage.DATA_TYPES=fabio.edfimage-module.html#DATA_TYPES,Variable fabio.kcdimage.DATA_TYPES=fabio.kcdimage-module.html#DATA_TYPES"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-3', 'DATA_TYPES', 'link-3');">DATA_TYPES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt>  <tt class="py-number">2</tt>     <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int16</tt><tt class="py-op">,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line">                <tt class="py-number">4</tt>     <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">,</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">                <tt class="py-number">3</tt>     <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">                <tt class="py-number">5</tt>     <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">,</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">                <tt class="py-number">6</tt>     <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">                <tt class="py-number">7</tt>     <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float</tt><tt class="py-op">,</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">                <tt class="py-number">8</tt>     <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int8</tt><tt class="py-op">,</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">                <tt class="py-number">9</tt>     <tt class="py-op">:</tt>  <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">                <tt class="py-number">10</tt>    <tt class="py-op">:</tt>  <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">                <tt class="py-number">15</tt>    <tt class="py-op">:</tt>  <tt class="py-string">'Struct'</tt><tt class="py-op">,</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">                <tt class="py-number">18</tt>    <tt class="py-op">:</tt>  <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">                <tt class="py-number">20</tt>    <tt class="py-op">:</tt>  <tt class="py-name">None</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">                <tt class="py-op">}</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable fabio.dm3image.DATA_BYTES=fabio.dm3image-module.html#DATA_BYTES"><a title="fabio.dm3image.DATA_BYTES" class="py-name" href="#" onclick="return doclink('link-4', 'DATA_BYTES', 'link-4');">DATA_BYTES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt>  <tt class="py-number">2</tt>     <tt class="py-op">:</tt>  <tt class="py-number">2</tt><tt class="py-op">,</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">                <tt class="py-number">4</tt>     <tt class="py-op">:</tt>  <tt class="py-number">2</tt><tt class="py-op">,</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">                <tt class="py-number">3</tt>     <tt class="py-op">:</tt>  <tt class="py-number">4</tt><tt class="py-op">,</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">                <tt class="py-number">5</tt>     <tt class="py-op">:</tt>  <tt class="py-number">4</tt><tt class="py-op">,</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">                <tt class="py-number">6</tt>     <tt class="py-op">:</tt>  <tt class="py-number">4</tt><tt class="py-op">,</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">                <tt class="py-number">7</tt>     <tt class="py-op">:</tt>  <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">                <tt class="py-number">8</tt>     <tt class="py-op">:</tt>  <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">                <tt class="py-number">9</tt>     <tt class="py-op">:</tt>  <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">                <tt class="py-number">10</tt>    <tt class="py-op">:</tt>  <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                <tt class="py-number">15</tt>    <tt class="py-op">:</tt>  <tt class="py-string">'Struct'</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">                <tt class="py-number">18</tt>    <tt class="py-op">:</tt>  <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">                <tt class="py-number">20</tt>    <tt class="py-op">:</tt>  <tt class="py-name">None</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">                <tt class="py-op">}</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
+<a name="dm3image"></a><div id="dm3image-def"><a name="L46"></a><tt class="py-lineno"> 46</tt> <a class="py-toggle" href="#" id="dm3image-toggle" onclick="return toggle('dm3image');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.dm3image.dm3image-class.html">dm3image</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="dm3image-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="dm3image-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-docstring">""" Read and try to write the dm3 data format """</tt> </tt>
+<a name="dm3image.__init__"></a><div id="dm3image.__init__-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="dm3image.__init__-toggle" onclick="return toggle('dm3image.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.dm3image.dm3image-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">ar [...]
+</div><div id="dm3image.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="dm3image.__init__-expanded"><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt id="link-5" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-5', 'fabioimage', 'link-0');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fabio.adscimage.adscimage-class.html#__init__,Method fabio.binaryimage.binaryimage.__ini [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-6', '__init__', 'link-6');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">encoded_datatype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">no_data_elements</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">grouptag_is_sorted</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">grouptag_is_open</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_data_type</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_is_data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">grouptag_no_tags</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bytes_in_file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_label_length</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">go_on</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
+<a name="dm3image._readheader"></a><div id="dm3image._readheader-def"><a name="L62"></a><tt class="py-lineno"> 62</tt> <a class="py-toggle" href="#" id="dm3image._readheader-toggle" onclick="return toggle('dm3image._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.dm3image.dm3image-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="dm3image._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="dm3image._readheader-expanded"><a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.see [...]
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-name">file_format</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method fabio.dm3image.dm3image.readbytes()=fabio.dm3image.dm3image-class.html#readbytes"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-8', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</t [...]
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">file_format</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-string">'Wrong file type '</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bytes_in_file</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-9', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py [...]
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">byte_order</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-10', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py- [...]
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">'read dm3 file - file format '</tt><tt class="py-op">,</tt> <tt class="py-name">file_format</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">'Bytes in file : '</tt> <tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bytes_in_file</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-string">'Byte order :'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">byte_order</tt><tt class="py-op">,</tt> <tt class="py-string">'  - 0 = bigEndian , 1 = littleEndian'</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">byte_order</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">swap</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">byte_order</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">swap</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt> </tt>
+</div><a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"> </tt>
+<a name="dm3image.read"></a><div id="dm3image.read-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="dm3image.read-toggle" onclick="return toggle('dm3image.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.dm3image.dm3image-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py-p [...]
+</div><div id="dm3image.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="dm3image.read-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-11', 'head [...]
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-12', 'resetvals', 'link-12');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-13', '_open', 'link- [...]
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._rea [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-14', '_readheader', 'link-14');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">go_on</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">go_on</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">go_on</tt><tt class="py-op">:</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method fabio.dm3image.dm3image.read_tag_group()=fabio.dm3image.dm3image-class.html#read_tag_group"><a title="fabio.dm3image.dm3image.read_tag_group" class="py-name" href="#" onclick="return doclink('link-15', 'read_tag_group', 'link-15');">read_tag_group</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method fabio.dm3image.dm3image.read_tag_entry()=fabio.dm3image.dm3image-class.html#read_tag_entry"><a title="fabio.dm3image.dm3image.read_tag_entry" class="py-name" href="#" onclick="return doclink('link-16', 'read_tag_entry', 'link-16');">read_tag_entry</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bytes_in_file</tt><tt class="py-op">:</tt> <tt class="py-keyword">break</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">            <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_is_data</tt> <tt class="py-op">==</tt> <tt class="py-number">21</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="fabio.dm3image.dm3image.read_tag_entry" class="py-name" href="#" onclick="return doclink('link-17', 'read_tag_entry', 'link-16');">read_tag_entry</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bytes_in_file</tt><tt class="py-op">:</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">go_on</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">dim1_raw</tt><tt class="py-op">,</tt> <tt class="py-name">dim2_raw</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-18', 'header', 'link-11');">header</a></tt><tt class="py-op">[</tt [...]
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">dim1_raw</tt><tt class="py-op">,</tt> <tt class="py-name">dim2_raw</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-name">dim1_raw</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-name">dim2_raw</tt><tt  [...]
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">dim1_binning</tt><tt class="py-op">,</tt> <tt class="py-name">dim2_binning</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-19', 'header', 'link-11');">header</a></tt><tt class="py-o [...]
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">dim1_binning</tt><tt class="py-op">,</tt> <tt class="py-name">dim2_binning</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-name">dim1_binning</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-name">dim2_ [...]
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-20', 'dim1', 'link-20');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dim1_raw</tt> <tt class="py-op">/</tt> <tt class="py-name"> [...]
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-21', 'dim2', 'link-21');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dim2_raw</tt> <tt class="py-op">/</tt> <tt class="py-name"> [...]
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-comment">#print dim1,dim2</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-22', 'header', 'link-11');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'Data'</tt><tt class="py-op">)</tt><tt class="py-op">: [...]
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-23', 'data', 'link-23');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-24', 'header', 'link-11');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Data'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class=" [...]
+</div><a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"> </tt>
+<a name="dm3image.readbytes"></a><div id="dm3image.readbytes-def"><a name="L106"></a><tt class="py-lineno">106</tt> <a class="py-toggle" href="#" id="dm3image.readbytes-toggle" onclick="return toggle('dm3image.readbytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.dm3image.dm3image-class.html#readbytes">readbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">bytes_to_read</tt>< [...]
+</div><div id="dm3image.readbytes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="dm3image.readbytes-expanded"><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-name">raw</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#r [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-27', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">bytes_to_read</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">format</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt id="link-28" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-28', 'data', 'link-23');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">raw</tt><tt class="py-op">,</tt> <tt class="py-name">format</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">            <tt id="link-29" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-29', 'data', 'link-23');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">raw</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">swap</tt><tt class="py-op">:</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt id="link-30" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-30', 'data', 'link-23');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-31', 'data', 'link-23');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-32" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-32', 'data', 'link-23');">data</a></tt> </tt>
+</div><a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"> </tt>
+<a name="dm3image.read_tag_group"></a><div id="dm3image.read_tag_group-def"><a name="L118"></a><tt class="py-lineno">118</tt> <a class="py-toggle" href="#" id="dm3image.read_tag_group-toggle" onclick="return toggle('dm3image.read_tag_group');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.dm3image.dm3image-class.html#read_tag_group">read_tag_group</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class=" [...]
+</div><div id="dm3image.read_tag_group-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="dm3image.read_tag_group-expanded"><a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">grouptag_is_sorted</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-33', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt c [...]
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">grouptag_is_open</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-34', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt cla [...]
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">grouptag_no_tags</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-35', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt cla [...]
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt id="link-36" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-36', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'TagGroup is sorted? %s'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">grouptag_is_sorted</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt id="link-37" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-37', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'TagGroup is open? %s'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">grouptag_is_open</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt id="link-38" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-38', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'no of tags in TagGroup %s'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">grouptag_no_tags</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"> </tt>
+<a name="dm3image.read_tag_entry"></a><div id="dm3image.read_tag_entry-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="dm3image.read_tag_entry-toggle" onclick="return toggle('dm3image.read_tag_entry');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.dm3image.dm3image-class.html#read_tag_entry">read_tag_entry</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class=" [...]
+</div><div id="dm3image.read_tag_entry-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="dm3image.read_tag_entry-expanded"><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_is_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-39', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="p [...]
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_label_length</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-40', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt cla [...]
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt id="link-41" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-41', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'does Tag have data ? %s  -  20 = Tag group , 21 = data '</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_is_data</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt id="link-42" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-42', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'length of tag_label '</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_label_length</tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_label_length</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt class="py-name">tag_label</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-43', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_label_length</tt><tt class="py-op">)</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-name">tag_label</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_is_data</tt> <tt class="py-op">==</tt> <tt class="py-number">21</tt><tt class="py-op">:</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">            <tt class="py-comment"># This is data</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-44', 'header', 'link-11');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_label</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class [...]
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">            <tt id="link-46" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-46', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"%s: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">tag_label</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclin [...]
+</div><a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
+<a name="dm3image.read_tag_type"></a><div id="dm3image.read_tag_type-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="dm3image.read_tag_type-toggle" onclick="return toggle('dm3image.read_tag_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.dm3image.dm3image-class.html#read_tag_type">read_tag_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op" [...]
+</div><div id="dm3image.read_tag_type-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="dm3image.read_tag_type-expanded"><a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-48', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'%%%%'</tt><tt class="py-op">:</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_data_type</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-49', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class= [...]
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt id="link-50" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-50', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'data is of type : %s  - 1 = simple, 2= string, 3 = array, >3 structs'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_data_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-51', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt cla [...]
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt id="link-52" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-52', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'encode type: %s %s'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt><tt class="py-op">,</tt> <tt id="link-53" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-53', 'DATA_TYPES', 'link-3');">DATA_TYPES</a></tt><tt class="py-op">[</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_data_type</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">            <tt class="py-comment"># simple type</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-54', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt id="link-55" class="py-name"><a title="fabio.dm3image.DATA_BYTES" class="py-name" href="#" onclick="return docli [...]
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">                                  <tt id="link-56" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-56', 'DATA_TYPES', 'link-3');">DATA_TYPES</a></tt><tt class="py-op">[</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">                                  <tt class="py-name">swap</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">swap</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-comment"># are the data stored in a simple array?</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt> <tt class="py-op">==</tt> <tt class="py-number">20</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_data_type</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt> <tt class="py-op">:</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data_type</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-57', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class= [...]
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">no_data_elements</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-58', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt [...]
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data_type</tt> <tt class="py-op">==</tt> <tt class="py-number">10</tt><tt class="py-op">:</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">                <tt id="link-59" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-59', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'skip bytes %s'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">no_data_elements</tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">                <tt class="py-name">dump</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-60', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">no_data_elements</tt><tt class="py-op">)</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">            <tt id="link-61" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-61', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Data are stored as a simple a array -'</tt><tt class="py-op">)</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">            <tt id="link-62" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-62', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'%s data elemets stored as %s'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">no_data_elements</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data_type</tt><tt cl [...]
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">            <tt class="py-name">read_no_bytes</tt> <tt class="py-op">=</tt> <tt id="link-63" class="py-name"><a title="fabio.dm3image.DATA_BYTES" class="py-name" href="#" onclick="return doclink('link-63', 'DATA_BYTES', 'link-4');">DATA_BYTES</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data_type</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class [...]
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">            <tt class="py-name">format</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-64', 'DATA_TYPES', 'link-3');">DATA_TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data_type</tt><tt class="py-op">]</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-65', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-name">read_no_bytes</tt><tt class="py-op">,</tt> <tt class="py-name">format</tt><tt class="py-op">,</t [...]
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-comment"># are the data stored in a complex array ?</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-comment"># print 'tag_type + data_type', self.tag_encoded_type,self.tag_data_type</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt class="py-comment">#print self.tag_encoded_type , self.tag_data_type </tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt> <tt class="py-op">==</tt> <tt class="py-number">20</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_data_type</tt> <tt class="py-op">></tt> <tt class="py-number">3</tt> <tt class="py-op">:</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-66', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt [...]
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">            <tt id="link-67" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-67', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'found array - new tag_encoded_type %s'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt> <tt class="py-op">==</tt> <tt class="py-number">15</tt><tt class="py-op">:</tt>            <tt class="py-comment"># struct type</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">                 <tt class="py-comment">###type = self.readbytes(4,numpy.int32)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">                <tt class="py-name">struct_name_length</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-68', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">numpy [...]
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">                <tt class="py-name">struct_number_fields</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-69', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">num [...]
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">                <tt class="py-comment">#print 'struct - name_length, number_field',  struct_name_length,struct_number_fields</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">                <tt class="py-comment">#print self.infile.read(struct_name_length)</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">                <tt class="py-name">field_info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt id="link-70" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-70', 'i', 'link-70');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">struct_number_fields</tt><tt class="py-op">)</t [...]
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">                    <tt class="py-name">field_info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-71', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt c [...]
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">                <tt class="py-comment">#print field_info</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">no_data_elements</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-73', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt [...]
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">                <tt class="py-comment">#print '%i data elemets stored as ' %self.no_data_elements</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">                <tt class="py-name">bytes_in_struct</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt id="link-74" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-74', 'i', 'link-70');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">struct_number_fields</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">                    <tt class="py-name">bytes_in_struct</tt> <tt class="py-op">+=</tt> <tt id="link-75" class="py-name"><a title="fabio.dm3image.DATA_BYTES" class="py-name" href="#" onclick="return doclink('link-75', 'DATA_BYTES', 'link-4');">DATA_BYTES</a></tt><tt class="py-op">[</tt><tt class="py-name">field_info</tt><tt class="py-op">[</tt><tt id="link-76" class="py-name"><a title="fabio.fabioutils.i" class="py-nam [...]
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">                <tt id="link-77" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-77', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'skip bytes %s'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">no_data_elements</tt> <tt class="py-op">*</tt> <tt class="py-name">bytes_in_struct</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">                <tt class="py-name">dump</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-78', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">no_data_elements</tt> <tt class="py-op">*</tt> <tt class="py-name">bytes_in_struct</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_encoded_type</tt> <tt class="py-op">==</tt> <tt class="py-number">15</tt><tt class="py-op">:</tt>            <tt class="py-comment"># struct type</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">            <tt class="py-comment">###type = self.readbytes(4,numpy.int32)</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">            <tt class="py-name">struct_name_length</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-79', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt [...]
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">            <tt class="py-name">struct_number_fields</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-80', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</ [...]
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">            <tt class="py-comment">#print 'struct - name_length, number_field',  struct_name_length,struct_number_fields</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">            <tt class="py-comment">#print self.infile.read(struct_name_length)</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">            <tt class="py-name">field_info</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-81" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-81', 'i', 'link-70');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">struct_number_fields</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">                <tt class="py-name">field_info</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-82', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class [...]
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">            <tt class="py-comment">#print field_info</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">            <tt class="py-name">field_data</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-84" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-84', 'i', 'link-70');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">struct_number_fields</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">                <tt class="py-comment">#print type(i)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">                <tt class="py-name">field_data</tt> <tt class="py-op">=</tt> <tt class="py-name">field_data</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-85', 'readbytes', 'link-8');">readbytes</a></tt><tt class="py-op">(</tt><tt class="py-name">field [...]
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">                <tt class="py-name">field_data</tt> <tt class="py-op">=</tt> <tt class="py-name">field_data</tt> <tt class="py-op">+</tt> <tt class="py-string">'%i  '</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="fabio.dm3image.dm3image.readbytes" class="py-name" href="#" onclick="return doclink('link-87', 'readbytes', 'link-8');">readbyte [...]
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">                                                                 <tt id="link-90" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-90', 'DATA_TYPES', 'link-3');">DATA_TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">field_info</tt><tt class="py-op">[</tt><tt id="link-91" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-91', 'i', 'link-70');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><t [...]
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">                                                                 <tt class="py-name">swap</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">swap</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">field_data</tt> </tt>
+</div><a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"> </tt>
+<a name="dm3image.read_data"></a><div id="dm3image.read_data-def"><a name="L217"></a><tt class="py-lineno">217</tt> <a class="py-toggle" href="#" id="dm3image.read_data-toggle" onclick="return toggle('dm3image.read_data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.dm3image.dm3image-class.html#read_data">read_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="dm3image.read_data-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="dm3image.read_data-expanded"><a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">encoded_datatype</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="p [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-92', 'read', 'link-27');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.dm3image.dm3image-class.html b/epydoc/fabio.dm3image.dm3image-class.html
new file mode 100644
index 0000000..21ecaab
--- /dev/null
+++ b/epydoc/fabio.dm3image.dm3image-class.html
@@ -0,0 +1,491 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.dm3image.dm3image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.dm3image-module.html">Module dm3image</a> ::
+        Class dm3image
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.dm3image.dm3image-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class dm3image</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">dm3image</strong>
+</pre>
+
+<hr />
+<p>Read and try to write the dm3 data format</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.dm3image.dm3image-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">*args</span>,
+        <span class="summary-sig-arg">**kwargs</span>)</span><br />
+      Set up initial values</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.dm3image.dm3image-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Must be overridden in classes</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.dm3image.dm3image-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      To be overridden - fill in self.header and self.data</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="readbytes"></a><span class="summary-sig-name">readbytes</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">bytes_to_read</span>,
+        <span class="summary-sig-arg">format</span>,
+        <span class="summary-sig-arg">swap</span>=<span class="summary-sig-default">True</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image.readbytes">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="read_tag_group"></a><span class="summary-sig-name">read_tag_group</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image.read_tag_group">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="read_tag_entry"></a><span class="summary-sig-name">read_tag_entry</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image.read_tag_entry">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="read_tag_type"></a><span class="summary-sig-name">read_tag_type</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image.read_tag_type">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="read_data"></a><span class="summary-sig-name">read_data</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image.read_data">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#write">write</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">*args</span>,
+        <span class="sig-arg">**kwargs</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Set up initial values</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Must be overridden in classes</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.dm3image-pysrc.html#dm3image.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>To be overridden - fill in self.header and self.data</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.edfimage-module.html b/epydoc/fabio.edfimage-module.html
new file mode 100644
index 0000000..a394060
--- /dev/null
+++ b/epydoc/fabio.edfimage-module.html
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.edfimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module edfimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.edfimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module edfimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.edfimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+License: GPLv2+
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright & Jérôme Kieffer:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.Frame-class.html" class="summary-name">Frame</a><br />
+      A class representing a single frame in an EDF file
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html" class="summary-name">edfimage</a><br />
+      Read and try to write the ESRF edf data format
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("edfimage")">logging.getLogger("edfimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="BLOCKSIZE"></a><span class="summary-name">BLOCKSIZE</span> = <code title="512">512</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage-module.html#DATA_TYPES" class="summary-name">DATA_TYPES</a> = <code title="{'Double': <type 'numpy.float64'>,
+ 'DoubleIEEE128': <type 'numpy.float128'>,
+ 'DoubleIEEE64': <type 'numpy.float64'>,
+ 'DoubleValue': <type 'numpy.float64'>,
+ 'FLOAT': <type 'numpy.float32'>,
+ 'FLOATVALUE': <type 'numpy.float32'>,
+ 'Float': <type 'numpy.float32'>,
+ 'Float32': <type 'numpy.float32'>,
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">Double</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float64'><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">DoubleIEEE128</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage-module.html#NUMPY_EDF_DTYPE" class="summary-name">NUMPY_EDF_DTYPE</a> = <code title="{'float128': 'QuadrupleValue',
+ 'float32': 'FloatValue',
+ 'float64': 'DoubleValue',
+ 'int16': 'SignedShort',
+ 'int32': 'SignedInteger',
+ 'int64': 'Signed64',
+ 'int8': 'SignedByte',
+ 'uint16': 'UnsignedShort',
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">float128</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">QuadrupleValue</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">float32</code><code class="variable-quote">'</code><code class="varia [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage-module.html#MINIMUM_KEYS" class="summary-name">MINIMUM_KEYS</a> = <code title="['HEADERID',
+ 'IMAGE',
+ 'BYTEORDER',
+ 'DATATYPE',
+ 'DIM_1',
+ 'DIM_2',
+ 'SIZE']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">HEADERID</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">IMAGE</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">BYTEORDER</code><code class="variable-quote">'</code><code class="variabl [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="DEFAULT_VALUES"></a><span class="summary-name">DEFAULT_VALUES</span> = <code title="{}"><code class="variable-group">{</code><code class="variable-group">}</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="DATA_TYPES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">DATA_TYPES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">Double</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float64'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">DoubleIEEE128</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float128'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">DoubleIEEE64</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float64'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">DoubleValue</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float64'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">FLOAT</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float32'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">FLOATVALUE</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float32'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Float</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float32'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Float32</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float32'><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="NUMPY_EDF_DTYPE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">NUMPY_EDF_DTYPE</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">float128</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">QuadrupleValue</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">float32</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">FloatValue</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">float64</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">DoubleValue</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">int16</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">SignedShort</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">int32</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">SignedInteger</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">int64</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Signed64</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">int8</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">SignedByte</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">uint16</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">UnsignedShort</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="MINIMUM_KEYS"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">MINIMUM_KEYS</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">HEADERID</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">IMAGE</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">BYTEORDER</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">DATATYPE</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">DIM_1</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">DIM_2</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">SIZE</code><code class="variable-quote">'</code><code class="variable-group">]</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.edfimage-pysrc.html b/epydoc/fabio.edfimage-pysrc.html
new file mode 100644
index 0000000..f053c09
--- /dev/null
+++ b/epydoc/fabio.edfimage-pysrc.html
@@ -0,0 +1,2405 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.edfimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module edfimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.edfimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.edfimage-module.html">Module fabio.edfimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"># -*- coding: utf8 -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">License: GPLv2+</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">Authors:</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">........</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">* Henning O. Sorensen & Erik Knudsen:</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">  Center for Fundamental Research: Metal Structures in Four Dimensions;</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring">  Risoe National Laboratory;</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">  Frederiksborgvej 399;</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-docstring">  DK-4000 Roskilde;</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">  email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-docstring">* Jon Wright & Jérôme Kieffer:</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring">  European Synchrotron Radiation Facility;</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring">  Grenoble (France)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">with_statement</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt><tt class="py-op">,</tt> <tt class="py-name">types</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"edfimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-1');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-1');">fabioimage</a></tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module fabio.fabioutils=fabio.fabioutils-module.html"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-3', 'fabioutils', 'link-3');">fabioutils</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Static Method fabio.cbfimage.CIF.isAscii()=fabio.cbfimage.CIF-class.html#isAscii,Func [...]
+fabio.fabioutils.isAscii" class="py-name" href="#" onclick="return doclink('link-4', 'isAscii', 'link-4');">isAscii</a></tt><tt class="py-op">,</tt> <tt id="link-5" class="py-name" targets="Function fabio.fabioutils.toAscii()=fabio.fabioutils-module.html#toAscii"><a title="fabio.fabioutils.toAscii" class="py-name" href="#" onclick="return doclink('link-5', 'toAscii', 'link-5');">toAscii</a></tt><tt class="py-op">,</tt> <tt id="link-6" class="py-name" targets="Function fabio.fabioutils.ni [...]
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name" targets="Module fabio.compression=fabio.compression-module.html"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-7', 'compression', 'link-7');">compression</a></tt> <tt class="py-keyword">import</tt> <tt id="link-8" class="py-name" targets="Function fabio.compression.decBzip2()=fabio.compression-module.html#decBzip2"><a [...]
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt id="link-11" class="py-name" targets="Variable fabio.edfimage.BLOCKSIZE=fabio.edfimage-module.html#BLOCKSIZE"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onclick="return doclink('link-11', 'BLOCKSIZE', 'link-11');">BLOCKSIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">512</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt id="link-12" class="py-name" targets="Variable fabio.cbfimage.DATA_TYPES=fabio.cbfimage-module.html#DATA_TYPES,Variable fabio.dm3image.DATA_TYPES=fabio.dm3image-module.html#DATA_TYPES,Variable fabio.edfimage.DATA_TYPES=fabio.edfimage-module.html#DATA_TYPES,Variable fabio.kcdimage.DATA_TYPES=fabio.kcdimage-module.html#DATA_TYPES"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-12', 'DATA_TYPES', 'link-12');">DATA_TYPES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt>  <tt class="py-string">"SignedByte"</tt>    <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int8</tt><tt class="py-op">,</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">                <tt class="py-string">"Signed8"</tt>       <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int8</tt><tt class="py-op">,</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">                <tt class="py-string">"UnsignedByte"</tt>  <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">,</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">                <tt class="py-string">"Unsigned8"</tt>     <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">,</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">                <tt class="py-string">"SignedShort"</tt>   <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int16</tt><tt class="py-op">,</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">                <tt class="py-string">"Signed16"</tt>      <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int16</tt><tt class="py-op">,</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">                <tt class="py-string">"UnsignedShort"</tt> <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">,</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">                <tt class="py-string">"Unsigned16"</tt>    <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">,</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                <tt class="py-string">"UnsignedShortInteger"</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">                <tt class="py-string">"SignedInteger"</tt> <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">                <tt class="py-string">"Signed32"</tt>      <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">                <tt class="py-string">"UnsignedInteger"</tt><tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">,</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">                <tt class="py-string">"Unsigned32"</tt>    <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">,</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">                <tt class="py-string">"SignedLong"</tt>    <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">                <tt class="py-string">"UnsignedLong"</tt>  <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">,</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                <tt class="py-string">"Signed64"</tt>      <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int64</tt><tt class="py-op">,</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">                <tt class="py-string">"Unsigned64"</tt>    <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint64</tt><tt class="py-op">,</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                <tt class="py-string">"FloatValue"</tt>    <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">                <tt class="py-string">"FLOATVALUE"</tt>    <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">                <tt class="py-string">"FLOAT"</tt>         <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> <tt class="py-comment"># fit2d</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">                <tt class="py-string">"Float"</tt>         <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> <tt class="py-comment"># fit2d</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">                <tt class="py-string">"FloatIEEE32"</tt>   <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">                <tt class="py-string">"Float32"</tt>       <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">                <tt class="py-string">"Double"</tt>        <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">,</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">                <tt class="py-string">"DoubleValue"</tt>   <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">,</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">                <tt class="py-string">"FloatIEEE64"</tt>   <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">,</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">                <tt class="py-string">"DoubleIEEE64"</tt>  <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt><tt class="py-op">}</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">    <tt id="link-13" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-13', 'DATA_TYPES', 'link-12');">DATA_TYPES</a></tt><tt class="py-op">[</tt><tt class="py-string">"FloatIEEE128"</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float128</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">    <tt id="link-14" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-14', 'DATA_TYPES', 'link-12');">DATA_TYPES</a></tt><tt class="py-op">[</tt><tt class="py-string">"DoubleIEEE128"</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float128</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">    <tt id="link-15" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-15', 'DATA_TYPES', 'link-12');">DATA_TYPES</a></tt><tt class="py-op">[</tt><tt class="py-string">"QuadrupleValue"</tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float128</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">    <tt class="py-comment"># not in your numpy</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt id="link-16" class="py-name" targets="Variable fabio.edfimage.NUMPY_EDF_DTYPE=fabio.edfimage-module.html#NUMPY_EDF_DTYPE"><a title="fabio.edfimage.NUMPY_EDF_DTYPE" class="py-name" href="#" onclick="return doclink('link-16', 'NUMPY_EDF_DTYPE', 'link-16');">NUMPY_EDF_DTYPE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">"int8"</tt>       <tt class="py-op">:</tt><tt class="py-string">"S [...]
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                   <tt class="py-string">"int16"</tt>      <tt class="py-op">:</tt><tt class="py-string">"SignedShort"</tt><tt class="py-op">,</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                   <tt class="py-string">"int32"</tt>      <tt class="py-op">:</tt><tt class="py-string">"SignedInteger"</tt><tt class="py-op">,</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">                   <tt class="py-string">"int64"</tt>      <tt class="py-op">:</tt><tt class="py-string">"Signed64"</tt><tt class="py-op">,</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">                   <tt class="py-string">"uint8"</tt>      <tt class="py-op">:</tt><tt class="py-string">"UnsignedByte"</tt><tt class="py-op">,</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">                   <tt class="py-string">"uint16"</tt>     <tt class="py-op">:</tt><tt class="py-string">"UnsignedShort"</tt><tt class="py-op">,</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">                   <tt class="py-string">"uint32"</tt>     <tt class="py-op">:</tt><tt class="py-string">"UnsignedInteger"</tt><tt class="py-op">,</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">                   <tt class="py-string">"uint64"</tt>     <tt class="py-op">:</tt><tt class="py-string">"Unsigned64"</tt><tt class="py-op">,</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">                   <tt class="py-string">"float32"</tt>    <tt class="py-op">:</tt><tt class="py-string">"FloatValue"</tt><tt class="py-op">,</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">                   <tt class="py-string">"float64"</tt>    <tt class="py-op">:</tt><tt class="py-string">"DoubleValue"</tt><tt class="py-op">,</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                   <tt class="py-string">"float128"</tt>   <tt class="py-op">:</tt><tt class="py-string">"QuadrupleValue"</tt><tt class="py-op">,</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">             <tt class="py-op">}</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt id="link-17" class="py-name" targets="Variable fabio.cbfimage.MINIMUM_KEYS=fabio.cbfimage-module.html#MINIMUM_KEYS,Variable fabio.edfimage.MINIMUM_KEYS=fabio.edfimage-module.html#MINIMUM_KEYS,Variable fabio.kcdimage.MINIMUM_KEYS=fabio.kcdimage-module.html#MINIMUM_KEYS"><a title="fabio.cbfimage.MINIMUM_KEYS
+fabio.edfimage.MINIMUM_KEYS
+fabio.kcdimage.MINIMUM_KEYS" class="py-name" href="#" onclick="return doclink('link-17', 'MINIMUM_KEYS', 'link-17');">MINIMUM_KEYS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'HEADERID'</tt><tt class="py-op">,</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                <tt class="py-string">'IMAGE'</tt><tt class="py-op">,</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">                <tt class="py-string">'BYTEORDER'</tt><tt class="py-op">,</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">                <tt class="py-string">'DATATYPE'</tt><tt class="py-op">,</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">                <tt class="py-string">'DIM_1'</tt><tt class="py-op">,</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                <tt class="py-string">'DIM_2'</tt><tt class="py-op">,</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                <tt class="py-string">'SIZE'</tt><tt class="py-op">]</tt> <tt class="py-comment"># Size is thought to be essential for writing at least</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt id="link-18" class="py-name" targets="Variable fabio.edfimage.DEFAULT_VALUES=fabio.edfimage-module.html#DEFAULT_VALUES,Variable fabio.kcdimage.DEFAULT_VALUES=fabio.kcdimage-module.html#DEFAULT_VALUES"><a title="fabio.edfimage.DEFAULT_VALUES
+fabio.kcdimage.DEFAULT_VALUES" class="py-name" href="#" onclick="return doclink('link-18', 'DEFAULT_VALUES', 'link-18');">DEFAULT_VALUES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">                  <tt class="py-comment"># I do not define default values as they will be calculated at write time</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">                  <tt class="py-comment"># JK20110415</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">                  <tt class="py-op">}</tt> </tt>
+<a name="Frame"></a><div id="Frame-def"><a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <a class="py-toggle" href="#" id="Frame-toggle" onclick="return toggle('Frame');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.edfimage.Frame-class.html">Frame</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Frame-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Frame-expanded"><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-docstring">    A class representing a single frame in an EDF file</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="Frame.__init__"></a><div id="Frame.__init__-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="Frame.__init__-toggle" onclick="return toggle('Frame.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.Frame-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt clas [...]
+</div><div id="Frame.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Frame.__init__-expanded"><a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-19" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-19', 'header', 'link-19');">he [...]
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-20', 'header', 'link-19');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-21', 'header', 'link-19');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt id="link-22" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" oncl [...]
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-23" class="py-name" targets="Variable fabio.edfimage.edfimage.header_keys=fabio.edfimage.edfimage-class.html#header_keys"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-23', 'header_keys', 'link-23');">header_keys</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-24', 'header_keys', 'link-23');">header_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name [...]
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-26', 'header_keys', 'link-23');">header_keys</a></tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-27', 'h [...]
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-28" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-28', 'key', 'link-28');">key</a></tt> <tt class="py-keyword">in</tt> <tt id="link-29" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="r [...]
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-30" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-30', 'key', 'link-28');">key</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#"  [...]
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                    <tt id="link-32" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-32', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Header key %s, in header_keys is not in header dictionary, poping !!!"</tt> <tt class="py-op">%</tt> <tt id="link-33" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-33', 'key', 'link-28');">key</a></tt><tt class=" [...]
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-34', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-35" class="py-name"><a title="fabio.fabioutils.key" class="py-name"  [...]
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Variable fabio.edfimage.edfimage.capsHeader=fabio.edfimage.edfimage-class.html#capsHeader"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-36', 'capsHeader', 'link-36');">capsHeader</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-37" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-37', 'key', 'link-28');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-38', [...]
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-39', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">[</tt><tt id="link-40" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-40', 'key', 'link-28'); [...]
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">                <tt id="link-42" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-42', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Header key %s is not a string"</tt> <tt class="py-op">%</tt> <tt id="link-43" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-43', 'key', 'link-28');">key</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-44', 'data', 'link-44');">data</a></tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Variable fabio.edfimage.edfimage.dims=fabio.edfimage.edfimage-class.html#dims"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-45', 'dims', 'link-45');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-46', 'dim1', 'link-46');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-47', 'dim2', 'link-47');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># Position of start of raw data in file</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name" targets="Variable fabio.fabioutils.BZ2File.size=fabio.fabioutils.BZ2File-class.html#size,Variable fabio.fabioutils.File.size=fabio.fabioutils.File-class.html#size,Variable fabio.fabioutils.GzipFile.size=fabio.fabioutils.GzipFile-class.html#size,Variable fabio.fabioutils.StringIO.size=fabio.fabioutils.StringIO-class.html#size" [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-48', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt>  <tt class="py-comment"># size of raw data in file</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt>  <tt class="py-comment"># opened file object with locking capabilities !!!</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-49', 'bpp', 'link-49');">bpp</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">number</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">number</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class= [...]
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">iFrame</tt> <tt class="py-op">=</tt> <tt class="py-name">number</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">iFrame</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"> </tt>
+<a name="Frame.parseheader"></a><div id="Frame.parseheader-def"><a name="L132"></a><tt class="py-lineno">132</tt> <a class="py-toggle" href="#" id="Frame.parseheader-toggle" onclick="return toggle('Frame.parseheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.Frame-class.html#parseheader">parseheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">block</tt><tt class="p [...]
+</div><div id="Frame.parseheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Frame.parseheader-expanded"><a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">        Parse the header in some EDF format from an already open file</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">        @param block: string representing the header block</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">        @type block: string, should be full ascii</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">        @return: size of the binary blob</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-comment">#reset values ...</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-50', 'header', 'link-19');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-51', 'capsHeader', 'link-36');">capsHeader</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-52', 'header_keys', 'link-23');">header_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-53', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-name">calcsize</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-54', 'dims', 'link-45');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">block</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">';'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'='</tt> <tt class="py-keyword">in</tt> <tt class="py-name">line</tt><tt class="py-op">:</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">                <tt id="link-55" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-55', 'key', 'link-28');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt> <tt class="py-op">,</tt> <tt cl [...]
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">                <tt class="py-comment"># Why would someone put null bytes in a header?</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">                <tt id="link-56" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-56', 'key', 'link-28');">key</a></tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-57', 'key', 'link-28');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class [...]
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-58', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt id="link-59" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-59', 'key', 'link-28');">key</a></t [...]
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-60', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">[</tt><tt id="link-61" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-61', 'key', 'link-28'); [...]
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-63', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-64" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href [...]
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-comment"># Compute image size</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"SIZE"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-65', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-66', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name"><a title="fabio.fabioutils.nice_int" class="py-name" href="#" onclick="return doclink('link-67', 'nice_int', 'link-6');">nice_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" h [...]
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">                <tt id="link-70" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-70', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to convert to integer : %s %s "</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doc [...]
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"DIM_1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-74', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">                <tt id="link-75" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-75', 'dim1', 'link-46');">dim1</a></tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="fabio.fabioutils.nice_int" class="py-name" href="#" onclick="return doclink('link-76', 'nice_int', 'link-6');">nice_int</a></tt><tt class="py-op">(</tt><tt class="py-nam [...]
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">                <tt id="link-79" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-79', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to convert to integer Dim_1: %s %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return d [...]
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">                <tt class="py-name">calcsize</tt> <tt class="py-op">*=</tt> <tt id="link-83" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-83', 'dim1', 'link-46');">dim1</a></tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-84', 'dims', 'link-45');">dims</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-85" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick= [...]
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">            <tt id="link-86" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-86', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"No Dim_1 in headers !!!"</tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"DIM_2"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-87', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">                <tt id="link-88" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-88', 'dim2', 'link-47');">dim2</a></tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="fabio.fabioutils.nice_int" class="py-name" href="#" onclick="return doclink('link-89', 'nice_int', 'link-6');">nice_int</a></tt><tt class="py-op">(</tt><tt class="py-nam [...]
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">                <tt id="link-92" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-92', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to convert to integer Dim_3: %s %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return d [...]
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">                <tt class="py-name">calcsize</tt> <tt class="py-op">*=</tt> <tt id="link-96" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-96', 'dim2', 'link-47');">dim2</a></tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-97', 'dims', 'link-45');">dims</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick= [...]
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">            <tt id="link-99" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-99', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"No Dim_2 in headers !!!"</tt><tt class="py-op">)</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-name">iDim</tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">        <tt class="py-comment"># JON: this appears to be for nD images, but we don't treat those</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">iDim</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">            <tt class="py-name">strDim</tt> <tt class="py-op">=</tt> <tt class="py-string">"DIM_%i"</tt> <tt class="py-op">%</tt> <tt class="py-name">iDim</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">strDim</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-100', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">                    <tt class="py-name">dim3</tt> <tt class="py-op">=</tt> <tt id="link-101" class="py-name"><a title="fabio.fabioutils.nice_int" class="py-name" href="#" onclick="return doclink('link-101', 'nice_int', 'link-6');">nice_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href [...]
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">                    <tt id="link-104" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-104', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to convert to integer %s: %s %s"</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">                                  <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">strDim</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-105', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">[</tt><tt class="py-name [...]
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">                    <tt class="py-name">dim3</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">                    <tt class="py-name">iDim</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">dim3</tt> <tt class="py-op">></tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">                        <tt class="py-comment"># Otherwise treat dim3==1 as a 2D image</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">                        <tt class="py-name">calcsize</tt> <tt class="py-op">*=</tt> <tt class="py-name">dim3</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-108', 'dims', 'link-45');">dims</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">dim3</tt><tt class="py-op">)</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">                    <tt class="py-name">iDim</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">                <tt id="link-109" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-109', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"No Dim_3 -> it is a 2D image"</tt><tt class="py-op">)</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">                <tt class="py-name">iDim</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">"DATATYPE"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-110', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-op">=</tt> <tt id="link-111" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-111', 'DATA_TYPES', 'link-12');">DATA_TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-112', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-n [...]
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">                <tt id="link-114" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-114', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Defaulting type to uint16"</tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-115', 'bpp', 'link-49');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_ser [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-117', 'tostring', 'link-117');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">        <tt class="py-name">calcsize</tt> <tt class="py-op">*=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-118', 'bpp', 'link-49');">bpp</a></tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-119', 'size', 'link-48');">size</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-120', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">calcsize</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-121', 'size', 'link-48');">size</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">calcsize</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">"COMPRESSION"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-122', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">)</tt> <tt class="py-key [...]
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">                <tt id="link-125" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-125', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"Mismatch between the expected size %s and the calculated one %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-126', 'size', 'link-48');">size</a></tt><tt class="py-op">,</tt> <tt class="py-name">calcsize</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-127', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">calcsize</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-128" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-128', 'i', 'link-128');">i</a></tt><tt class="py-op">,</tt> <tt class="py-name">n</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-nam [...]
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">            <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">"dim%i"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-130" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-130', 'i', 'link-128');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt cla [...]
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-131', 'size', 'link-48');">size</a></tt> </tt>
+</div><a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"> </tt>
+<a name="Frame.swap_needed"></a><div id="Frame.swap_needed-def"><a name="L226"></a><tt class="py-lineno">226</tt> <a class="py-toggle" href="#" id="Frame.swap_needed-toggle" onclick="return toggle('Frame.swap_needed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.Frame-class.html#swap_needed">swap_needed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Frame.swap_needed-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Frame.swap_needed-expanded"><a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line"><tt class="py-docstring">        Decide if we need to byteswap</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'Low'</tt>  <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-132', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="p [...]
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">           <tt class="py-op">(</tt><tt class="py-string">'High'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-134', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-135 [...]
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'High'</tt>  <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-136', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class=" [...]
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">           <tt class="py-op">(</tt><tt class="py-string">'Low'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-138', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-139" [...]
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-140', 'bpp', 'link-49');">bpp</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</t [...]
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"> </tt>
+<a name="Frame.getData"></a><div id="Frame.getData-def"><a name="L241"></a><tt class="py-lineno">241</tt> <a class="py-toggle" href="#" id="Frame.getData-toggle" onclick="return toggle('Frame.getData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.Frame-class.html#getData">getData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Frame.getData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Frame.getData-expanded"><a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-docstring">        Unpack a binary blob according to the specification given in the header</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"><tt class="py-docstring">        @return: dataset as numpy.ndarray</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">        <tt id="link-141" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-141', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">            <tt id="link-142" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-142', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">            <tt id="link-143" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-143', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-string">"DATATYPE"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-144', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-op">=</tt> <tt id="link-145" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-145', 'DATA_TYPES', 'link-12');">DATA_TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-146', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-147" class="py-n [...]
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">            <tt id="link-148" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-148', 'dims', 'link-45');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-149', 'dims', 'link-45');">dims< [...]
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">            <tt id="link-150" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-150', 'dims', 'link-45');">dims</a></tt><tt class="py-op">.</tt><tt class="py-name">reverse</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">            <tt class="py-keyword">with</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">:</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name" targets="Variable fabio.fabioutils.GzipFile.closed=fabio.fabioutils.GzipFile-class.html#closed"><a title="fabio.fabioutils.GzipFile.closed" class="py-name" href="#" onclick="return doclink('link-151', 'closed', 'link-151');">closed</a [...]
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">                    <tt id="link-152" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-152', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"file: %s from %s is closed. Cannot read data."</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-153', 'seek', 'link-153');">seek</a></tt><tt class="py-op">(</tt><tt cla [...]
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">                    <tt class="py-name">fileData</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.re [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-154', 'read', 'link-154');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-155', 'size', 'link-48');">size</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">"COMPRESSION"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-156', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">)</tt><tt class="py-op"> [...]
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">                <tt id="link-157" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-157', 'compression', 'link-7');">compression</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-158', 'header', 'link-19 [...]
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">                <tt class="py-name">uncompressed_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-160', 'bpp', 'link-49');">bpp</a></tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt id="link-161" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-161', 'i', 'link-128');">i</a></tt> <tt class="py-keyword">in</tt> <tt id="link-162" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-162', 'dims', 'link-45');">dims</a></tt><tt class="py-op"> [...]
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">                    <tt class="py-name">uncompressed_size</tt> <tt class="py-op">*=</tt> <tt id="link-163" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-163', 'i', 'link-128');">i</a></tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-string">"OFFSET"</tt> <tt class="py-keyword">in</tt> <tt id="link-164" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-164', 'compression', 'link-7');">compression</a></tt> <tt class="py-op">:</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">                        <tt class="py-keyword">import</tt> <tt id="link-165" class="py-name" targets="Module fabio.byte_offset=fabio.byte_offset-module.html"><a title="fabio.byte_offset" class="py-name" href="#" onclick="return doclink('link-165', 'byte_offset', 'link-165');">byte_offset</a></tt><tt class="py-comment">#IGNORE:F0401</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">                        <tt id="link-166" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-166', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Unimplemented compression scheme:  %s (%s)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-167" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-167', 'compression', 'link-7');">compression</a></tt>< [...]
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">                        <tt class="py-name">myData</tt> <tt class="py-op">=</tt> <tt id="link-168" class="py-name"><a title="fabio.byte_offset" class="py-name" href="#" onclick="return doclink('link-168', 'byte_offset', 'link-165');">byte_offset</a></tt><tt class="py-op">.</tt><tt class="py-name">analyseCython</tt><tt class="py-op">(</tt><tt class="py-name">fileData</tt><tt class="py-op">,</tt> <tt id="link-169" class [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-169', 'size', 'link-48');">size</a></tt><tt class="py-op">=</tt><tt class="py-name">uncompressed_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">                        <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">myData</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-170', 'tostring', 'link-117');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-171', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">uncompressed_size</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-172" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-172', 'compression', 'link-7');">compression</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"NONE"</tt><tt class="py-op">:</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">                    <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">fileData</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-string">"GZIP"</tt> <tt class="py-keyword">in</tt> <tt id="link-173" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-173', 'compression', 'link-7');">compression</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">                    <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt id="link-174" class="py-name"><a title="fabio.compression.decGzip" class="py-name" href="#" onclick="return doclink('link-174', 'decGzip', 'link-9');">decGzip</a></tt><tt class="py-op">(</tt><tt class="py-name">fileData</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-175', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">uncompressed_size</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-string">"BZ"</tt> <tt class="py-keyword">in</tt> <tt id="link-176" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-176', 'compression', 'link-7');">compression</a></tt> <tt class="py-op">:</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">                    <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt id="link-177" class="py-name"><a title="fabio.compression.decBzip2" class="py-name" href="#" onclick="return doclink('link-177', 'decBzip2', 'link-8');">decBzip2</a></tt><tt class="py-op">(</tt><tt class="py-name">fileData</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-178', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">uncompressed_size</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-string">"Z"</tt> <tt class="py-keyword">in</tt> <tt id="link-179" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-179', 'compression', 'link-7');">compression</a></tt> <tt class="py-op">:</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">                    <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt id="link-180" class="py-name"><a title="fabio.compression.decZlib" class="py-name" href="#" onclick="return doclink('link-180', 'decZlib', 'link-10');">decZlib</a></tt><tt class="py-op">(</tt><tt class="py-name">fileData</tt><tt class="py-op">)</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-181', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">uncompressed_size</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">                    <tt id="link-182" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-182', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown compression scheme %s"</tt> <tt class="py-op">%</tt> <tt id="link-183" class="py-name"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-183', 'compression', 'link-7');">compression</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">                    <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">fileData</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">                <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">fileData</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">            <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-184', 'size', 'link-48');">size</a></tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">            <tt class="py-name">obtained</tt> <tt class="py-op">=</tt> <tt id="link-185" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-185', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">rawData</tt><tt class="py-op">)</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">expected</tt> <tt class="py-op">></tt> <tt class="py-name">obtained</tt><tt class="py-op">:</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">                <tt id="link-186" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-186', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Data stream is incomplete: %s < expected %s bytes"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">obtained</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">                <tt class="py-name">rawData</tt> <tt class="py-op">+=</tt> <tt class="py-string">"\x00"</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">expected</tt> <tt class="py-op">-</tt> <tt class="py-name">obtained</tt><tt class="py-op">)</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">expected</tt> <tt class="py-op"><</tt> <tt id="link-187" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-187', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">rawData</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">                <tt id="link-188" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-188', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"Data stream contains trailing junk : %s > expected %s bytes"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">obtained</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">                <tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">rawData</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">expected</tt><tt class="py-op">]</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name" targets="Static Method fabio.binaryimage.binaryimage.swap_needed()=fabio.binaryimage.binaryimage-class.html#swap_needed,Method fabio.edfimage.Frame.swap_needed()=fabio.edfimage.Frame-class.html#swap_needed,Method fabio.edfimage.edfimage.swap_needed()=fabio.edfimage.edfimage-class.html#swap_ [...]
+fabio.edfimage.Frame.swap_needed
+fabio.edfimage.edfimage.swap_needed" class="py-name" href="#" onclick="return doclink('link-189', 'swap_needed', 'link-189');">swap_needed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">                <tt id="link-190" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-190', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">rawData</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt [...]
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">                <tt id="link-192" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-192', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">rawData</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt  [...]
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt id="link-194" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-194', 'data', 'link-44');">data</a></tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-op">=</tt> <tt id="link-195" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-195', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-196" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-196', 'data', 'link-44');">data</a></tt> </tt>
+</div><a name="Frame.setData"></a><div id="Frame.setData-def"><a name="L315"></a><tt class="py-lineno">315</tt> <a class="py-toggle" href="#" id="Frame.setData-toggle" onclick="return toggle('Frame.setData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.Frame-class.html#setData">setData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">npa</tt><tt class="py-op">=</tt><tt clas [...]
+</div><div id="Frame.setData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Frame.setData-expanded"><a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">        <tt class="py-docstring">"""Setter for data in edf frame"""</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-name">npa</tt> </tt>
+</div><a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">    <tt id="link-197" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-197', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-198" class="py-name" targets="Method fabio.TiffIO.TiffIO.getData()=fabio.TiffIO.TiffIO-class.html#getData,Method fabio.edfimage.Frame.getData()=fabio.edfimage.Frame-class.html#getData,Method fabio.edfimage.edfimage.getData()=fabio.edfimage.edfimage-class.html#getData"><a [...]
+fabio.edfimage.Frame.getData
+fabio.edfimage.edfimage.getData" class="py-name" href="#" onclick="return doclink('link-198', 'getData', 'link-198');">getData</a></tt><tt class="py-op">,</tt> <tt id="link-199" class="py-name" targets="Method fabio.OXDimage.Section.setData()=fabio.OXDimage.Section-class.html#setData,Method fabio.edfimage.Frame.setData()=fabio.edfimage.Frame-class.html#setData,Method fabio.edfimage.edfimage.setData()=fabio.edfimage.edfimage-class.html#setData"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-199', 'setData', 'link-199');">setData</a></tt><tt class="py-op">,</tt> <tt class="py-string">"property: (edf)frame.data, uncompress the datablock when needed"</tt><tt class="py-op">)</tt> </tt>
+<a name="Frame.getByteCode"></a><div id="Frame.getByteCode-def"><a name="L319"></a><tt class="py-lineno">319</tt> <a class="py-toggle" href="#" id="Frame.getByteCode-toggle" onclick="return toggle('Frame.getByteCode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.Frame-class.html#getByteCode">getByteCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Frame.getByteCode-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Frame.getByteCode-expanded"><a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-200" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-200', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> </tt>
+</div><a name="Frame.setByteCode"></a><div id="Frame.setByteCode-def"><a name="L324"></a><tt class="py-lineno">324</tt> <a class="py-toggle" href="#" id="Frame.setByteCode-toggle" onclick="return toggle('Frame.setByteCode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.Frame-class.html#setByteCode">setByteCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_iVal</tt><tt cl [...]
+</div><div id="Frame.setByteCode-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Frame.setByteCode-expanded"><a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bytecode</tt> <tt class="py-op">=</tt> <tt class="py-name">_iVal</tt> </tt>
+</div><a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">    <tt id="link-201" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-201', 'bytecode', 'link-201');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-202" class="py-name" targets="Method fabio.edfimage.Frame.getByteCode()=fabio.edfimage.Frame-class.html#getByteCode,Method fabio.edfimage.edfimage.getByteCode()=fabio.edfimage.edfimage-class.html#getByteCode"><a title="fabio.edfimage.Frame.getByteCode
+fabio.edfimage.edfimage.getByteCode" class="py-name" href="#" onclick="return doclink('link-202', 'getByteCode', 'link-202');">getByteCode</a></tt><tt class="py-op">,</tt> <tt id="link-203" class="py-name" targets="Method fabio.edfimage.Frame.setByteCode()=fabio.edfimage.Frame-class.html#setByteCode,Method fabio.edfimage.edfimage.setByteCode()=fabio.edfimage.edfimage-class.html#setByteCode"><a title="fabio.edfimage.Frame.setByteCode
+fabio.edfimage.edfimage.setByteCode" class="py-name" href="#" onclick="return doclink('link-203', 'setByteCode', 'link-203');">setByteCode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line"> </tt>
+<a name="Frame.getEdfBlock"></a><div id="Frame.getEdfBlock-def"><a name="L328"></a><tt class="py-lineno">328</tt> <a class="py-toggle" href="#" id="Frame.getEdfBlock-toggle" onclick="return toggle('Frame.getEdfBlock');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.Frame-class.html#getEdfBlock">getEdfBlock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">force_type</tt><tt cla [...]
+</div><div id="Frame.getEdfBlock-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Frame.getEdfBlock-expanded"><a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"><tt class="py-docstring">        @param force_type: type of the dataset to be enforced like "float64" or "uint16"</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"><tt class="py-docstring">        @type force_type: string or numpy.dtype</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"><tt class="py-docstring">        @param fit2dMode: enforce compatibility with fit2d and starts countimg number of images at 1</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line"><tt class="py-docstring">        @type fit2dMode: boolean</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line"><tt class="py-docstring">        @return: ascii header block</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: python string with the concatenation of the ascii header and the binary data block</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">force_type</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">            <tt id="link-204" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-204', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-205', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">force_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">            <tt id="link-206" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-206', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-207', 'data', 'link-44');">data</a></tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">        <tt class="py-name">fit2dMode</tt> <tt class="py-op">=</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">fit2dMode</tt><tt class="py-op">)</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-208" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-208', 'key', 'link-28');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-209',  [...]
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">            <tt class="py-name">KEY</tt> <tt class="py-op">=</tt> <tt id="link-210" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-210', 'key', 'link-28');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">KEY</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-211', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-212', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">[</tt><tt class="py-name">KEY</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-213" class="py-name"><a title="fabio.fabioutils.ke [...]
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-214" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-214', 'key', 'link-28');">key</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href= [...]
+<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-216', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-217" class="py-name"><a title="fabio.fabioutils.key" class="py-name" h [...]
+<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">        <tt id="link-218" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-218', 'header', 'link-19');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-219', 'header', 'link-19');" [...]
+<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">        <tt id="link-220" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-220', 'header_keys', 'link-23');">header_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-221', 'h [...]
+<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line">        <tt id="link-222" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-222', 'capsHeader', 'link-36');">capsHeader</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-223', 'capsH [...]
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">        <tt class="py-name">listHeader</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"{\n"</tt><tt class="py-op">]</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"><tt class="py-comment">#        First of all clean up the headers:</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-224" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-224', 'i', 'link-128');">i</a></tt> <tt class="py-keyword">in</tt> <tt id="link-225" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-225', 'capsHeader', 'link-36');">capsHeader</a></tt><tt clas [...]
+<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">"DIM_"</tt> <tt class="py-keyword">in</tt> <tt id="link-226" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-226', 'i', 'link-128');">i</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">                <tt id="link-227" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-227', 'header', 'link-19');">header</a></tt><tt class="py-op">.</tt><tt id="link-228" class="py-name" targets="Method fabio.cbfimage.CIF.pop()=fabio.cbfimage.CIF-class.html#pop"><a title="fabio.cbfimage.CIF.pop" class="py-name" href="#" onclick="return doclink('link-228', ' [...]
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">                <tt id="link-231" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-231', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-232" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-2 [...]
+<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">KEY</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">"SIZE"</tt><tt class="py-op">,</tt> <tt class="py-string">"EDF_BINARYSIZE"</tt><tt class="py-op">,</tt> <tt class="py-string">"EDF_HEADERSIZE"</tt><tt class="py-op">,</tt> <tt class="py-string">"BYTEORDER"</tt><tt class="py-op">,</tt> <tt class="py-string">"DATATYPE"</tt><tt [...]
+<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">KEY</tt> <tt class="py-keyword">in</tt> <tt id="link-234" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-234', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line">                <tt id="link-235" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-235', 'header', 'link-19');">header</a></tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="fabio.cbfimage.CIF.pop" class="py-name" href="#" onclick="return doclink('link-236', 'pop', 'link-228');">pop</a></tt><tt class="py-op">(</tt><tt id="link-237" cl [...]
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">                <tt id="link-238" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-238', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-239" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-2 [...]
+<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"EDF_DATABLOCKID"</tt> <tt class="py-keyword">in</tt> <tt id="link-240" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-240', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">            <tt id="link-241" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-241', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-242" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-242', [...]
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">            <tt class="py-comment">#but do not remove the value from dict, instead reset the key ...</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-243" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-243', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">[</tt><tt class="py-string">"EDF_DATABLOCKID"</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">"EDF_DataBlockID"</tt><tt class="py-op">:</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">                <tt id="link-244" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-244', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"EDF_DataBlockID"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-245" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="re [...]
+<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line">                <tt id="link-248" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-248', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">[</tt><tt class="py-string">"EDF_DATABLOCKID"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"EDF_DataBlockID"</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line"> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line"><tt class="py-comment">#            Then update static headers freshly deleted</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">        <tt id="link-249" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-249', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">"Size"</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">        <tt id="link-250" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-250', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"Size"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-251" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('li [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-252', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt id="link-253" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-253', 'tostring', 'link-117');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">        <tt id="link-254" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-254', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">"HeaderID"</tt><tt class="py-op">)</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">        <tt id="link-255" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-255', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"HeaderID"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"EH:%06d:000000:000000"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</t [...]
+<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">        <tt id="link-256" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-256', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">"Image"</tt><tt class="py-op">)</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">        <tt id="link-257" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-257', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"Image"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-258" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html [...]
+str" class="py-name" href="#" onclick="return doclink('link-258', 'str', 'link-258');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">iFrame</tt> <tt class="py-op">+</tt> <tt class="py-name">fit2dMode</tt><tt class="py-op">)</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line"> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">        <tt id="link-259" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-259', 'dims', 'link-45');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-260" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-260', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">)</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">        <tt class="py-name">nbdim</tt> <tt class="py-op">=</tt> <tt id="link-261" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-261', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt id="link-262" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-262', 'dims', 'link-45');">dims [...]
+<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-263" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-263', 'i', 'link-128');">i</a></tt> <tt class="py-keyword">in</tt> <tt id="link-264" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-264', 'dims', 'link-45');">dims</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">            <tt id="link-265" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-265', 'key', 'link-28');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Dim_%i"</tt> <tt class="py-op">%</tt> <tt class="py-name">nbdim</tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line">            <tt id="link-266" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-266', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt id="link-267" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-267', 'key', 'link-28');">key</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> < [...]
+<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">            <tt id="link-269" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-269', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt id="link-270" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href= [...]
+<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line">            <tt class="py-name">nbdim</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">        <tt id="link-271" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-271', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">"DataType"</tt><tt class="py-op">)</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">        <tt id="link-272" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-272', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"DataType"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-273" class="py-name"><a title="fabio.edfimage.NUMPY_EDF_DTYPE" class="py-name" href="#" onclick="return doclink('l [...]
+str" class="py-name" href="#" onclick="return doclink('link-274', 'str', 'link-258');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">(</tt><tt id="link-275" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-275', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">        <tt id="link-276" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-276', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">"ByteOrder"</tt><tt class="py-op">)</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">little_endian</tt><tt class="py-op">:</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line">            <tt id="link-277" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-277', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"ByteOrder"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"LowByteFirst"</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line">            <tt id="link-278" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-278', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"ByteOrder"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"HighByteFirst"</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">        <tt class="py-name">approxHeaderSize</tt> <tt class="py-op">=</tt> <tt class="py-number">100</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-279" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-279', 'key', 'link-28');">key</a></tt> <tt class="py-keyword">in</tt> <tt id="link-280" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-280', 'header', 'link-19');">header</a></tt><tt class="py-o [...]
+<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">            <tt class="py-name">approxHeaderSize</tt> <tt class="py-op">+=</tt> <tt class="py-number">7</tt> <tt class="py-op">+</tt> <tt id="link-281" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-281', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt id="link-282" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" [...]
+str" class="py-name" href="#" onclick="return doclink('link-284', 'str', 'link-258');">str</a></tt><tt class="py-op">(</tt><tt id="link-285" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-285', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt id="link-286" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-286', 'key', 'link-28');">key</a></tt><tt class=" [...]
+<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">        <tt class="py-name">approxHeaderSize</tt> <tt class="py-op">=</tt> <tt id="link-287" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onclick="return doclink('link-287', 'BLOCKSIZE', 'link-11');">BLOCKSIZE</a></tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">approxHeaderSize</tt> <tt class="py-op">//</tt> <tt id="link-288" class="py-name"><a title="fabio.edf [...]
+<a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">        <tt id="link-289" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-289', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">"EDF_HeaderSize"</tt><tt class="py-op">)</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line">        <tt id="link-290" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-290', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"EDF_HeaderSize"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-291" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-291', 'str', 'link-258');">str</a></tt><tt class="py-op">(</tt><tt id="link-292" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onclick="return doclink('link-292', 'BLOCKSIZE', 'link-11');">BLOCKSIZE</a></tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">approxHeaderSize</tt> <tt class="py-op">//</tt> <tt id="link-293" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class= [...]
+<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">        <tt id="link-294" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-294', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">"EDF_BinarySize"</tt><tt class="py-op">)</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line">        <tt id="link-295" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-295', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"EDF_BinarySize"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-296" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return d [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-297', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-298', 'tostring', 'link-117');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line">        <tt id="link-299" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-299', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">"EDF_DataBlockID"</tt><tt class="py-op">)</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">"EDF_DataBlockID"</tt> <tt class="py-keyword">in</tt> <tt id="link-300" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-300', 'header', 'link-19');">header</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line">            <tt id="link-301" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-301', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"EDF_DataBlockID"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"%i.Image.Psd"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self< [...]
+<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">        <tt class="py-name">preciseSize</tt> <tt class="py-op">=</tt> <tt class="py-number">4</tt> <tt class="py-comment">#2 before {\n 2 after }\n</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-302" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-302', 'key', 'link-28');">key</a></tt> <tt class="py-keyword">in</tt> <tt id="link-303" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-303', 'header_keys', 'link-23');">header_keys</a></tt> [...]
+<a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line">            <tt class="py-comment">#Escape keys or values that are no ascii</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt>  <tt class="py-line">            <tt class="py-name">strKey</tt> <tt class="py-op">=</tt> <tt id="link-304" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-304', 'str', 'link-258');">str</a></tt><tt class="py-op">(</tt><tt id="link-305" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-305', 'key', 'link-28');">key</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-306" class="py-name"><a title="fabio.cbfimage.CIF.isAscii
+fabio.fabioutils.isAscii" class="py-name" href="#" onclick="return doclink('link-306', 'isAscii', 'link-4');">isAscii</a></tt><tt class="py-op">(</tt><tt class="py-name">strKey</tt><tt class="py-op">,</tt> <tt class="py-name">listExcluded</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">"}"</tt><tt class="py-op">,</tt> <tt class="py-string">"{"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line">                <tt id="link-307" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-307', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Non ascii key %s, skipping"</tt> <tt class="py-op">%</tt> <tt class="py-name">strKey</tt><tt class="py-op">)</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt>  <tt class="py-line">            <tt class="py-name">strValue</tt> <tt class="py-op">=</tt> <tt id="link-308" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-308', 'str', 'link-258');">str</a></tt><tt class="py-op">(</tt><tt id="link-309" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-309', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt id="link-310" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-310', 'key', 'link-28');">key</a></tt><tt class=" [...]
+<a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-311" class="py-name"><a title="fabio.cbfimage.CIF.isAscii
+fabio.fabioutils.isAscii" class="py-name" href="#" onclick="return doclink('link-311', 'isAscii', 'link-4');">isAscii</a></tt><tt class="py-op">(</tt><tt class="py-name">strValue</tt><tt class="py-op">,</tt> <tt class="py-name">listExcluded</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">"}"</tt><tt class="py-op">,</tt> <tt class="py-string">"{"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line">                <tt id="link-312" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-312', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Non ascii value %s, skipping"</tt> <tt class="py-op">%</tt> <tt class="py-name">strValue</tt><tt class="py-op">)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line">            <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">strKey</tt> <tt class="py-op">+</tt> <tt class="py-string">" = "</tt> <tt class="py-op">+</tt> <tt class="py-name">strValue</tt> <tt class="py-op">+</tt> <tt class="py-string">" ;\n"</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt>  <tt class="py-line">            <tt class="py-name">preciseSize</tt> <tt class="py-op">+=</tt> <tt id="link-313" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-313', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line">            <tt class="py-name">listHeader</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">preciseSize</tt> <tt class="py-op">></tt> <tt class="py-name">approxHeaderSize</tt><tt class="py-op">:</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line">            <tt id="link-314" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-314', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"I expected the header block only at %s in fact it is %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">approxHeaderSize</tt><tt class="py-op">,</tt> <tt class="py-name">preciseSize</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt>  <tt class="py-name">idx</tt><tt class="py-op">,</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-name">listHeader</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"EDF_HeaderSize"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line">                    <tt class="py-name">headerSize</tt> <tt class="py-op">=</tt> <tt id="link-315" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onclick="return doclink('link-315', 'BLOCKSIZE', 'link-11');">BLOCKSIZE</a></tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-name">preciseSize</tt> <tt class="py-op">//</tt> <tt id="link-316" class="py-name"><a title="fabio.ed [...]
+<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line">                    <tt class="py-name">newline</tt> <tt class="py-op">=</tt> <tt class="py-string">"EDF_HeaderSize = %s ;\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">headerSize</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line">                    <tt class="py-name">delta</tt> <tt class="py-op">=</tt> <tt id="link-317" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-317', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">newline</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt id="link-318" class="py-name"><a title="fabio.file_series.file [...]
+<a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">preciseSize</tt> <tt class="py-op">//</tt> <tt id="link-319" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onclick="return doclink('link-319', 'BLOCKSIZE', 'link-11');">BLOCKSIZE</a></tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class [...]
+<a name="L425"></a><tt class="py-lineno">425</tt>  <tt class="py-line">                        <tt class="py-name">headerSize</tt> <tt class="py-op">=</tt> <tt id="link-321" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onclick="return doclink('link-321', 'BLOCKSIZE', 'link-11');">BLOCKSIZE</a></tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">preciseSize</tt> <tt class="py-op">+</tt> <tt class="py-name">delta [...]
+<a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">                        <tt class="py-name">newline</tt> <tt class="py-op">=</tt> <tt class="py-string">"EDF_HeaderSize = %s ;\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">headerSize</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line">                    <tt class="py-name">preciseSize</tt> <tt class="py-op">=</tt> <tt class="py-name">preciseSize</tt> <tt class="py-op">+</tt> <tt class="py-name">delta</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line">                    <tt class="py-name">listHeader</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">newline</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line">            <tt class="py-name">headerSize</tt> <tt class="py-op">=</tt> <tt class="py-name">approxHeaderSize</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line">        <tt class="py-name">listHeader</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-name">headerSize</tt> <tt class="py-op">-</tt> <tt class="py-name">preciseSize</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"}\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">listHeader</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-323" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-323', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt id="link-324" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-324', 'tostring', 'link-117');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L434"></a><tt class="py-lineno">434</tt>  <tt class="py-line"> </tt>
+<a name="edfimage"></a><div id="edfimage-def"><a name="L435"></a><tt class="py-lineno">435</tt>  <tt class="py-line"> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt>  <tt class="py-line"> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt> <a class="py-toggle" href="#" id="edfimage-toggle" onclick="return toggle('edfimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html">edfimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="edfimage-expanded"><a name="L438"></a><tt class="py-lineno">438</tt>  <tt class="py-line">    <tt class="py-docstring">""" Read and try to write the ESRF edf data format """</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.__init__"></a><div id="edfimage.__init__-def"><a name="L440"></a><tt class="py-lineno">440</tt> <a class="py-toggle" href="#" id="edfimage.__init__-toggle" onclick="return toggle('edfimage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op [...]
+</div><div id="edfimage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.__init__-expanded"><a name="L441"></a><tt class="py-lineno">441</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filesize</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt>  <tt class="py-line">            <tt class="py-name">dim</tt> <tt class="py-op">=</tt> <tt id="link-325" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-325', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt id="link-326" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-326', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">)</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> <tt class="py-comment">#IGNORE:W0703</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt>  <tt class="py-line">            <tt id="link-327" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-327', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Data don't look like a numpy array (%s), resetting all!!"</tt> <tt class="py-op">%</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt>  <tt class="py-line">            <tt id="link-328" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-328', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt>  <tt class="py-line">            <tt class="py-name">dim</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt>  <tt class="py-line">            <tt id="link-329" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-329', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-330" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fabio.adscimage.adscimage-class.html#__init__,Method fabio.binaryimage.binaryimage._ [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-330', '__init__', 'link-330');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-331" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-331', 'data', 'link-44');">data</a></tt><tt class="py-op">,</tt> <tt id="link-332" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-332', 'header', 'link-19');">header</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">dim</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line">            <tt id="link-333" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-333', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-334', '__init__', 'link-330');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-335" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-335', 'data', 'link-44');">data</a></tt><tt class="py-op">,</tt> <tt id="link-336" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-336', 'header', 'link-19');">header</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">dim</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-op">:</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line">            <tt id="link-337" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-337', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt id="link-338" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-338', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt id="link- [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-339', 'data', 'link-44');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt>  <tt class="py-line">            <tt id="link-340" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-340', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-341" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-341', '__init__', 'link-330');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-342" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-342', 'data', 'link-44');">data</a></tt><tt class="py-op">,</tt> <tt id="link-343" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-343', 'header', 'link-19');">header</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">dim</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt> <tt class="py-op">:</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line">            <tt id="link-344" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-344', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-345" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-345', '__init__', 'link-330');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-346" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-346', 'data', 'link-44');">data</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-347" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-347', 'header', 'link-19');">header</ [...]
+<a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">dim</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt> <tt class="py-op">:</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line">            <tt id="link-348" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-348', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-349" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-349', '__init__', 'link-330');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-350" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-350', 'data', 'link-44');">data</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-351" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="retur [...]
+<a name="L459"></a><tt class="py-lineno">459</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">dim</tt> <tt class="py-op">==</tt> <tt class="py-number">5</tt> <tt class="py-op">:</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line">            <tt id="link-352" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-352', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-353" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-353', '__init__', 'link-330');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-354" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-354', 'data', 'link-44');">data</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-355" class="py-name"><a title="fabio.edfimage.edf [...]
+<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line"> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">frames</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line">            <tt class="py-name">frame</tt> <tt class="py-op">=</tt> <tt id="link-356" class="py-name" targets="Class fabio.edfimage.Frame=fabio.edfimage.Frame-class.html"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-356', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt id="link-357" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-357', 'data', 'link-44');">data</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-358" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-358', 'data', 'link-44');">data</a></tt><tt class="py-op">,</tt> <tt id="link-359" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-359', 'header', 'link-19');">header</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-360" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name [...]
+<a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line">                          <tt id="link-361" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-361', 'header_keys', 'link-23');">header_keys</a></tt><tt class="py-op">=</tt><tt id="link-362" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-362', 'header_keys', 'link-23');">header_keys [...]
+<a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line">                          <tt class="py-name">number</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">)</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">frame</tt><tt class="py-op">]</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-name">frames</tt> </tt>
+</div><a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line"> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="edfimage.checkHeader"></a><div id="edfimage.checkHeader-def"><a name="L471"></a><tt class="py-lineno">471</tt> <a class="py-toggle" href="#" id="edfimage.checkHeader-toggle" onclick="return toggle('edfimage.checkHeader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#checkHeader">checkHeader</a><tt class="py-op">(</tt><tt class="py-param">header</tt><tt class="py-op">=</tt><tt class="py-name">None</t [...]
+</div><div id="edfimage.checkHeader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.checkHeader-expanded"><a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line"><tt class="py-docstring">        Empty for fabioimage but may be populated by others classes</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt id="link-363" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-363', 'header', 'link-19');">header</a></tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">types</tt><tt class="py-op">.</tt><tt class="py-name">DictionaryType</tt><tt class= [...]
+<a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line">        <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-364" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-364', 'key', 'link-28');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt id="link-365" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-365' [...]
+<a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line">            <tt class="py-name">new</tt><tt class="py-op">[</tt><tt id="link-366" class="py-name"><a title="fabio.fabioutils.toAscii" class="py-name" href="#" onclick="return doclink('link-366', 'toAscii', 'link-5');">toAscii</a></tt><tt class="py-op">(</tt><tt id="link-367" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-367', 'key', 'link-28');">key</a></tt><tt  [...]
+<a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">new</tt> </tt>
+</div><a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line"> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="edfimage._readHeaderBlock"></a><div id="edfimage._readHeaderBlock-def"><a name="L483"></a><tt class="py-lineno">483</tt> <a class="py-toggle" href="#" id="edfimage._readHeaderBlock-toggle" onclick="return toggle('edfimage._readHeaderBlock');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#_readHeaderBlock">_readHeaderBlock</a><tt class="py-op">(</tt><tt class="py-param">infile</tt><tt class="py-op">)</ [...]
+</div><div id="edfimage._readHeaderBlock-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage._readHeaderBlock-expanded"><a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line"><tt class="py-docstring">        Read in a header in some EDF format from an already open file</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line"><tt class="py-docstring">        @param infile: file object open in read mode</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line"><tt class="py-docstring">        @return: string (or None if no header was found.</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line"> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-369" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-369', 'read', 'link-154');">read</a></tt><tt class="py-op">(</tt><tt id="link-370" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onclick="return doclink('link-370', 'BLOCKSIZE', 'link-11');">BLOCKSIZE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-371" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-371', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">)</tt> <tt class="py-op"><</tt> <tt id="link-372" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onclick [...]
+<a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line">            <tt id="link-373" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-373', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Under-short header: only %i bytes in %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-374" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-374', 'len', 'link-116');">len</a></tt><t [...]
+<a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"{"</tt><tt class="py-op">)</tt> <tt class="py-op"><</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">            <tt class="py-comment"># This does not look like an edf file</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line">            <tt id="link-375" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-375', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"no opening {. Corrupt header of EDF file %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-string">'}'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">block</tt><tt class="py-op">:</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line">            <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt> <tt class="py-op">+</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-376', 'read', 'link-154');">read</a></tt><tt class="py-op">(</tt><tt id="link-377" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onclick="return doclink('link-377', 'BLOCKSIZE', 'link-11');">BLOCKSIZE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-378" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-378', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt id="link-379" class="py-name"><a title="fabio.edfimage.BLOCKSIZE" class="py-name" href="#" onc [...]
+<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line">                <tt id="link-380" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-380', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Runaway header in EDF file"</tt><tt class="py-op">)</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line">        <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"{"</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt>  <tt class="py-line">        <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">block</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"}"</tt><tt class="py-op">)</tt> </tt>
+<a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line"> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line">        <tt class="py-comment"># Now it is essential to go to the start of the binary part</tt> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">block</tt><tt class="py-op">[</tt><tt class="py-name">end</tt><tt class="py-op">:</tt> <tt class="py-name">end</tt> <tt class="py-op">+</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"}\r\n"</tt><tt class="py-op">:</tt> </tt>
+<a name="L509"></a><tt class="py-lineno">509</tt>  <tt class="py-line">            <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">end</tt> <tt class="py-op">+</tt> <tt class="py-number">3</tt> <tt class="py-op">-</tt> <tt id="link-381" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-381', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op" [...]
+<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">block</tt><tt class="py-op">[</tt><tt class="py-name">end</tt><tt class="py-op">:</tt> <tt class="py-name">end</tt> <tt class="py-op">+</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"}\n"</tt><tt class="py-op">:</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line">            <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">end</tt> <tt class="py-op">+</tt> <tt class="py-number">2</tt> <tt class="py-op">-</tt> <tt id="link-382" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-382', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op" [...]
+<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line">            <tt id="link-383" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-383', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to locate start of the binary section"</tt><tt class="py-op">)</tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line">            <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">offset</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line">            <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-384', 'seek', 'link-153');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_CUR</tt><tt class="py-op"> [...]
+<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">block</tt><tt class="py-op">[</tt><tt class="py-name">start</tt><tt class="py-op">:</tt><tt class="py-name">end</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line"> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line"> </tt>
+<a name="edfimage._readheader"></a><div id="edfimage._readheader-def"><a name="L520"></a><tt class="py-lineno">520</tt> <a class="py-toggle" href="#" id="edfimage._readheader-toggle" onclick="return toggle('edfimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">infile< [...]
+</div><div id="edfimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage._readheader-expanded"><a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line"><tt class="py-docstring">        Read all headers in a file and populate self.header</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line"><tt class="py-docstring">        data is not yet populated</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line"><tt class="py-docstring">        @type infile: file object open in read mode</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line">        <tt class="py-name">bContinue</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">bContinue</tt><tt class="py-op">:</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line">            <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name" targets="Static Method fabio.edfimage.edfimage._readHeaderBlock()=fabio.edfimage.edfimage-class.html#_readHeaderBlock"><a title="fabio.edfimage.edfimage._readHeaderBlock" class="py-name" href="#" onclick="return doclink('link-385', '_readHeaderBlock', 'link-385');"> [...]
+<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">block</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">                <tt class="py-name">bContinue</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">            <tt class="py-name">frame</tt> <tt class="py-op">=</tt> <tt id="link-386" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-386', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-name">number</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-387" class="py-name" targets="Variable fabio [...]
+<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line">            <tt id="link-388" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-388', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name" targets="Method fabio.edfimage.Frame.parseheader()=fabio.edfimage.Frame-class.html#parseheader"><a title="fabio.edfimage.Frame.parseheader" class="py-name" href="#" onclick="return doclink('link-389', 'parseheader', 'link-389');">parseheader</a></tt>< [...]
+<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line">            <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line">            <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line">            <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-390', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt id="link-391" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-391', 'size', 'link-48');">size</a></tt> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">+=</tt> <tt class="py-op">[</tt><tt class="py-name">frame</tt><tt class="py-op">]</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L540"></a><tt class="py-lineno">540</tt>  <tt class="py-line">                <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-392" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-392', 'seek', 'link-153');">seek</a></tt><tt class="py-op">(</tt><tt id="link-393" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-393', 'size', 'link-48');">size</a></tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_CUR</tt><tt class="py-op">)</tt> </tt>
+<a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt>  <tt class="py-line">                <tt id="link-394" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-394', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"infile is %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt>  <tt class="py-line">                <tt id="link-395" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-395', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Position is %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line">                <tt id="link-396" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-396', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"size is %s"</tt> <tt class="py-op">%</tt> <tt id="link-397" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-397', 'size', 'link-48');">size</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line">                <tt id="link-398" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-398', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"It seams this error occurs under windows when reading a (large-) file over network: %s "</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line"> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt>  <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> <tt class="py-op">+</tt> <tt id="link-399" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-399', 'size', 'link-48');">size</a></tt> <tt class="py-op">></tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-400" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-400', 'size', 'link-48');">size</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line">                <tt id="link-401" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-401', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Non complete datablock: got %s, expected %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-402" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-402', 'size', 'link-48');">size</a></tt> <tt class="py-op">-</tt> <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">,</tt> <tt id="link-403" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-403', 'size', 'link-48');">size</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt>  <tt class="py-line">                <tt class="py-name">bContinue</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line"> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-404" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-404', 'i', 'link-128');">i</a></tt><tt class="py-op">,</tt> <tt class="py-name">frame</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames< [...]
+<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line">            <tt class="py-name">missing</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt id="link-405" class="py-name"><a title="fabio.cbfimage.MINIMUM_KEYS
+fabio.edfimage.MINIMUM_KEYS
+fabio.kcdimage.MINIMUM_KEYS" class="py-name" href="#" onclick="return doclink('link-405', 'MINIMUM_KEYS', 'link-17');">MINIMUM_KEYS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">item</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt id="link-406" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-406', 'capsHeader', 'link-36');">capsHeader</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L557"></a><tt class="py-lineno">557</tt>  <tt class="py-line">                    <tt class="py-name">missing</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-407" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-407', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">missing</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt>  <tt class="py-line">                <tt id="link-408" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-408', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"EDF file %s frame %i misses mandatory keys: %s "</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt id="link-409" class="py-name"><a title="fabio.fabiout [...]
+<a name="L560"></a><tt class="py-lineno">560</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L561"></a><tt class="py-lineno">561</tt>  <tt class="py-line"> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.read"></a><div id="edfimage.read-def"><a name="L563"></a><tt class="py-lineno">563</tt> <a class="py-toggle" href="#" id="edfimage.read-toggle" onclick="return toggle('edfimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py- [...]
+</div><div id="edfimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.read-expanded"><a name="L564"></a><tt class="py-lineno">564</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt>  <tt class="py-line"><tt class="py-docstring">        Read in header into self.header and</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt>  <tt class="py-line"><tt class="py-docstring">            the data   into self.data</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-410" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-410', 'resetvals', 'link-410');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt>  <tt class="py-line"> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-411" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-411', '_open', 'link-411');">_open</a></tt><tt class="py-op">(</tt><tt  [...]
+<a name="L572"></a><tt class="py-lineno">572</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-412" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._r [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-412', '_readheader', 'link-412');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L573"></a><tt class="py-lineno">573</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">frame</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L574"></a><tt class="py-lineno">574</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L575"></a><tt class="py-lineno">575</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">frame</tt> <tt class="py-op"><</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-413" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-413', 'nframes', 'link-387');">nframes</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L576"></a><tt class="py-lineno">576</tt>  <tt class="py-line">            <tt class="py-name">self</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-414" class="py-name" targets="Method fabio.GEimage.GEimage.getframe()=fabio.GEimage.GEimage-class.html#getframe,Method fabio.edfimage.edfimage.getframe()=fabio.edfimage.edfimage-class.html#getframe,Method fabio.fabioimage.fabioimage.getframe()=fabio.fabioimage.fabioimage-class.html#getfr [...]
+fabio.edfimage.edfimage.getframe
+fabio.fabioimage.fabioimage.getframe" class="py-name" href="#" onclick="return doclink('link-414', 'getframe', 'link-414');">getframe</a></tt><tt class="py-op">(</tt><tt class="py-name">frame</tt><tt class="py-op">)</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt>  <tt class="py-line">            <tt id="link-415" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-415', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Reading file %s You requested frame %s but only %s frames are available"</tt><tt class="py-op">,</tt> <tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">frame</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt i [...]
+<a name="L579"></a><tt class="py-lineno">579</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-417', 'resetvals', 'link-410');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt>  <tt class="py-line">        <tt class="py-comment"># ensure the PIL image is reset</tt> </tt>
+<a name="L581"></a><tt class="py-lineno">581</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L582"></a><tt class="py-lineno">582</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L583"></a><tt class="py-lineno">583</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.swap_needed"></a><div id="edfimage.swap_needed-def"><a name="L584"></a><tt class="py-lineno">584</tt> <a class="py-toggle" href="#" id="edfimage.swap_needed-toggle" onclick="return toggle('edfimage.swap_needed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#swap_needed">swap_needed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.swap_needed-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.swap_needed-expanded"><a name="L585"></a><tt class="py-lineno">585</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt>  <tt class="py-line"><tt class="py-docstring">        Decide if we need to byteswap</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'Low'</tt>  <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-418', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="p [...]
+<a name="L589"></a><tt class="py-lineno">589</tt>  <tt class="py-line">           <tt class="py-op">(</tt><tt class="py-string">'High'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-420" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-420', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-421 [...]
+<a name="L590"></a><tt class="py-lineno">590</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'High'</tt>  <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-422" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-422', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class=" [...]
+<a name="L592"></a><tt class="py-lineno">592</tt>  <tt class="py-line">           <tt class="py-op">(</tt><tt class="py-string">'Low'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-424" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-424', 'header', 'link-19');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-425" [...]
+<a name="L593"></a><tt class="py-lineno">593</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-426" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-426', 'bpp', 'link-49');">bpp</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">,</t [...]
+<a name="L594"></a><tt class="py-lineno">594</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L595"></a><tt class="py-lineno">595</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L597"></a><tt class="py-lineno">597</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.unpack"></a><div id="edfimage.unpack-def"><a name="L598"></a><tt class="py-lineno">598</tt> <a class="py-toggle" href="#" id="edfimage.unpack-toggle" onclick="return toggle('edfimage.unpack');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#unpack">unpack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.unpack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.unpack-expanded"><a name="L599"></a><tt class="py-lineno">599</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt>  <tt class="py-line"><tt class="py-docstring">        Unpack a binary blob according to the specification given in the header and return the dataset</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt>  <tt class="py-line"><tt class="py-docstring">        @return: dataset as numpy.ndarray</tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L604"></a><tt class="py-lineno">604</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-427" class="py-name"><a title="fabio.TiffIO.TiffIO.getData
+fabio.edfimage.Frame.getData
+fabio.edfimage.edfimage.getData" class="py-name" href="#" onclick="return doclink('link-427', 'getData', 'link-198');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L605"></a><tt class="py-lineno">605</tt>  <tt class="py-line"> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.getframe"></a><div id="edfimage.getframe-def"><a name="L607"></a><tt class="py-lineno">607</tt> <a class="py-toggle" href="#" id="edfimage.getframe-toggle" onclick="return toggle('edfimage.getframe');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getframe">getframe</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">num</tt><tt class="py-op" [...]
+</div><div id="edfimage.getframe-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getframe-expanded"><a name="L608"></a><tt class="py-lineno">608</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the file numbered 'num' in the series as a fabioimage """</tt> </tt>
+<a name="L609"></a><tt class="py-lineno">609</tt>  <tt class="py-line">        <tt class="py-name">newImage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-428', 'nframes', 'link-387');">nframes</a></tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt>  <tt class="py-line">            <tt id="link-429" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-429', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Single frame EDF; having fabioimage default behavour: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">num</tt><tt class="py-op">)</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt>  <tt class="py-line">            <tt class="py-name">newImage</tt> <tt class="py-op">=</tt> <tt id="link-430" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-430', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-431" class="py-name"><a title="fabio.GEimage.GEimage.getframe
+fabio.edfimage.edfimage.getframe
+fabio.fabioimage.fabioimage.getframe" class="py-name" href="#" onclick="return doclink('link-431', 'getframe', 'link-414');">getframe</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">num</tt><tt class="py-op">)</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">num</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-432', 'nframes', 'link-387');">nframes</a></tt><tt class="py-op">)</tt><tt class [...]
+<a name="L614"></a><tt class="py-lineno">614</tt>  <tt class="py-line">            <tt id="link-433" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-433', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Multi frame EDF; having edfimage specific behavour: %s/%s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-434" class="py-name"><a title="fabio.e [...]
+<a name="L615"></a><tt class="py-lineno">615</tt>  <tt class="py-line">            <tt class="py-name">newImage</tt> <tt class="py-op">=</tt> <tt id="link-435" class="py-name" targets="Module fabio.edfimage=fabio.edfimage-module.html,Class fabio.edfimage.edfimage=fabio.edfimage.edfimage-class.html"><a title="fabio.edfimage
+fabio.edfimage.edfimage" class="py-name" href="#" onclick="return doclink('link-435', 'edfimage', 'link-435');">edfimage</a></tt><tt class="py-op">(</tt><tt class="py-name">frames</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">)</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt>  <tt class="py-line">            <tt class="py-name">newImage</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">=</tt> <tt class="py-name">num</tt> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt>  <tt class="py-line">            <tt class="py-name">newImage</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt>  <tt class="py-line">            <tt class="py-name">txt</tt> <tt class="py-op">=</tt> <tt class="py-string">"Cannot access frame: %s/%s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-436" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-436', 'nfram [...]
+<a name="L620"></a><tt class="py-lineno">620</tt>  <tt class="py-line">            <tt id="link-437" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-437', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-name">txt</tt><tt class="py-op">)</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"edfimage.getframe:"</tt> <tt class="py-op">+</tt> <tt class="py-name">txt</tt><tt class="py-op">)</tt> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">newImage</tt> </tt>
+</div><a name="L623"></a><tt class="py-lineno">623</tt>  <tt class="py-line"> </tt>
+<a name="L624"></a><tt class="py-lineno">624</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.previous"></a><div id="edfimage.previous-def"><a name="L625"></a><tt class="py-lineno">625</tt> <a class="py-toggle" href="#" id="edfimage.previous-toggle" onclick="return toggle('edfimage.previous');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#previous">previous</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.previous-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.previous-expanded"><a name="L626"></a><tt class="py-lineno">626</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the previous file in the series as a fabioimage """</tt> </tt>
+<a name="L627"></a><tt class="py-lineno">627</tt>  <tt class="py-line">        <tt class="py-name">newImage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-438" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-438', 'nframes', 'link-387');">nframes</a></tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt>  <tt class="py-line">            <tt class="py-name">newImage</tt> <tt class="py-op">=</tt> <tt id="link-439" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-439', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-440" class="py-name" targets="Method fabio.GEimage.GEimage.previous()=fabio.GEimage.GEimage-class.html#previous,Method fabio.edfimage.edfimage.previous()=fabio.edfimage.edfimage-class.html#previous,Method fabio.fabioimage.fabioimage.previous()=fabio.fabioimage.fabioimage-class.html#previous,Method fabio.file_series.fil [...]
+fabio.edfimage.edfimage.previous
+fabio.fabioimage.fabioimage.previous
+fabio.file_series.file_series.previous
+fabio.file_series.filename_series.previous" class="py-name" href="#" onclick="return doclink('link-440', 'previous', 'link-440');">previous</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L630"></a><tt class="py-lineno">630</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt>  <tt class="py-line">            <tt class="py-name">newFrameId</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+<a name="L632"></a><tt class="py-lineno">632</tt>  <tt class="py-line">            <tt class="py-name">newImage</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-441" class="py-name"><a title="fabio.GEimage.GEimage.getframe
+fabio.edfimage.edfimage.getframe
+fabio.fabioimage.fabioimage.getframe" class="py-name" href="#" onclick="return doclink('link-441', 'getframe', 'link-414');">getframe</a></tt><tt class="py-op">(</tt><tt class="py-name">newFrameId</tt><tt class="py-op">)</tt> </tt>
+<a name="L633"></a><tt class="py-lineno">633</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">newImage</tt> </tt>
+</div><a name="L634"></a><tt class="py-lineno">634</tt>  <tt class="py-line"> </tt>
+<a name="L635"></a><tt class="py-lineno">635</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.next"></a><div id="edfimage.next-def"><a name="L636"></a><tt class="py-lineno">636</tt> <a class="py-toggle" href="#" id="edfimage.next-toggle" onclick="return toggle('edfimage.next');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#next">next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.next-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.next-expanded"><a name="L637"></a><tt class="py-lineno">637</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the next file in the series as a fabioimage """</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt>  <tt class="py-line">        <tt class="py-name">newImage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L639"></a><tt class="py-lineno">639</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-442" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-442', 'nframes', 'link-387');">nframes</a></tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt>  <tt class="py-line">            <tt class="py-name">newImage</tt> <tt class="py-op">=</tt> <tt id="link-443" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-443', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-444" class="py-name" targets="Method fabio.GEimage.GEimage.next()=fabio.GEimage.GEimage-class.html#next,Method fabio.edfimage.edfimage.next()=fabio.edfimage.edfimage-class.html#next,Method fabio.fabioimage.fabioimage.next()=fabio.fabioimage.fabioimage-class.html#next,Method fabio.file_series.file_series.next()=fabio.fi [...]
+fabio.edfimage.edfimage.next
+fabio.fabioimage.fabioimage.next
+fabio.file_series.file_series.next
+fabio.file_series.filename_series.next" class="py-name" href="#" onclick="return doclink('link-444', 'next', 'link-444');">next</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L641"></a><tt class="py-lineno">641</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L642"></a><tt class="py-lineno">642</tt>  <tt class="py-line">            <tt class="py-name">newFrameId</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L643"></a><tt class="py-lineno">643</tt>  <tt class="py-line">            <tt class="py-name">newImage</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-445" class="py-name"><a title="fabio.GEimage.GEimage.getframe
+fabio.edfimage.edfimage.getframe
+fabio.fabioimage.fabioimage.getframe" class="py-name" href="#" onclick="return doclink('link-445', 'getframe', 'link-414');">getframe</a></tt><tt class="py-op">(</tt><tt class="py-name">newFrameId</tt><tt class="py-op">)</tt> </tt>
+<a name="L644"></a><tt class="py-lineno">644</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">newImage</tt> </tt>
+</div><a name="L645"></a><tt class="py-lineno">645</tt>  <tt class="py-line"> </tt>
+<a name="L646"></a><tt class="py-lineno">646</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.write"></a><div id="edfimage.write-def"><a name="L647"></a><tt class="py-lineno">647</tt> <a class="py-toggle" href="#" id="edfimage.write-toggle" onclick="return toggle('edfimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt clas [...]
+</div><div id="edfimage.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.write-expanded"><a name="L648"></a><tt class="py-lineno">648</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L649"></a><tt class="py-lineno">649</tt>  <tt class="py-line"><tt class="py-docstring">        Try to write a file</tt> </tt>
+<a name="L650"></a><tt class="py-lineno">650</tt>  <tt class="py-line"><tt class="py-docstring">        check we can write zipped also</tt> </tt>
+<a name="L651"></a><tt class="py-lineno">651</tt>  <tt class="py-line"><tt class="py-docstring">        mimics that fabian was writing uint16 (we sometimes want floats)</tt> </tt>
+<a name="L652"></a><tt class="py-lineno">652</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L653"></a><tt class="py-lineno">653</tt>  <tt class="py-line"><tt class="py-docstring">        @param force_type: can be numpy.uint16 or simply "float"</tt> </tt>
+<a name="L654"></a><tt class="py-lineno">654</tt>  <tt class="py-line"><tt class="py-docstring">        @return: None</tt> </tt>
+<a name="L655"></a><tt class="py-lineno">655</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L656"></a><tt class="py-lineno">656</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L657"></a><tt class="py-lineno">657</tt>  <tt class="py-line"> </tt>
+<a name="L658"></a><tt class="py-lineno">658</tt>  <tt class="py-line">        <tt class="py-name">outfile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-446" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-446', '_open', 'link-411');">_open</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op" [...]
+<a name="L659"></a><tt class="py-lineno">659</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-447" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-447', 'i', 'link-128');">i</a></tt><tt class="py-op">,</tt> <tt class="py-name">frame</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames< [...]
+<a name="L660"></a><tt class="py-lineno">660</tt>  <tt class="py-line">            <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt class="py-name">iFrame</tt> <tt class="py-op">=</tt> <tt id="link-448" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-448', 'i', 'link-128');">i</a></tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-449" class="py-name" targets="Method fabio.GEimage.GEimage.write()=fabio.GEimage.GEimage-class.html#write,Method fabio.OXDimage.OXDimage.write()=fabio.OXDimage.OXDimage-class.html#write,Method fabio.adscimage.adscimage.write()=fabio.adscimage.adscimage-class.html#write,Method fabio.binaryimage.binaryimage.write()=fabio.binaryimage.binaryi [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-449', 'write', 'link-449');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">frame</tt><tt class="py-op">.</tt><tt id="link-450" class="py-name" targets="Method fabio.edfimage.Frame.getEdfBlock()=fabio.edfimage.Frame-class.html#getEdfBlock"><a title="fabio.edfimage.Frame.getEdfBlock" class="py-name" href="#" onclick="return doclink('link-450', 'getEdfBlock', 'link-450');">getEdfBlock</a></tt>< [...]
+<a name="L662"></a><tt class="py-lineno">662</tt>  <tt class="py-line">        <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L663"></a><tt class="py-lineno">663</tt>  <tt class="py-line"> </tt>
+<a name="L664"></a><tt class="py-lineno">664</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.appendFrame"></a><div id="edfimage.appendFrame-def"><a name="L665"></a><tt class="py-lineno">665</tt> <a class="py-toggle" href="#" id="edfimage.appendFrame-toggle" onclick="return toggle('edfimage.appendFrame');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#appendFrame">appendFrame</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frame</ [...]
+</div><div id="edfimage.appendFrame-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.appendFrame-expanded"><a name="L666"></a><tt class="py-lineno">666</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L667"></a><tt class="py-lineno">667</tt>  <tt class="py-line"><tt class="py-docstring">        Method used add a frame to an EDF file</tt> </tt>
+<a name="L668"></a><tt class="py-lineno">668</tt>  <tt class="py-line"><tt class="py-docstring">        @param frame: frame to append to edf image</tt> </tt>
+<a name="L669"></a><tt class="py-lineno">669</tt>  <tt class="py-line"><tt class="py-docstring">        @type frame: instance of Frame</tt> </tt>
+<a name="L670"></a><tt class="py-lineno">670</tt>  <tt class="py-line"><tt class="py-docstring">        @return: None</tt> </tt>
+<a name="L671"></a><tt class="py-lineno">671</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L672"></a><tt class="py-lineno">672</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">frame</tt><tt class="py-op">,</tt> <tt id="link-451" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-451', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L673"></a><tt class="py-lineno">673</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">frame</tt><tt class="py-op">)</tt> </tt>
+<a name="L674"></a><tt class="py-lineno">674</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L675"></a><tt class="py-lineno">675</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-452" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-452', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt id="link-453" class="py-name"><a title="fabio.edfima [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-453', 'data', 'link-44');">data</a></tt><tt class="py-op">,</tt> <tt id="link-454" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-454', 'header', 'link-19');">header</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L676"></a><tt class="py-lineno">676</tt>  <tt class="py-line"> </tt>
+<a name="L677"></a><tt class="py-lineno">677</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.deleteFrame"></a><div id="edfimage.deleteFrame-def"><a name="L678"></a><tt class="py-lineno">678</tt> <a class="py-toggle" href="#" id="edfimage.deleteFrame-toggle" onclick="return toggle('edfimage.deleteFrame');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#deleteFrame">deleteFrame</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">frameNb [...]
+</div><div id="edfimage.deleteFrame-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.deleteFrame-expanded"><a name="L679"></a><tt class="py-lineno">679</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L680"></a><tt class="py-lineno">680</tt>  <tt class="py-line"><tt class="py-docstring">        Method used to remove a frame from an EDF image. by default the last one is removed.</tt> </tt>
+<a name="L681"></a><tt class="py-lineno">681</tt>  <tt class="py-line"><tt class="py-docstring">        @param frameNb: frame number to remove, by  default the last.</tt> </tt>
+<a name="L682"></a><tt class="py-lineno">682</tt>  <tt class="py-line"><tt class="py-docstring">        @type frameNb: integer</tt> </tt>
+<a name="L683"></a><tt class="py-lineno">683</tt>  <tt class="py-line"><tt class="py-docstring">        @return: None</tt> </tt>
+<a name="L684"></a><tt class="py-lineno">684</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L685"></a><tt class="py-lineno">685</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">frameNb</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L686"></a><tt class="py-lineno">686</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="fabio.cbfimage.CIF.pop" class="py-name" href="#" onclick="return doclink('link-455', 'pop', 'link-228');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L687"></a><tt class="py-lineno">687</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L688"></a><tt class="py-lineno">688</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt id="link-456" class="py-name"><a title="fabio.cbfimage.CIF.pop" class="py-name" href="#" onclick="return doclink('link-456', 'pop', 'link-228');">pop</a></tt><tt class="py-op">(</tt><tt class="py-name">frameNb</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L689"></a><tt class="py-lineno">689</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.fastReadData"></a><div id="edfimage.fastReadData-def"><a name="L690"></a><tt class="py-lineno">690</tt> <a class="py-toggle" href="#" id="edfimage.fastReadData-toggle" onclick="return toggle('edfimage.fastReadData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#fastReadData">fastReadData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">f [...]
+</div><div id="edfimage.fastReadData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.fastReadData-expanded"><a name="L691"></a><tt class="py-lineno">691</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L692"></a><tt class="py-lineno">692</tt>  <tt class="py-line"><tt class="py-docstring">        This is a special method that will read and return the data from another file ...</tt> </tt>
+<a name="L693"></a><tt class="py-lineno">693</tt>  <tt class="py-line"><tt class="py-docstring">        The aim is performances, ... but only supports uncompressed files. </tt> </tt>
+<a name="L694"></a><tt class="py-lineno">694</tt>  <tt class="py-line"><tt class="py-docstring">         </tt> </tt>
+<a name="L695"></a><tt class="py-lineno">695</tt>  <tt class="py-line"><tt class="py-docstring">        @return: data from another file using positions from current edfimage</tt> </tt>
+<a name="L696"></a><tt class="py-lineno">696</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L697"></a><tt class="py-lineno">697</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-nam [...]
+<a name="L698"></a><tt class="py-lineno">698</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"edfimage.fastReadData is only valid with another file: %s does not exist"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L699"></a><tt class="py-lineno">699</tt>  <tt class="py-line">        <tt id="link-457" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-457', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt>  <tt class="py-line">        <tt class="py-name">frame</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt> </tt>
+<a name="L701"></a><tt class="py-lineno">701</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt><tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L702"></a><tt class="py-lineno">702</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-458" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-458', 'seek', 'link-153');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">frame</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">)</tt> </tt>
+<a name="L703"></a><tt class="py-lineno">703</tt>  <tt class="py-line">            <tt class="py-name">raw</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-459', 'read', 'link-154');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">frame</tt><tt class="py-op">.</tt><tt id="link-460" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-460', 'size', 'link-48');">size</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L704"></a><tt class="py-lineno">704</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L705"></a><tt class="py-lineno">705</tt>  <tt class="py-line">            <tt id="link-461" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-461', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">raw</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-462" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-462', 'bytecode', 'link-201');">bytecode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L706"></a><tt class="py-lineno">706</tt>  <tt class="py-line">            <tt id="link-463" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-463', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-464', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L707"></a><tt class="py-lineno">707</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">err</tt> <tt class="py-op">:</tt> </tt>
+<a name="L708"></a><tt class="py-lineno">708</tt>  <tt class="py-line">            <tt id="link-465" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-465', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"unable to convert file content to numpy array: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L709"></a><tt class="py-lineno">709</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-466" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-466', 'data', 'link-44');">data</a></tt> </tt>
+</div><a name="L710"></a><tt class="py-lineno">710</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.fastReadROI"></a><div id="edfimage.fastReadROI-def"><a name="L711"></a><tt class="py-lineno">711</tt> <a class="py-toggle" href="#" id="edfimage.fastReadROI-toggle" onclick="return toggle('edfimage.fastReadROI');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#fastReadROI">fastReadROI</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filenam [...]
+</div><div id="edfimage.fastReadROI-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.fastReadROI-expanded"><a name="L712"></a><tt class="py-lineno">712</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L713"></a><tt class="py-lineno">713</tt>  <tt class="py-line"><tt class="py-docstring">        Method reading Region of Interest of another file  based on metadata available in current edfimage.</tt> </tt>
+<a name="L714"></a><tt class="py-lineno">714</tt>  <tt class="py-line"><tt class="py-docstring">        The aim is performances, ... but only supports uncompressed files.</tt> </tt>
+<a name="L715"></a><tt class="py-lineno">715</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L716"></a><tt class="py-lineno">716</tt>  <tt class="py-line"><tt class="py-docstring">        @return: ROI-data from another file using positions from current edfimage</tt> </tt>
+<a name="L717"></a><tt class="py-lineno">717</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: numpy 2darray</tt> </tt>
+<a name="L718"></a><tt class="py-lineno">718</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L719"></a><tt class="py-lineno">719</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-nam [...]
+<a name="L720"></a><tt class="py-lineno">720</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"edfimage.fastReadData is only valid with another file: %s does not exist"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L721"></a><tt class="py-lineno">721</tt>  <tt class="py-line">        <tt id="link-467" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-467', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L722"></a><tt class="py-lineno">722</tt>  <tt class="py-line">        <tt class="py-name">frame</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt>  <tt class="py-line"> </tt>
+<a name="L724"></a><tt class="py-lineno">724</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-468" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-468', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L725"></a><tt class="py-lineno">725</tt>  <tt class="py-line">            <tt class="py-name">slice1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-469" class="py-name" targets="Method fabio.fabioimage.fabioimage.make_slice()=fabio.fabioimage.fabioimage-class.html#make_slice"><a title="fabio.fabioimage.fabioimage.make_slice" class="py-name" href="#" onclick="return doclink('link-469', 'make_slice', 'link-469');">make_slice</a></tt [...]
+<a name="L726"></a><tt class="py-lineno">726</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-470" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-470', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt c [...]
+<a name="L727"></a><tt class="py-lineno">727</tt>  <tt class="py-line">                                  <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">slice</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L728"></a><tt class="py-lineno">728</tt>  <tt class="py-line">            <tt class="py-name">slice1</tt> <tt class="py-op">=</tt> <tt class="py-name">coords</tt> </tt>
+<a name="L729"></a><tt class="py-lineno">729</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L730"></a><tt class="py-lineno">730</tt>  <tt class="py-line">            <tt id="link-471" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-471', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'readROI: Unable to understand Region Of Interest: got %s'</tt><tt class="py-op">,</tt> <tt class="py-name">coords</tt><tt class="py-op">)</tt> </tt>
+<a name="L731"></a><tt class="py-lineno">731</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L732"></a><tt class="py-lineno">732</tt>  <tt class="py-line">        <tt class="py-name">d1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-472" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-472', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L733"></a><tt class="py-lineno">733</tt>  <tt class="py-line">        <tt class="py-name">start0</tt> <tt class="py-op">=</tt> <tt class="py-name">slice1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> </tt>
+<a name="L734"></a><tt class="py-lineno">734</tt>  <tt class="py-line">        <tt class="py-name">start1</tt> <tt class="py-op">=</tt> <tt class="py-name">slice1</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> </tt>
+<a name="L735"></a><tt class="py-lineno">735</tt>  <tt class="py-line">        <tt class="py-name">slice2</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">slice1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">stop</tt> <tt class="py-op">-</tt> <tt class="py-name">start0</tt><tt clas [...]
+<a name="L736"></a><tt class="py-lineno">736</tt>  <tt class="py-line">                   <tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">slice1</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">stop</tt> <tt class="py-op">-</tt> <tt class="py-name">start1</tt><tt class="py-op">,</tt> <tt class="py-name">slice1</tt><tt class="py-op">[</t [...]
+<a name="L737"></a><tt class="py-lineno">737</tt>  <tt class="py-line">        <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">frame</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-473" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-473', 'bpp', 'link-49');">bpp</a></tt> <tt class="py-op">*</tt> <t [...]
+<a name="L738"></a><tt class="py-lineno">738</tt>  <tt class="py-line">        <tt id="link-474" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-474', 'size', 'link-48');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-475" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-475', 'bpp', 'link-49');">bpp</a></tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">slice2</tt><tt class="py-o [...]
+<a name="L739"></a><tt class="py-lineno">739</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt><tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L740"></a><tt class="py-lineno">740</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-476', 'seek', 'link-153');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">start</tt><tt class="py-op">)</tt> </tt>
+<a name="L741"></a><tt class="py-lineno">741</tt>  <tt class="py-line">            <tt class="py-name">raw</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-477" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-477', 'read', 'link-154');">read</a></tt><tt class="py-op">(</tt><tt id="link-478" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-478', 'size', 'link-48');">size</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L742"></a><tt class="py-lineno">742</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L743"></a><tt class="py-lineno">743</tt>  <tt class="py-line">            <tt id="link-479" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-479', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">raw</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-480" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-480', 'bytecode', 'link-201');">bytecode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L744"></a><tt class="py-lineno">744</tt>  <tt class="py-line">            <tt id="link-481" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-481', 'data', 'link-44');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">d1</tt> </tt>
+<a name="L745"></a><tt class="py-lineno">745</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">err</tt> <tt class="py-op">:</tt> </tt>
+<a name="L746"></a><tt class="py-lineno">746</tt>  <tt class="py-line">            <tt id="link-482" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-482', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"unable to convert file content to numpy array: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L747"></a><tt class="py-lineno">747</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-483" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-483', 'data', 'link-44');">data</a></tt><tt class="py-op">[</tt><tt class="py-name">slice2</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L748"></a><tt class="py-lineno">748</tt>  <tt class="py-line"> </tt>
+<a name="L749"></a><tt class="py-lineno">749</tt>  <tt class="py-line"> </tt>
+<a name="L750"></a><tt class="py-lineno">750</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L751"></a><tt class="py-lineno">751</tt>  <tt class="py-line"><tt class="py-comment"># Properties definition for header, data, header_keys and capsHeader</tt> </tt>
+<a name="L752"></a><tt class="py-lineno">752</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="edfimage.getNbFrames"></a><div id="edfimage.getNbFrames-def"><a name="L753"></a><tt class="py-lineno">753</tt> <a class="py-toggle" href="#" id="edfimage.getNbFrames-toggle" onclick="return toggle('edfimage.getNbFrames');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getNbFrames">getNbFrames</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.getNbFrames-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getNbFrames-expanded"><a name="L754"></a><tt class="py-lineno">754</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L755"></a><tt class="py-lineno">755</tt>  <tt class="py-line"><tt class="py-docstring">        Getter for number of frames</tt> </tt>
+<a name="L756"></a><tt class="py-lineno">756</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L757"></a><tt class="py-lineno">757</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-484" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-484', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">)</tt> </tt>
+</div><a name="edfimage.setNbFrames"></a><div id="edfimage.setNbFrames-def"><a name="L758"></a><tt class="py-lineno">758</tt> <a class="py-toggle" href="#" id="edfimage.setNbFrames-toggle" onclick="return toggle('edfimage.setNbFrames');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#setNbFrames">setNbFrames</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">v [...]
+</div><div id="edfimage.setNbFrames-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.setNbFrames-expanded"><a name="L759"></a><tt class="py-lineno">759</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L760"></a><tt class="py-lineno">760</tt>  <tt class="py-line"><tt class="py-docstring">        Setter for number of frames ... should do nothing. Here just to avoid bugs</tt> </tt>
+<a name="L761"></a><tt class="py-lineno">761</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L762"></a><tt class="py-lineno">762</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">val</tt> <tt class="py-op">!=</tt> <tt id="link-485" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-485', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">)</tt><tt class="py-op">:< [...]
+<a name="L763"></a><tt class="py-lineno">763</tt>  <tt class="py-line">            <tt id="link-486" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-486', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"trying to set the number of frames "</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L764"></a><tt class="py-lineno">764</tt>  <tt class="py-line">    <tt id="link-487" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-487', 'nframes', 'link-387');">nframes</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-488" class="py-name" targets="Method fabio.edfimage.edfimage.getNbFrames()=fabio.edfimage.edfimage-class.html#getNbFrames"><a title="fab [...]
+<a name="L765"></a><tt class="py-lineno">765</tt>  <tt class="py-line"> </tt>
+<a name="L766"></a><tt class="py-lineno">766</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.getHeader"></a><div id="edfimage.getHeader-def"><a name="L767"></a><tt class="py-lineno">767</tt> <a class="py-toggle" href="#" id="edfimage.getHeader-toggle" onclick="return toggle('edfimage.getHeader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getHeader">getHeader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.getHeader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getHeader-expanded"><a name="L768"></a><tt class="py-lineno">768</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L769"></a><tt class="py-lineno">769</tt>  <tt class="py-line"><tt class="py-docstring">        Getter for the headers. used by the property header,</tt> </tt>
+<a name="L770"></a><tt class="py-lineno">770</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L771"></a><tt class="py-lineno">771</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-490" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link [...]
+</div><a name="edfimage.setHeader"></a><div id="edfimage.setHeader-def"><a name="L772"></a><tt class="py-lineno">772</tt> <a class="py-toggle" href="#" id="edfimage.setHeader-toggle" onclick="return toggle('edfimage.setHeader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#setHeader">setHeader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_dictHeader</ [...]
+</div><div id="edfimage.setHeader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.setHeader-expanded"><a name="L773"></a><tt class="py-lineno">773</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L774"></a><tt class="py-lineno">774</tt>  <tt class="py-line"><tt class="py-docstring">        Enforces the propagation of the header to the list of frames</tt> </tt>
+<a name="L775"></a><tt class="py-lineno">775</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L776"></a><tt class="py-lineno">776</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L777"></a><tt class="py-lineno">777</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-491" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-491', 'header', 'link-19');">h [...]
+<a name="L778"></a><tt class="py-lineno">778</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L779"></a><tt class="py-lineno">779</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-492" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-492', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt id="link-493" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py [...]
+<a name="L780"></a><tt class="py-lineno">780</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L781"></a><tt class="py-lineno">781</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op"><</tt> <tt id="link-494" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-494', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L782"></a><tt class="py-lineno">782</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-495" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-495', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt id="link-496" class="py-name"><a title="fabio.ed [...]
+</div><a name="edfimage.delHeader"></a><div id="edfimage.delHeader-def"><a name="L783"></a><tt class="py-lineno">783</tt> <a class="py-toggle" href="#" id="edfimage.delHeader-toggle" onclick="return toggle('edfimage.delHeader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#delHeader">delHeader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.delHeader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.delHeader-expanded"><a name="L784"></a><tt class="py-lineno">784</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L785"></a><tt class="py-lineno">785</tt>  <tt class="py-line"><tt class="py-docstring">        Deleter for edf header</tt> </tt>
+<a name="L786"></a><tt class="py-lineno">786</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L787"></a><tt class="py-lineno">787</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-497" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-497', 'header', 'link-19');">heade [...]
+</div><a name="L788"></a><tt class="py-lineno">788</tt>  <tt class="py-line">    <tt id="link-498" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-498', 'header', 'link-19');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-499" class="py-name" targets="Method fabio.edfimage.edfimage.getHeader()=fabio.edfimage.edfimage-class.html#getHeader"><a title="fabio.edfim [...]
+<a name="L789"></a><tt class="py-lineno">789</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.getHeaderKeys"></a><div id="edfimage.getHeaderKeys-def"><a name="L790"></a><tt class="py-lineno">790</tt> <a class="py-toggle" href="#" id="edfimage.getHeaderKeys-toggle" onclick="return toggle('edfimage.getHeaderKeys');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getHeaderKeys">getHeaderKeys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op" [...]
+</div><div id="edfimage.getHeaderKeys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getHeaderKeys-expanded"><a name="L791"></a><tt class="py-lineno">791</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L792"></a><tt class="py-lineno">792</tt>  <tt class="py-line"><tt class="py-docstring">        Getter for edf header_keys</tt> </tt>
+<a name="L793"></a><tt class="py-lineno">793</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L794"></a><tt class="py-lineno">794</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-502" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink( [...]
+</div><a name="edfimage.setHeaderKeys"></a><div id="edfimage.setHeaderKeys-def"><a name="L795"></a><tt class="py-lineno">795</tt> <a class="py-toggle" href="#" id="edfimage.setHeaderKeys-toggle" onclick="return toggle('edfimage.setHeaderKeys');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#setHeaderKeys">setHeaderKeys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class= [...]
+</div><div id="edfimage.setHeaderKeys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.setHeaderKeys-expanded"><a name="L796"></a><tt class="py-lineno">796</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L797"></a><tt class="py-lineno">797</tt>  <tt class="py-line"><tt class="py-docstring">        Enforces the propagation of the header_keys to the list of frames</tt> </tt>
+<a name="L798"></a><tt class="py-lineno">798</tt>  <tt class="py-line"><tt class="py-docstring">        @param _listtHeader: list of the (ordered) keys in the header</tt> </tt>
+<a name="L799"></a><tt class="py-lineno">799</tt>  <tt class="py-line"><tt class="py-docstring">        @type _listtHeader: python list</tt> </tt>
+<a name="L800"></a><tt class="py-lineno">800</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L801"></a><tt class="py-lineno">801</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L802"></a><tt class="py-lineno">802</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-503', 'header_keys', 'lin [...]
+<a name="L803"></a><tt class="py-lineno">803</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L804"></a><tt class="py-lineno">804</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-504" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-504', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt id="link-505" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" clas [...]
+<a name="L805"></a><tt class="py-lineno">805</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L806"></a><tt class="py-lineno">806</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op"><</tt> <tt id="link-506" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-506', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L807"></a><tt class="py-lineno">807</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-507" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-507', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt id="link-508" class="py-name"><a title="fabio.ed [...]
+</div><a name="edfimage.delHeaderKeys"></a><div id="edfimage.delHeaderKeys-def"><a name="L808"></a><tt class="py-lineno">808</tt> <a class="py-toggle" href="#" id="edfimage.delHeaderKeys-toggle" onclick="return toggle('edfimage.delHeaderKeys');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#delHeaderKeys">delHeaderKeys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class=" [...]
+</div><div id="edfimage.delHeaderKeys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.delHeaderKeys-expanded"><a name="L809"></a><tt class="py-lineno">809</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L810"></a><tt class="py-lineno">810</tt>  <tt class="py-line"><tt class="py-docstring">        Deleter for edf header_keys</tt> </tt>
+<a name="L811"></a><tt class="py-lineno">811</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L812"></a><tt class="py-lineno">812</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-509" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-509', 'header_keys', 'link-23 [...]
+</div><a name="L813"></a><tt class="py-lineno">813</tt>  <tt class="py-line">    <tt id="link-510" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-510', 'header_keys', 'link-23');">header_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-511" class="py-name" targets="Method fabio.edfimage.edfimage.getHeaderKeys()=fabio.edfimage.edfimage-class.html#getHeaderKeys [...]
+<a name="L814"></a><tt class="py-lineno">814</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.getData"></a><div id="edfimage.getData-def"><a name="L815"></a><tt class="py-lineno">815</tt> <a class="py-toggle" href="#" id="edfimage.getData-toggle" onclick="return toggle('edfimage.getData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getData">getData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.getData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getData-expanded"><a name="L816"></a><tt class="py-lineno">816</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L817"></a><tt class="py-lineno">817</tt>  <tt class="py-line"><tt class="py-docstring">        getter for edf Data</tt> </tt>
+<a name="L818"></a><tt class="py-lineno">818</tt>  <tt class="py-line"><tt class="py-docstring">        @return: data for current frame</tt> </tt>
+<a name="L819"></a><tt class="py-lineno">819</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: numpy.ndarray</tt> </tt>
+<a name="L820"></a><tt class="py-lineno">820</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L821"></a><tt class="py-lineno">821</tt>  <tt class="py-line">        <tt class="py-name">npaData</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L822"></a><tt class="py-lineno">822</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L823"></a><tt class="py-lineno">823</tt>  <tt class="py-line">            <tt class="py-name">npaData</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-514" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-514', 'data', 'link-44');">data</a></tt> </tt>
+<a name="L824"></a><tt class="py-lineno">824</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L825"></a><tt class="py-lineno">825</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-515" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-515', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L826"></a><tt class="py-lineno">826</tt>  <tt class="py-line">            <tt class="py-name">npaData</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-516" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-516', 'data', 'link-44');">data</a></tt> </tt>
+<a name="L827"></a><tt class="py-lineno">827</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L828"></a><tt class="py-lineno">828</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op"><</tt> <tt id="link-517" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-517', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L829"></a><tt class="py-lineno">829</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-518" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-518', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L830"></a><tt class="py-lineno">830</tt>  <tt class="py-line">                <tt class="py-name">npaData</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-519" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-519', 'data', 'link-44');">data</a></tt> </tt>
+<a name="L831"></a><tt class="py-lineno">831</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">npaData</tt> </tt>
+</div><a name="L832"></a><tt class="py-lineno">832</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.setData"></a><div id="edfimage.setData-def"><a name="L833"></a><tt class="py-lineno">833</tt> <a class="py-toggle" href="#" id="edfimage.setData-toggle" onclick="return toggle('edfimage.setData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#setData">setData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_data</tt><tt class="py-op">)</ [...]
+</div><div id="edfimage.setData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.setData-expanded"><a name="L834"></a><tt class="py-lineno">834</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L835"></a><tt class="py-lineno">835</tt>  <tt class="py-line"><tt class="py-docstring">        Enforces the propagation of the data to the list of frames</tt> </tt>
+<a name="L836"></a><tt class="py-lineno">836</tt>  <tt class="py-line"><tt class="py-docstring">        @param _data: numpy array representing data</tt> </tt>
+<a name="L837"></a><tt class="py-lineno">837</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L838"></a><tt class="py-lineno">838</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L839"></a><tt class="py-lineno">839</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-520" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-520', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_data</tt> </tt>
+<a name="L840"></a><tt class="py-lineno">840</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L841"></a><tt class="py-lineno">841</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-521" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-521', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt id="link-522" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-522', 'data', 'link-44');">data</a></tt><tt class="py-op">=</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L842"></a><tt class="py-lineno">842</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L843"></a><tt class="py-lineno">843</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op"><</tt> <tt id="link-523" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-523', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L844"></a><tt class="py-lineno">844</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-524', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt id="link-525" class="py-name"><a title="fabio.ed [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-525', 'data', 'link-44');">data</a></tt><tt class="py-op">=</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="edfimage.delData"></a><div id="edfimage.delData-def"><a name="L845"></a><tt class="py-lineno">845</tt> <a class="py-toggle" href="#" id="edfimage.delData-toggle" onclick="return toggle('edfimage.delData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#delData">delData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.delData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.delData-expanded"><a name="L846"></a><tt class="py-lineno">846</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L847"></a><tt class="py-lineno">847</tt>  <tt class="py-line"><tt class="py-docstring">        deleter for edf Data</tt> </tt>
+<a name="L848"></a><tt class="py-lineno">848</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L849"></a><tt class="py-lineno">849</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-526" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-526', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L850"></a><tt class="py-lineno">850</tt>  <tt class="py-line">    <tt id="link-527" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-527', 'data', 'link-44');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-528" class="py-name"><a title="fabio.TiffIO.TiffIO.getData
+fabio.edfimage.Frame.getData
+fabio.edfimage.edfimage.getData" class="py-name" href="#" onclick="return doclink('link-528', 'getData', 'link-198');">getData</a></tt><tt class="py-op">,</tt> <tt id="link-529" class="py-name"><a title="fabio.OXDimage.Section.setData
+fabio.edfimage.Frame.setData
+fabio.edfimage.edfimage.setData" class="py-name" href="#" onclick="return doclink('link-529', 'setData', 'link-199');">setData</a></tt><tt class="py-op">,</tt> <tt id="link-530" class="py-name" targets="Method fabio.edfimage.edfimage.delData()=fabio.edfimage.edfimage-class.html#delData"><a title="fabio.edfimage.edfimage.delData" class="py-name" href="#" onclick="return doclink('link-530', 'delData', 'link-530');">delData</a></tt><tt class="py-op">,</tt> <tt class="py-string">"property: d [...]
+<a name="L851"></a><tt class="py-lineno">851</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.getCapsHeader"></a><div id="edfimage.getCapsHeader-def"><a name="L852"></a><tt class="py-lineno">852</tt> <a class="py-toggle" href="#" id="edfimage.getCapsHeader-toggle" onclick="return toggle('edfimage.getCapsHeader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getCapsHeader">getCapsHeader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op" [...]
+</div><div id="edfimage.getCapsHeader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getCapsHeader-expanded"><a name="L853"></a><tt class="py-lineno">853</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L854"></a><tt class="py-lineno">854</tt>  <tt class="py-line"><tt class="py-docstring">        getter for edf headers keys in upper case</tt> </tt>
+<a name="L855"></a><tt class="py-lineno">855</tt>  <tt class="py-line"><tt class="py-docstring">        @return: data for current frame</tt> </tt>
+<a name="L856"></a><tt class="py-lineno">856</tt>  <tt class="py-line"><tt class="py-docstring">        @rtype: dict</tt> </tt>
+<a name="L857"></a><tt class="py-lineno">857</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L858"></a><tt class="py-lineno">858</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-531" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink(' [...]
+</div><a name="edfimage.setCapsHeader"></a><div id="edfimage.setCapsHeader-def"><a name="L859"></a><tt class="py-lineno">859</tt> <a class="py-toggle" href="#" id="edfimage.setCapsHeader-toggle" onclick="return toggle('edfimage.setCapsHeader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#setCapsHeader">setCapsHeader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class= [...]
+</div><div id="edfimage.setCapsHeader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.setCapsHeader-expanded"><a name="L860"></a><tt class="py-lineno">860</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L861"></a><tt class="py-lineno">861</tt>  <tt class="py-line"><tt class="py-docstring">        Enforces the propagation of the header_keys to the list of frames</tt> </tt>
+<a name="L862"></a><tt class="py-lineno">862</tt>  <tt class="py-line"><tt class="py-docstring">        @param _data: numpy array representing data</tt> </tt>
+<a name="L863"></a><tt class="py-lineno">863</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L864"></a><tt class="py-lineno">864</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-532" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-532', 'capsHeader', 'link-36') [...]
+</div><a name="edfimage.delCapsHeader"></a><div id="edfimage.delCapsHeader-def"><a name="L865"></a><tt class="py-lineno">865</tt> <a class="py-toggle" href="#" id="edfimage.delCapsHeader-toggle" onclick="return toggle('edfimage.delCapsHeader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#delCapsHeader">delCapsHeader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class=" [...]
+</div><div id="edfimage.delCapsHeader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.delCapsHeader-expanded"><a name="L866"></a><tt class="py-lineno">866</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L867"></a><tt class="py-lineno">867</tt>  <tt class="py-line"><tt class="py-docstring">        deleter for edf capsHeader</tt> </tt>
+<a name="L868"></a><tt class="py-lineno">868</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L869"></a><tt class="py-lineno">869</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-533" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-533', 'capsHeader', 'link-36') [...]
+</div><a name="L870"></a><tt class="py-lineno">870</tt>  <tt class="py-line">    <tt id="link-534" class="py-name"><a title="fabio.edfimage.edfimage.capsHeader" class="py-name" href="#" onclick="return doclink('link-534', 'capsHeader', 'link-36');">capsHeader</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-535" class="py-name" targets="Method fabio.edfimage.edfimage.getCapsHeader()=fabio.edfimage.edfimage-class.html#getCapsHeader">< [...]
+<a name="L871"></a><tt class="py-lineno">871</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.getDim1"></a><div id="edfimage.getDim1-def"><a name="L872"></a><tt class="py-lineno">872</tt> <a class="py-toggle" href="#" id="edfimage.getDim1-toggle" onclick="return toggle('edfimage.getDim1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getDim1">getDim1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.getDim1-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getDim1-expanded"><a name="L873"></a><tt class="py-lineno">873</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">. [...]
+</div><a name="edfimage.setDim1"></a><div id="edfimage.setDim1-def"><a name="L874"></a><tt class="py-lineno">874</tt> <a class="py-toggle" href="#" id="edfimage.setDim1-toggle" onclick="return toggle('edfimage.setDim1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#setDim1">setDim1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_iVal</tt><tt class="py-o [...]
+</div><div id="edfimage.setDim1-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.setDim1-expanded"><a name="L875"></a><tt class="py-lineno">875</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L876"></a><tt class="py-lineno">876</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-539" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-539', 'dim1', 'link-46');">dim1< [...]
+<a name="L877"></a><tt class="py-lineno">877</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L878"></a><tt class="py-lineno">878</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-540" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-540', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L879"></a><tt class="py-lineno">879</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L880"></a><tt class="py-lineno">880</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op"><</tt> <tt id="link-541" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-541', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L881"></a><tt class="py-lineno">881</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-542" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-542', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L882"></a><tt class="py-lineno">882</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-543" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-543', 'dim1', 'link-46');">d [...]
+</div><a name="L883"></a><tt class="py-lineno">883</tt>  <tt class="py-line">    <tt id="link-544" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-544', 'dim1', 'link-46');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-545" class="py-name" targets="Method fabio.edfimage.edfimage.getDim1()=fabio.edfimage.edfimage-class.html#getDim1"><a title="fabio.edfimage.edfima [...]
+<a name="edfimage.getDim2"></a><div id="edfimage.getDim2-def"><a name="L884"></a><tt class="py-lineno">884</tt> <a class="py-toggle" href="#" id="edfimage.getDim2-toggle" onclick="return toggle('edfimage.getDim2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getDim2">getDim2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.getDim2-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getDim2-expanded"><a name="L885"></a><tt class="py-lineno">885</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">. [...]
+</div><a name="edfimage.setDim2"></a><div id="edfimage.setDim2-def"><a name="L886"></a><tt class="py-lineno">886</tt> <a class="py-toggle" href="#" id="edfimage.setDim2-toggle" onclick="return toggle('edfimage.setDim2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#setDim2">setDim2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_iVal</tt><tt class="py-o [...]
+</div><div id="edfimage.setDim2-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.setDim2-expanded"><a name="L887"></a><tt class="py-lineno">887</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L888"></a><tt class="py-lineno">888</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-548" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-548', 'dim2', 'link-47');">dim2< [...]
+<a name="L889"></a><tt class="py-lineno">889</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L890"></a><tt class="py-lineno">890</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-549" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-549', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L891"></a><tt class="py-lineno">891</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L892"></a><tt class="py-lineno">892</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op"><</tt> <tt id="link-550" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-550', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L893"></a><tt class="py-lineno">893</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-551" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-551', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L894"></a><tt class="py-lineno">894</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-552" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-552', 'dim2', 'link-47');">d [...]
+</div><a name="L895"></a><tt class="py-lineno">895</tt>  <tt class="py-line">    <tt id="link-553" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-553', 'dim2', 'link-47');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-554" class="py-name" targets="Method fabio.edfimage.edfimage.getDim2()=fabio.edfimage.edfimage-class.html#getDim2"><a title="fabio.edfimage.edfima [...]
+<a name="L896"></a><tt class="py-lineno">896</tt>  <tt class="py-line"> </tt>
+<a name="edfimage.getDims"></a><div id="edfimage.getDims-def"><a name="L897"></a><tt class="py-lineno">897</tt> <a class="py-toggle" href="#" id="edfimage.getDims-toggle" onclick="return toggle('edfimage.getDims');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getDims">getDims</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.getDims-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getDims-expanded"><a name="L898"></a><tt class="py-lineno">898</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">. [...]
+</div><a name="L899"></a><tt class="py-lineno">899</tt>  <tt class="py-line">    <tt id="link-557" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-557', 'dims', 'link-45');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-558" class="py-name" targets="Method fabio.edfimage.edfimage.getDims()=fabio.edfimage.edfimage-class.html#getDims"><a title="fabio.edfimage.edfima [...]
+<a name="edfimage.getByteCode"></a><div id="edfimage.getByteCode-def"><a name="L900"></a><tt class="py-lineno">900</tt> <a class="py-toggle" href="#" id="edfimage.getByteCode-toggle" onclick="return toggle('edfimage.getByteCode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getByteCode">getByteCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.getByteCode-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getByteCode-expanded"><a name="L901"></a><tt class="py-lineno">901</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class=" [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-559', 'bytecode', 'link-201');">bytecode</a></tt> </tt>
+</div><a name="edfimage.setByteCode"></a><div id="edfimage.setByteCode-def"><a name="L902"></a><tt class="py-lineno">902</tt> <a class="py-toggle" href="#" id="edfimage.setByteCode-toggle" onclick="return toggle('edfimage.setByteCode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#setByteCode">setByteCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_ [...]
+</div><div id="edfimage.setByteCode-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.setByteCode-expanded"><a name="L903"></a><tt class="py-lineno">903</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L904"></a><tt class="py-lineno">904</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-560" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-560', 'bytecode', 'link-201');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_iVal</tt> </tt>
+<a name="L905"></a><tt class="py-lineno">905</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L906"></a><tt class="py-lineno">906</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-561" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-561', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L907"></a><tt class="py-lineno">907</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L908"></a><tt class="py-lineno">908</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op"><</tt> <tt id="link-562" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-562', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L909"></a><tt class="py-lineno">909</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-563" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-563', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L910"></a><tt class="py-lineno">910</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-564" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-564', 'bytecode', 'link-201');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_iVal</tt> </tt>
+</div><a name="L911"></a><tt class="py-lineno">911</tt>  <tt class="py-line">    <tt id="link-565" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-565', 'bytecode', 'link-201');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-566" class="py-name"><a title="fabio.edfimage.Frame.getByteCode
+fabio.edfimage.edfimage.getByteCode" class="py-name" href="#" onclick="return doclink('link-566', 'getByteCode', 'link-202');">getByteCode</a></tt><tt class="py-op">,</tt> <tt id="link-567" class="py-name"><a title="fabio.edfimage.Frame.setByteCode
+fabio.edfimage.edfimage.setByteCode" class="py-name" href="#" onclick="return doclink('link-567', 'setByteCode', 'link-203');">setByteCode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="edfimage.getBpp"></a><div id="edfimage.getBpp-def"><a name="L912"></a><tt class="py-lineno">912</tt> <a class="py-toggle" href="#" id="edfimage.getBpp-toggle" onclick="return toggle('edfimage.getBpp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#getBpp">getBpp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="edfimage.getBpp-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.getBpp-expanded"><a name="L913"></a><tt class="py-lineno">913</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</ [...]
+</div><a name="edfimage.setBpp"></a><div id="edfimage.setBpp-def"><a name="L914"></a><tt class="py-lineno">914</tt> <a class="py-toggle" href="#" id="edfimage.setBpp-toggle" onclick="return toggle('edfimage.setBpp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.edfimage.edfimage-class.html#setBpp">setBpp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_iVal</tt><tt class="py-op">)</ [...]
+</div><div id="edfimage.setBpp-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="edfimage.setBpp-expanded"><a name="L915"></a><tt class="py-lineno">915</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L916"></a><tt class="py-lineno">916</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-569" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-569', 'bpp', 'link-49');">bpp</a> [...]
+<a name="L917"></a><tt class="py-lineno">917</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L918"></a><tt class="py-lineno">918</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-570" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-570', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L919"></a><tt class="py-lineno">919</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L920"></a><tt class="py-lineno">920</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op"><</tt> <tt id="link-571" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-571', 'len', 'link-116');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class [...]
+<a name="L921"></a><tt class="py-lineno">921</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-572" class="py-name"><a title="fabio.edfimage.Frame" class="py-name" href="#" onclick="return doclink('link-572', 'Frame', 'link-356');">Frame</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L922"></a><tt class="py-lineno">922</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__frames</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-573" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-573', 'bpp', 'link-49');">bpp [...]
+</div><a name="L923"></a><tt class="py-lineno">923</tt>  <tt class="py-line">    <tt id="link-574" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-574', 'bpp', 'link-49');">bpp</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-575" class="py-name" targets="Method fabio.edfimage.edfimage.getBpp()=fabio.edfimage.edfimage-class.html#getBpp"><a title="fabio.edfimage.edfimage.ge [...]
+</div><a name="L924"></a><tt class="py-lineno">924</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:42 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.edfimage.Frame-class.html b/epydoc/fabio.edfimage.Frame-class.html
new file mode 100644
index 0000000..ccf5114
--- /dev/null
+++ b/epydoc/fabio.edfimage.Frame-class.html
@@ -0,0 +1,529 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.edfimage.Frame</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.edfimage-module.html">Module edfimage</a> ::
+        Class Frame
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.edfimage.Frame-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Frame</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame">source code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Frame</strong>
+</pre>
+
+<hr />
+<p>A class representing a single frame in an EDF file</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.Frame-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">header</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">header_keys</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">number</span>=<span class="summary-sig-default">None</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.Frame-class.html#parseheader" class="summary-sig-name">parseheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">block</span>)</span><br />
+      Parse the header in some EDF format from an already open file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.parseheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="swap_needed"></a><span class="summary-sig-name">swap_needed</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Decide if we need to byteswap</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.swap_needed">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.Frame-class.html#getData" class="summary-sig-name">getData</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Unpack a binary blob according to the specification given in the 
+      header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.getData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setData"></a><span class="summary-sig-name">setData</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">npa</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Setter for data in edf frame</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.setData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getByteCode"></a><span class="summary-sig-name">getByteCode</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.getByteCode">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setByteCode"></a><span class="summary-sig-name">setByteCode</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.setByteCode">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">python string with the concatenation of the ascii header and the 
+      binary data block</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.Frame-class.html#getEdfBlock" class="summary-sig-name">getEdfBlock</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">force_type</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">fit2dMode</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Returns:
+      ascii header block</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.getEdfBlock">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.Frame-class.html#data" class="summary-name">data</a><br />
+      Unpack a binary blob according to the specification given in the 
+      header
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.Frame-class.html#bytecode" class="summary-name">bytecode</a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">header</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">header_keys</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">number</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="parseheader"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">parseheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">block</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.parseheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Parse the header in some EDF format from an already open file</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>block</code></strong> (string, should be full ascii) - string representing the header block</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>size of the binary blob</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="getData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">getData</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.getData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Unpack a binary blob according to the specification given in the 
+  header</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>dataset as numpy.ndarray</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="getEdfBlock"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">getEdfBlock</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">force_type</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">fit2dMode</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#Frame.getEdfBlock">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>force_type</code></strong> (string or numpy.dtype) - type of the dataset to be enforced like "float64" or 
+          "uint16"</li>
+        <li><strong class="pname"><code>fit2dMode</code></strong> (boolean) - enforce compatibility with fit2d and starts countimg number of 
+          images at 1</li>
+    </ul></dd>
+    <dt>Returns: python string with the concatenation of the ascii header and the 
+      binary data block</dt>
+        <dd>ascii header block</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== PROPERTY DETAILS ==================== -->
+<a name="section-PropertyDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Property Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-PropertyDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="data"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">data</h3>
+  <p>Unpack a binary blob according to the specification given in the 
+  header</p>
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.Frame-class.html#getData" class="summary-sig-name">getData</a>(<span class="summary-sig-arg">self</span>)</span>
+        - Unpack a binary blob according to the specification given in the 
+      header
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.Frame-class.html#setData" class="summary-sig-name">setData</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">npa</span>=<span class="summary-sig-default">None</span>)</span>
+        - Setter for data in edf frame
+    </dd>
+    <dt>Delete Method:</dt>
+    <dd class="value"><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">property: (edf)frame.data, uncompress the datablock when needed</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="bytecode"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">bytecode</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.Frame-class.html#getByteCode" class="summary-sig-name">getByteCode</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.Frame-class.html#setByteCode" class="summary-sig-name">setByteCode</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.edfimage.edfimage-class.html b/epydoc/fabio.edfimage.edfimage-class.html
new file mode 100644
index 0000000..3286081
--- /dev/null
+++ b/epydoc/fabio.edfimage.edfimage-class.html
@@ -0,0 +1,1759 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.edfimage.edfimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.edfimage-module.html">Module edfimage</a> ::
+        Class edfimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.edfimage.edfimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class edfimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">edfimage</strong>
+</pre>
+
+<hr />
+<p>Read and try to write the ESRF edf data format</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">header</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">header_keys</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">frames</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Set up initial values</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Read all headers in a file and populate self.header data is not yet 
+      populated</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in header into self.header and...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="swap_needed"></a><span class="summary-sig-name">swap_needed</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Decide if we need to byteswap</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.swap_needed">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#unpack" class="summary-sig-name">unpack</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Unpack a binary blob according to the specification given in the 
+      header and return the dataset</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.unpack">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getframe" class="summary-sig-name">getframe</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num</span>)</span><br />
+      returns the file numbered 'num' in the series as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getframe">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#previous" class="summary-sig-name">previous</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the previous file in the series as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.previous">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#next" class="summary-sig-name">next</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the next file in the series as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.next">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">force_type</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">fit2dMode</span>=<span class="summary-sig-default">False</span>)</span><br />
+      Try to write a file check we can write zipped also mimics that fabian
+      was writing uint16 (we sometimes want floats)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#appendFrame" class="summary-sig-name">appendFrame</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">header</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Method used add a frame to an EDF file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.appendFrame">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#deleteFrame" class="summary-sig-name">deleteFrame</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">frameNb</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Method used to remove a frame from an EDF image.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.deleteFrame">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#fastReadData" class="summary-sig-name">fastReadData</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+      This is a special method that will read and return the data from 
+      another file ...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.fastReadData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">numpy 2darray</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#fastReadROI" class="summary-sig-name">fastReadROI</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>,
+        <span class="summary-sig-arg">coords</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Method reading Region of Interest of another file  based on metadata 
+      available in current edfimage.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.fastReadROI">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getNbFrames"></a><span class="summary-sig-name">getNbFrames</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Getter for number of frames</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getNbFrames">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setNbFrames" class="summary-sig-name">setNbFrames</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">val</span>)</span><br />
+      Setter for number of frames ...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setNbFrames">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getHeader" class="summary-sig-name">getHeader</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Getter for the headers.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getHeader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setHeader"></a><span class="summary-sig-name">setHeader</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_dictHeader</span>)</span><br />
+      Enforces the propagation of the header to the list of frames</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setHeader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="delHeader"></a><span class="summary-sig-name">delHeader</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Deleter for edf header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.delHeader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getHeaderKeys"></a><span class="summary-sig-name">getHeaderKeys</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Getter for edf header_keys</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getHeaderKeys">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setHeaderKeys" class="summary-sig-name">setHeaderKeys</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_listtHeader</span>)</span><br />
+      Enforces the propagation of the header_keys to the list of frames</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setHeaderKeys">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="delHeaderKeys"></a><span class="summary-sig-name">delHeaderKeys</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Deleter for edf header_keys</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.delHeaderKeys">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">numpy.ndarray</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getData" class="summary-sig-name">getData</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      getter for edf Data</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setData" class="summary-sig-name">setData</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_data</span>)</span><br />
+      Enforces the propagation of the data to the list of frames</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="delData"></a><span class="summary-sig-name">delData</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      deleter for edf Data</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.delData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">dict</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getCapsHeader" class="summary-sig-name">getCapsHeader</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      getter for edf headers keys in upper case</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getCapsHeader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setCapsHeader" class="summary-sig-name">setCapsHeader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_data</span>)</span><br />
+      Enforces the propagation of the header_keys to the list of frames</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setCapsHeader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="delCapsHeader"></a><span class="summary-sig-name">delCapsHeader</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      deleter for edf capsHeader</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.delCapsHeader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getDim1"></a><span class="summary-sig-name">getDim1</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getDim1">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setDim1"></a><span class="summary-sig-name">setDim1</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setDim1">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getDim2"></a><span class="summary-sig-name">getDim2</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getDim2">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setDim2"></a><span class="summary-sig-name">setDim2</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setDim2">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getDims"></a><span class="summary-sig-name">getDims</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getDims">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getByteCode"></a><span class="summary-sig-name">getByteCode</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getByteCode">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setByteCode"></a><span class="summary-sig-name">setByteCode</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setByteCode">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getBpp"></a><span class="summary-sig-name">getBpp</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getBpp">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setBpp"></a><span class="summary-sig-name">setBpp</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setBpp">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#checkHeader" class="summary-sig-name">checkHeader</a>(<span class="summary-sig-arg">header</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Empty for fabioimage but may be populated by others classes</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.checkHeader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#_readHeaderBlock" class="summary-sig-name" onclick="show_private();">_readHeaderBlock</a>(<span class="summary-sig-arg">infile</span>)</span><br />
+      Read in a header in some EDF format from an already open file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage._readHeaderBlock">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#nframes" class="summary-name">nframes</a><br />
+      Getter for number of frames
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#header" class="summary-name">header</a><br />
+      property: header of EDF file
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#header_keys" class="summary-name">header_keys</a><br />
+      property: header_keys of EDF file
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#data" class="summary-name">data</a><br />
+      property: data of EDF file
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#capsHeader" class="summary-name">capsHeader</a><br />
+      property: capsHeader of EDF file, i.e.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#dim1" class="summary-name">dim1</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#dim2" class="summary-name">dim2</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#dims" class="summary-name">dims</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#bytecode" class="summary-name">bytecode</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.edfimage.edfimage-class.html#bpp" class="summary-name">bpp</a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">header</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">header_keys</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">frames</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Set up initial values</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="checkHeader"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">checkHeader</span>(<span class="sig-arg">header</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.checkHeader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Empty for fabioimage but may be populated by others classes</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#checkHeader">fabioimage.fabioimage.checkHeader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readHeaderBlock"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readHeaderBlock</span>(<span class="sig-arg">infile</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage._readHeaderBlock">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read in a header in some EDF format from an already open file</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>infile</code></strong> - file object open in read mode</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>string (or None if no header was found.</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read all headers in a file and populate self.header data is not yet 
+  populated</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>infile</code></strong> (file object open in read mode)</li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Read in header into self.header and
+    the data   into self.data
+
+</pre>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="unpack"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">unpack</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.unpack">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Unpack a binary blob according to the specification given in the 
+  header and return the dataset</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>dataset as numpy.ndarray</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="getframe"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">getframe</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">num</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getframe">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>returns the file numbered 'num' in the series as a fabioimage</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#getframe">fabioimage.fabioimage.getframe</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="previous"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">previous</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.previous">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>returns the previous file in the series as a fabioimage</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#previous">fabioimage.fabioimage.previous</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="next"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">next</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.next">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>returns the next file in the series as a fabioimage</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#next">fabioimage.fabioimage.next</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">force_type</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">fit2dMode</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Try to write a file check we can write zipped also mimics that fabian 
+  was writing uint16 (we sometimes want floats)</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>force_type</code></strong> - can be numpy.uint16 or simply "float"</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>None</dd>
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="appendFrame"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">appendFrame</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">header</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.appendFrame">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Method used add a frame to an EDF file</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>frame</code></strong> (instance of Frame) - frame to append to edf image</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>None</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="deleteFrame"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">deleteFrame</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">frameNb</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.deleteFrame">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Method used to remove a frame from an EDF image. by default the last 
+  one is removed.</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>frameNb</code></strong> (integer) - frame number to remove, by  default the last.</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>None</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="fastReadData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">fastReadData</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.fastReadData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>This is a special method that will read and return the data from 
+  another file ... The aim is performances, ... but only supports 
+  uncompressed files.</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>data from another file using positions from current edfimage</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="fastReadROI"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">fastReadROI</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>,
+        <span class="sig-arg">coords</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.fastReadROI">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Method reading Region of Interest of another file  based on metadata 
+  available in current edfimage. The aim is performances, ... but only 
+  supports uncompressed files.</p>
+  <dl class="fields">
+    <dt>Returns: numpy 2darray</dt>
+        <dd>ROI-data from another file using positions from current edfimage</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setNbFrames"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setNbFrames</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">val</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setNbFrames">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Setter for number of frames ... should do nothing. Here just to avoid 
+  bugs</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="getHeader"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">getHeader</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getHeader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Getter for the headers. used by the property header,</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="setHeaderKeys"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setHeaderKeys</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">_listtHeader</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setHeaderKeys">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Enforces the propagation of the header_keys to the list of frames</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_listtHeader</code></strong> (python list) - list of the (ordered) keys in the header</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="getData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">getData</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>getter for edf Data</p>
+  <dl class="fields">
+    <dt>Returns: numpy.ndarray</dt>
+        <dd>data for current frame</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setData</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">_data</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Enforces the propagation of the data to the list of frames</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_data</code></strong> - numpy array representing data</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="getCapsHeader"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">getCapsHeader</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.getCapsHeader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>getter for edf headers keys in upper case</p>
+  <dl class="fields">
+    <dt>Returns: dict</dt>
+        <dd>data for current frame</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="setCapsHeader"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">setCapsHeader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">_data</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.edfimage-pysrc.html#edfimage.setCapsHeader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Enforces the propagation of the header_keys to the list of frames</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_data</code></strong> - numpy array representing data</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== PROPERTY DETAILS ==================== -->
+<a name="section-PropertyDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Property Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-PropertyDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="nframes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">nframes</h3>
+  <p>Getter for number of frames</p>
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getNbFrames" class="summary-sig-name">getNbFrames</a>(<span class="summary-sig-arg">self</span>)</span>
+        - Getter for number of frames
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setNbFrames" class="summary-sig-name">setNbFrames</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">val</span>)</span>
+        - Setter for number of frames ...
+    </dd>
+    <dt>Delete Method:</dt>
+    <dd class="value"><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">property: number of frames in EDF file</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="header"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">header</h3>
+  <p>property: header of EDF file</p>
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getHeader" class="summary-sig-name">getHeader</a>(<span class="summary-sig-arg">self</span>)</span>
+        - Getter for the headers.
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setHeader" class="summary-sig-name">setHeader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_dictHeader</span>)</span>
+        - Enforces the propagation of the header to the list of frames
+    </dd>
+    <dt>Delete Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#delHeader" class="summary-sig-name">delHeader</a>(<span class="summary-sig-arg">self</span>)</span>
+        - Deleter for edf header
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="header_keys"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">header_keys</h3>
+  <p>property: header_keys of EDF file</p>
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getHeaderKeys" class="summary-sig-name">getHeaderKeys</a>(<span class="summary-sig-arg">self</span>)</span>
+        - Getter for edf header_keys
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setHeaderKeys" class="summary-sig-name">setHeaderKeys</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_listtHeader</span>)</span>
+        - Enforces the propagation of the header_keys to the list of frames
+    </dd>
+    <dt>Delete Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#delHeaderKeys" class="summary-sig-name">delHeaderKeys</a>(<span class="summary-sig-arg">self</span>)</span>
+        - Deleter for edf header_keys
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="data"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">data</h3>
+  <p>property: data of EDF file</p>
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getData" class="summary-sig-name">getData</a>(<span class="summary-sig-arg">self</span>)</span>
+        - getter for edf Data
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setData" class="summary-sig-name">setData</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_data</span>)</span>
+        - Enforces the propagation of the data to the list of frames
+    </dd>
+    <dt>Delete Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#delData" class="summary-sig-name">delData</a>(<span class="summary-sig-arg">self</span>)</span>
+        - deleter for edf Data
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="capsHeader"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">capsHeader</h3>
+  <p>property: capsHeader of EDF file, i.e. the keys of the header in UPPER
+  case.</p>
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getCapsHeader" class="summary-sig-name">getCapsHeader</a>(<span class="summary-sig-arg">self</span>)</span>
+        - getter for edf headers keys in upper case
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setCapsHeader" class="summary-sig-name">setCapsHeader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_data</span>)</span>
+        - Enforces the propagation of the header_keys to the list of frames
+    </dd>
+    <dt>Delete Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#delCapsHeader" class="summary-sig-name">delCapsHeader</a>(<span class="summary-sig-arg">self</span>)</span>
+        - deleter for edf capsHeader
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="dim1"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">dim1</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getDim1" class="summary-sig-name">getDim1</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setDim1" class="summary-sig-name">setDim1</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="dim2"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">dim2</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getDim2" class="summary-sig-name">getDim2</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setDim2" class="summary-sig-name">setDim2</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="dims"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">dims</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getDims" class="summary-sig-name">getDims</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="bytecode"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">bytecode</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getByteCode" class="summary-sig-name">getByteCode</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setByteCode" class="summary-sig-name">setByteCode</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="bpp"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">bpp</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#getBpp" class="summary-sig-name">getBpp</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.edfimage.edfimage-class.html#setBpp" class="summary-sig-name">setBpp</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">_iVal</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioimage-module.html b/epydoc/fabio.fabioimage-module.html
new file mode 100644
index 0000000..837074a
--- /dev/null
+++ b/epydoc/fabio.fabioimage-module.html
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module fabioimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module fabioimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:erik.knudsen at risoe.dk
+
+         and Jon Wright, Jerome Kieffer: ESRF
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioimage.fabioimage-class.html" class="summary-name">fabioimage</a><br />
+      A common object for images in fable Contains a numpy array (.data) 
+        and dict of meta data (.header)
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test"></a><span class="summary-sig-name">test</span>()</span><br />
+      check some basic fabioimage functionality</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#test">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("fabioimage")">logging.getLogger("fabioimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioimage-pysrc.html b/epydoc/fabio.fabioimage-pysrc.html
new file mode 100644
index 0000000..aa01f2e
--- /dev/null
+++ b/epydoc/fabio.fabioimage-pysrc.html
@@ -0,0 +1,1189 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module fabioimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.fabioimage-module.html">Module fabio.fabioimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">         Center for Fundamental Research: Metal Structures in Four Dimensions</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">         Risoe National Laboratory</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">         Frederiksborgvej 399</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">         DK-4000 Roskilde</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">         email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">         and Jon Wright, Jerome Kieffer: ESRF</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">with_statement</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">,</tt> <tt class="py-name">types</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">tempfile</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"fabioimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">Image</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt id="link-1" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-1', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"PIL is not installed ... trying to do without"</tt><tt class="py-op">)</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">    <tt class="py-name">Image</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Module fabio.fabioutils=fabio.fabioutils-module.html"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-2', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">,</tt> <tt id="link-3" class="py-name" targets="Module fabio.converters=fabio.converters-module.html"><a title="fabio.converters" class="py-na [...]
+<a name="fabioimage"></a><div id="fabioimage-def"><a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <a class="py-toggle" href="#" id="fabioimage-toggle" onclick="return toggle('fabioimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html">fabioimage</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="fabioimage-expanded"><a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-docstring">    A common object for images in fable</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-docstring">    Contains a numpy array (.data) and dict of meta data (.header)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt id="link-4" class="py-name" targets="Variable fabio.GEimage.GEimage._need_a_seek_to_read=fabio.GEimage.GEimage-class.html#_need_a_seek_to_read,Variable fabio.fabioimage.fabioimage._need_a_seek_to_read=fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read,Variable fabio.tifimage.tifimage._need_a_seek_to_read=fabio.tifimage.tifimage-class.html#_need_a_seek_to_read"><a title="fabio.GEimage.GEimage._need_a_se [...]
+fabio.fabioimage.fabioimage._need_a_seek_to_read
+fabio.tifimage.tifimage._need_a_seek_to_read" class="py-name" href="#" onclick="return doclink('link-4', '_need_a_seek_to_read', 'link-4');">_need_a_seek_to_read</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">    <tt id="link-5" class="py-name" targets="Variable fabio.fabioimage.fabioimage._need_a_real_file=fabio.fabioimage.fabioimage-class.html#_need_a_real_file,Variable fabio.mar345image.mar345image._need_a_real_file=fabio.mar345image.mar345image-class.html#_need_a_real_file"><a title="fabio.fabioimage.fabioimage._need_a_real_file
+fabio.mar345image.mar345image._need_a_real_file" class="py-name" href="#" onclick="return doclink('link-5', '_need_a_real_file', 'link-5');">_need_a_real_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.__init__"></a><div id="fabioimage.__init__-def"><a name="L36"></a><tt class="py-lineno"> 36</tt> <a class="py-toggle" href="#" id="fabioimage.__init__-toggle" onclick="return toggle('fabioimage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt c [...]
+</div><div id="fabioimage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.__init__-expanded"><a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">        Set up initial values</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_classname</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt id="link-6" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-6', 'data', 'link-6');">data</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">types</tt><tt class="py-op">.</tt><tt class="py-name">StringTypes</tt><tt class="py-op">:</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"fabioimage.__init__ bad argument - "</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">                            <tt class="py-string">"data should be numpy array"</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-7', 'data', 'link-6');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Static Method fabio.OXDimage.OXDimage.checkData()=fabio.OXDimage.OXDimage-class.html#checkData,Static Method fabio.cbfimage.cbfimage.checkData()=fabio.cbfimage.cbfimage-class.html#checkData,Static Method fabio.fabioimage.fabioimage.checkData()=fabio. [...]
+fabio.cbfimage.cbfimage.checkData
+fabio.fabioimage.fabioimage.checkData
+fabio.fit2dmaskimage.fit2dmaskimage.checkData
+fabio.kcdimage.kcdimage.checkData
+fabio.mar345image.mar345image.checkData
+fabio.pnmimage.pnmimage.checkData" class="py-name" href="#" onclick="return doclink('link-8', 'checkData', 'link-8');">checkData</a></tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-9', 'data', 'link-6');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-10" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-10', 'header', 'link-10');">header</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-11', 'header', 'link-10');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-12', 'header', 'link-10');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Static Method fabio.edfimage.edfimage.checkHeader()=fabio.edfim [...]
+fabio.fabioimage.fabioimage.checkHeader" class="py-name" href="#" onclick="return doclink('link-13', 'checkHeader', 'link-13');">checkHeader</a></tt><tt class="py-op">(</tt><tt id="link-14" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-14', 'header', 'link-10');">header</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Variable fabio.edfimage.edfimage.header_keys=fabio.edfimage.edfimage-class.html#header_keys"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-15', 'header_keys', 'link-15');">header_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op [...]
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-17', 'data', 'link-6');">data</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-18', 'dim2', 'link-18');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class=" [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-20', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-21', 'dim1', 'link-19');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="retu [...]
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-23', 'bytecode', 'link-23');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt>     <tt class="py-comment"># numpy typecode</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-24', 'bpp', 'link-24');">bpp</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt>             <tt class="py-comment"># bytes per pixel</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-comment"># cache for image statistics</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mean</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">maxval</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stddev</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">minval</tt> < [...]
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-comment"># Cache roi</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">roi</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">area_sum</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">slice</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-comment"># New for multiframe files</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Variable fabio.edfimage.edfimage.nframes=fabio.edfimage.edfimage-class.html#nframes"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-25', 'nframes', 'link-25');">nframes</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">currentframe</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filenumber</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="fabioimage.checkHeader"></a><div id="fabioimage.checkHeader-def"><a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="fabioimage.checkHeader-toggle" onclick="return toggle('fabioimage.checkHeader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a><tt class="py-op">(</tt><tt class="py-param">header</tt><tt class="py-op">=</tt><tt class="py-na [...]
+</div><div id="fabioimage.checkHeader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.checkHeader-expanded"><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-docstring">        Empty for fabioimage but may be populated by others classes</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-26" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-26', 'header', 'link-10');">header</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-27', 'header', 'link-10');">header</a></tt> </tt>
+</div><a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="fabioimage.checkData"></a><div id="fabioimage.checkData-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="fabioimage.checkData-toggle" onclick="return toggle('fabioimage.checkData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt>< [...]
+</div><div id="fabioimage.checkData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.checkData-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"><tt class="py-docstring">        Empty for fabioimage but may be populated by others classes, especially for format accepting only integers</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-28" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-28', 'data', 'link-6');">data</a></tt> </tt>
+</div><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.getclassname"></a><div id="fabioimage.getclassname-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="fabioimage.getclassname-toggle" onclick="return toggle('fabioimage.getclassname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="p [...]
+</div><div id="fabioimage.getclassname-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.getclassname-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring">        Retrieves the name of the class</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring">        @return: the name of the class</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_classname</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_classname</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-29', 'str', 'link-29');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">"<class '"</tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt cl [...]
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_classname</tt> </tt>
+</div><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">    <tt id="link-30" class="py-name" targets="Variable fabio.fabioimage.fabioimage.classname=fabio.fabioimage.fabioimage-class.html#classname"><a title="fabio.fabioimage.fabioimage.classname" class="py-name" href="#" onclick="return doclink('link-30', 'classname', 'link-30');">classname</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name" targ [...]
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.getframe"></a><div id="fabioimage.getframe-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="fabioimage.getframe-toggle" onclick="return toggle('fabioimage.getframe');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">num</tt><tt cl [...]
+</div><div id="fabioimage.getframe-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.getframe-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the file numbered 'num' in the series as a fabioimage """</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="fabio.edfimage.edfimage.nframes" class="py-name" href="#" onclick="return doclink('link-32', 'nframes', 'link-25');">nframes</a></tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt class="py-comment"># single image per file</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">            <tt class="py-keyword">import</tt> <tt id="link-33" class="py-name" targets="Module fabio.openimage=fabio.openimage-module.html,Function fabio.openimage.openimage()=fabio.openimage-module.html#openimage"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-33', 'openimage', 'link-33');">openimage</a></tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-34" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-34', 'openimage', 'link-33');">openimage</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-35', 'openimage', 'link-33');">openimage</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">                <tt id="link-36" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-36', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Function fabio.fabioutils.jump_filename()=fabio.fabioutils-module.html#jump_filename"><a title="fabio.fabioutils.jump_filename" class="py-name" href="#" onclick="return docl [...]
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"getframe out of range"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.previous"></a><div id="fabioimage.previous-def"><a name="L105"></a><tt class="py-lineno">105</tt> <a class="py-toggle" href="#" id="fabioimage.previous-toggle" onclick="return toggle('fabioimage.previous');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#previous">previous</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage.previous-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.previous-expanded"><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the previous file in the series as a fabioimage """</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt id="link-38" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-38', 'openimage', 'link-33');">openimage</a></tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-39" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-39', 'openimage', 'link-33');">openimage</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-40', 'openimage', 'link-33');">openimage</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt id="link-41" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-41', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Function fabio.fabioutils.previous_filename()=fabio.fabioutils-module.html#previous_filename"><a title="fabio.fabioutils.previous_filename" class="py-name" href="#" onclick="ret [...]
+</div><a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.next"></a><div id="fabioimage.next-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="fabioimage.next-toggle" onclick="return toggle('fabioimage.next');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#next">next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage.next-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.next-expanded"><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the next file in the series as a fabioimage """</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt id="link-43" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-43', 'openimage', 'link-33');">openimage</a></tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-44" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-44', 'openimage', 'link-33');">openimage</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-45', 'openimage', 'link-33');">openimage</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">            <tt id="link-46" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-46', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Function fabio.fabioutils.next_filename()=fabio.fabioutils-module.html#next_filename"><a title="fabio.fabioutils.next_filename" class="py-name" href="#" onclick="return doclink( [...]
+</div><a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.toPIL16"></a><div id="fabioimage.toPIL16-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="fabioimage.toPIL16-toggle" onclick="return toggle('fabioimage.toPIL16');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt cl [...]
+</div><div id="fabioimage.toPIL16-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.toPIL16-expanded"><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">        Convert to Python Imaging Library 16 bit greyscale image</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">        FIXME - this should be handled by the libraries now</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">Image</tt><tt class="py-op">:</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">"PIL is not installed !!! "</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt><tt class="py-op">:</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.OXDimage.read()=fabio.OXDimage.OXDimage-class.html [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-48', 'read', 'link-48');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-comment"># mode map</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt id="link-49" class="py-name" targets="Variable fabio.fabioutils.BZ2File.size=fabio.fabioutils.BZ2File-class.html#size,Variable fabio.fabioutils.File.size=fabio.fabioutils.File-class.html#size,Variable fabio.fabioutils.GzipFile.size=fabio.fabioutils.GzipFile-class.html#size,Variable fabio.fabioutils.StringIO.size=fabio.fabioutils.StringIO-class.html#size"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-49', 'size', 'link-49');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-50', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-name">typmap</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-string">'float32'</tt> <tt class="py-op">:</tt> <tt class="py-string">"F"</tt>     <tt class="py-op">,</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt class="py-string">'int32'</tt>   <tt class="py-op">:</tt> <tt class="py-string">"F;32S"</tt> <tt class="py-op">,</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt class="py-string">'uint32'</tt>  <tt class="py-op">:</tt> <tt class="py-string">"F;32"</tt>  <tt class="py-op">,</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">            <tt class="py-string">'int16'</tt>   <tt class="py-op">:</tt> <tt class="py-string">"F;16S"</tt> <tt class="py-op">,</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-string">'uint16'</tt>  <tt class="py-op">:</tt> <tt class="py-string">"F;16"</tt>  <tt class="py-op">,</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">            <tt class="py-string">'int8'</tt>    <tt class="py-op">:</tt> <tt class="py-string">"F;8S"</tt>  <tt class="py-op">,</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">            <tt class="py-string">'uint8'</tt>   <tt class="py-op">:</tt> <tt class="py-string">"F;8"</tt>  <tt class="py-op">}</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">typmap</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-51', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt class="py-name">mode2</tt> <tt class="py-op">=</tt> <tt class="py-name">typmap</tt><tt class="py-op">[</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-52', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">]</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">            <tt class="py-name">mode1</tt> <tt class="py-op">=</tt> <tt class="py-name">mode2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown numpy type "</tt> <tt class="py-op">+</tt> <tt id="link-53" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-53', 'str', 'link-29');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-54', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">type</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt class="py-comment">#</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-comment"># hack for byteswapping for PIL in MacOS</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-name">testval</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class [...]
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt>  <tt class="py-name">testval</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">            <tt class="py-name">dats</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-55', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-56', 'tostring', 'link-56');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">testval</tt> <tt class="py-op">==</tt> <tt class="py-number">256</tt><tt class="py-op">:</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">            <tt class="py-name">dats</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-57', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-58', 'tostring', 'link-56');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Endian unknown in fabioimage.toPIL16"</tt><tt class="py-op">)</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">Image</tt><tt class="py-op">.</tt><tt class="py-name">frombuffer</tt><tt class="py-op">(</tt><tt class="py-name">mode1</tt><tt class="py-op">,</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">                                         <tt id="link-59" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-59', 'size', 'link-49');">size</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">                                         <tt class="py-name">dats</tt><tt class="py-op">,</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">                                         <tt class="py-string">"raw"</tt><tt class="py-op">,</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">                                         <tt class="py-name">mode2</tt><tt class="py-op">,</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">                                         <tt class="py-number">0</tt><tt class="py-op">,</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">                                         <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> </tt>
+</div><a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.getheader"></a><div id="fabioimage.getheader-def"><a name="L164"></a><tt class="py-lineno">164</tt> <a class="py-toggle" href="#" id="fabioimage.getheader-toggle" onclick="return toggle('fabioimage.getheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage.getheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.getheader-expanded"><a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns self.header """</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-60', 'header', 'link-10');">header</a></tt> </tt>
+</div><a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.getmax"></a><div id="fabioimage.getmax-def"><a name="L168"></a><tt class="py-lineno">168</tt> <a class="py-toggle" href="#" id="fabioimage.getmax-toggle" onclick="return toggle('fabioimage.getmax');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage.getmax-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.getmax-expanded"><a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">        <tt class="py-docstring">""" Find max value in self.data, caching for the future """</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">maxval</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">maxval</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-61', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">maxval</tt> </tt>
+</div><a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.getmin"></a><div id="fabioimage.getmin-def"><a name="L174"></a><tt class="py-lineno">174</tt> <a class="py-toggle" href="#" id="fabioimage.getmin-toggle" onclick="return toggle('fabioimage.getmin');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage.getmin-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.getmin-expanded"><a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-docstring">""" Find min value in self.data, caching for the future """</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">minval</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">minval</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-62', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">minval</tt> </tt>
+</div><a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.make_slice"></a><div id="fabioimage.make_slice-def"><a name="L180"></a><tt class="py-lineno">180</tt> <a class="py-toggle" href="#" id="fabioimage.make_slice-toggle" onclick="return toggle('fabioimage.make_slice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">c [...]
+</div><div id="fabioimage.make_slice-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.make_slice-expanded"><a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"><tt class="py-docstring">        Convert a len(4) set of coords into a len(2)</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"><tt class="py-docstring">        tuple (pair) of slice objects</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"><tt class="py-docstring">        the latter are immutable, meaning the roi can be cached</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt id="link-63" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-63', 'len', 'link-63');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt  [...]
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-64" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-64', 'len', 'link-63');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">            <tt class="py-comment"># fabian edfimage preference</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">                <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="p [...]
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">                <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="p [...]
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">            <tt class="py-comment">#in fabian: normally coordinates are given as (x,y) whereas</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">            <tt class="py-comment"># a matrix is given as row,col</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">            <tt class="py-comment"># also the (for whichever reason) the image is flipped upside</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">            <tt class="py-comment"># down wrt to the matrix hence these tranformations</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">            <tt class="py-name">fixme</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-65', 'dim2', 'link-18');">dim2</a></tt> <tt class="py-op">-</tt> <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">3</tt> [...]
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">                     <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">,</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">                     <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-66', 'dim2', 'link-18');">dim2</a></tt> <tt class="py-op">-</tt> <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">-</tt> <tt class="py-number" [...]
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">                     <tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">fixme</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">fixme</tt><tt class=" [...]
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">                 <tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">fixme</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">fixme</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class [...]
+</div><a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.integrate_area"></a><div id="fabioimage.integrate_area-def"><a name="L205"></a><tt class="py-lineno">205</tt> <a class="py-toggle" href="#" id="fabioimage.integrate_area-toggle" onclick="return toggle('fabioimage.integrate_area');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt [...]
+</div><div id="fabioimage.integrate_area-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.integrate_area-expanded"><a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"><tt class="py-docstring">        Sums up a region of interest</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"><tt class="py-docstring">        if len(coords) == 4 -> convert coords to slices</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line"><tt class="py-docstring">        if len(coords) == 2 -> use as slices</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"><tt class="py-docstring">        floor -> ? removed as unused in the function.</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-67', 'data', 'link-6');">data</a></tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">            <tt class="py-comment"># This should return NAN, not zero ?</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-68" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-68', 'len', 'link-63');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">            <tt class="py-name">sli</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name" targets="Method fabio.fabioimage.fabioimage.make_slice()=fabio.fabioimage.fabioimage-class.html#make_slice"><a title="fabio.fabioimage.fabioimage.make_slice" class="py-name" href="#" onclick="return doclink('link-69', 'make_slice', 'link-69');">make_slice</a></tt><tt c [...]
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-70" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-70', 'len', 'link-63');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt clas [...]
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">                                  <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">slice</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">            <tt class="py-name">sli</tt> <tt class="py-op">=</tt> <tt class="py-name">coords</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sli</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">slice</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">area_sum</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">sli</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">slice</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">roi</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">area_sum</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">roi</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float</tt><t [...]
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">slice</tt> <tt class="py-op">=</tt> <tt class="py-name">sli</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">roi</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-71', 'data', 'link-6');">data</a></tt><tt class="py-op">[</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">slice</tt> <tt class="py-op">]</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">area_sum</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">roi</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float</tt><t [...]
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">area_sum</tt> </tt>
+</div><a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.getmean"></a><div id="fabioimage.getmean-def"><a name="L231"></a><tt class="py-lineno">231</tt> <a class="py-toggle" href="#" id="fabioimage.getmean-toggle" onclick="return toggle('fabioimage.getmean');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage.getmean-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.getmean-expanded"><a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-docstring">""" return the mean """</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mean</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mean</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-72', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">mean</tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">double</tt><tt class="py-op">)</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mean</tt> </tt>
+</div><a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.getstddev"></a><div id="fabioimage.getstddev-def"><a name="L237"></a><tt class="py-lineno">237</tt> <a class="py-toggle" href="#" id="fabioimage.getstddev-toggle" onclick="return toggle('fabioimage.getstddev');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage.getstddev-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.getstddev-expanded"><a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-docstring">""" return the standard deviation """</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stddev</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stddev</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-73', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">std</tt><tt class="py-op">(</tt><tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">double</tt><tt class="py-op">)</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stddev</tt> </tt>
+</div><a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.add"></a><div id="fabioimage.add-def"><a name="L243"></a><tt class="py-lineno">243</tt> <a class="py-toggle" href="#" id="fabioimage.add-toggle" onclick="return toggle('fabioimage.add');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class [...]
+</div><div id="fabioimage.add-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.add-expanded"><a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"><tt class="py-docstring">        Add another Image - warning, does not clip to 16 bit images by default</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">,</tt> <tt class="py-string">'data'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">            <tt id="link-74" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-74', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'edfimage.add() called with something that '</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">                <tt class="py-string">'does not have a data field'</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-75', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">==</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-76', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">,</tt> \ </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">                  <tt class="py-string">'incompatible images - Do they have the same size?'</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-77', 'data', 'link-6');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-78', 'data', 'link-6');">data</a></tt> <tt class="py-op">+</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-79', 'data', 'link-6');">data</a></tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-80', 'resetvals', 'link-80');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line"> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.resetvals"></a><div id="fabioimage.resetvals-def"><a name="L256"></a><tt class="py-lineno">256</tt> <a class="py-toggle" href="#" id="fabioimage.resetvals-toggle" onclick="return toggle('fabioimage.resetvals');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage.resetvals-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.resetvals-expanded"><a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">        <tt class="py-docstring">""" Reset cache - call on changing data """</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mean</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stddev</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">maxval</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">minval</tt>  [...]
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">roi</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">slice</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">area_sum</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.rebin"></a><div id="fabioimage.rebin-def"><a name="L261"></a><tt class="py-lineno">261</tt> <a class="py-toggle" href="#" id="fabioimage.rebin-toggle" onclick="return toggle('fabioimage.rebin');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">x_rebin_fact</tt><tt class="py- [...]
+</div><div id="fabioimage.rebin-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.rebin-expanded"><a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"><tt class="py-docstring">        Rebin the data and adjust dims</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-docstring">        @param x_rebin_fact: x binning factor</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-docstring">        @param y_rebin_fact: y binning factor</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"><tt class="py-docstring">        @param keep_I: shall the signal increase ?</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"><tt class="py-docstring">        @type x_rebin_fact: int</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line"><tt class="py-docstring">        @type y_rebin_fact: int</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"><tt class="py-docstring">        @type keep_I: boolean</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-81', 'data', 'link-6');">data</a></tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Please read in the file you wish to rebin first'</tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line"> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-82', 'dim1', 'link-19');">dim1</a></tt> <tt class="py-op">%</tt> <tt class="py-name">x_rebin_fact</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)< [...]
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">RuntimeError</tt><tt class="py-op">(</tt><tt class="py-string">'image size is not divisible by rebin factor - '</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">                  <tt class="py-string">'skipping rebin'</tt><tt class="py-op">)</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">            <tt class="py-name">dataIn</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-84', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"float64"</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">            <tt class="py-name">shapeIn</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-85', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">            <tt class="py-name">shapeOut</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">shapeIn</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-name">y_rebin_fact</tt><tt class="py-op">,</tt> <tt class="py-name">shapeIn</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">/</ [...]
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">            <tt class="py-name">binsize</tt> <tt class="py-op">=</tt> <tt class="py-name">y_rebin_fact</tt> <tt class="py-op">*</tt> <tt class="py-name">x_rebin_fact</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">binsize</tt> <tt class="py-op"><</tt> <tt class="py-number">50</tt><tt class="py-op">:</tt> <tt class="py-comment">#method faster for small binning (4x4)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">                <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-name">shapeOut</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"float64"</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">x_rebin_fact</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt id="link-86" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-86', 'i', 'link-86');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">y_rebin_fact</tt><tt class="py-op">)</tt><t [...]
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">                        <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-name">dataIn</tt><tt class="py-op">[</tt><tt id="link-87" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-87', 'i', 'link-86');">i</a></tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-name">y_rebin_fact</tt><tt class="py-op">,</tt> <tt class="py-name">j</tt> [...]
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> <tt class="py-comment">#method faster for large binning (8x8)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">                <tt class="py-name">temp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-88', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-string">"float64"</tt><tt class="py-op">)</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">                <tt class="py-name">temp</tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">shapeOut</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">y_rebin_fact</tt><tt class="py-op">,</tt> <tt class="py-name">shapeOut</tt><tt class="py-op">[</tt><tt class="py-numbe [...]
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">                <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">temp</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-name">axis</tt><tt class="py-op">=</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-name">axis</tt><tt class="py-op">=</tt><tt class="p [...]
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-89', 'resetvals', 'link-80');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">keep_I</tt><tt class="py-op">:</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-90', 'data', 'link-6');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">out</tt> <tt class="py-op">/</tt> <tt class="py-op">(</tt><tt class="py-name">y_rebin_fact</tt> <tt class="py-op">*</tt> <tt class="py-name">x_rebin_fact</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py- [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-91', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-92', 'data', 'link-6');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-93', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-94', 'dim1', 'link-19');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return  [...]
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-96', 'dim2', 'link-18');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return  [...]
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-comment">#update header</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name" targets="Method fabio.fabioimage.fabioimage.update_header()=fabio.fabioimage.fabioimage-class.html#update_header"><a title="fabio.fabioimage.fabioimage.update_header" class="py-name" href="#" onclick="return doclink('link-98', 'update_header', 'link-98');">update_header</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.write"></a><div id="fabioimage.write-def"><a name="L305"></a><tt class="py-lineno">305</tt> <a class="py-toggle" href="#" id="fabioimage.write-toggle" onclick="return toggle('fabioimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">)</ [...]
+</div><div id="fabioimage.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.write-expanded"><a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"><tt class="py-docstring">        To be overwritten - write the file</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Class has not implemented readheader method yet"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.save"></a><div id="fabioimage.save-def"><a name="L311"></a><tt class="py-lineno">311</tt> <a class="py-toggle" href="#" id="fabioimage.save-toggle" onclick="return toggle('fabioimage.save');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#save">save</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">)</tt><tt [...]
+</div><div id="fabioimage.save-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.save-expanded"><a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">        <tt class="py-docstring">'wrapper for write'</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name" targets="Method fabio.GEimage.GEimage.write()=fabio.GEimage.GEimage-class.html#write,Method fabio.OXDimage.OXDimage.write()=fabio.OXDimage.OXDimage-class.html#write,Method fabio.adscimage.adscimage.write()=fabio.adscimage.adscimage-class.html#write,Method fabio.binaryimage.binaryimage.write()=fabio.binaryimage.binaryimage-cla [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-99', 'write', 'link-99');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.readheader"></a><div id="fabioimage.readheader-def"><a name="L315"></a><tt class="py-lineno">315</tt> <a class="py-toggle" href="#" id="fabioimage.readheader-toggle" onclick="return toggle('fabioimage.readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">f [...]
+</div><div id="fabioimage.readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.readheader-expanded"><a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line"><tt class="py-docstring">        Call the _readheader function...</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">        <tt class="py-comment"># Override the needs asserting that all headers can be read via python modules</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">        <tt class="py-name">save_state</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="fabio.fabioimage.fabioimage._need_a_real_file
+fabio.mar345image.mar345image._need_a_real_file" class="py-name" href="#" onclick="return doclink('link-100', '_need_a_real_file', 'link-5');">_need_a_real_file</a></tt> <tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="fabio.GEimage.GEimage._need_a_seek_to_read
+fabio.fabioimage.fabioimage._need_a_seek_to_read
+fabio.tifimage.tifimage._need_a_seek_to_read" class="py-name" href="#" onclick="return doclink('link-101', '_need_a_seek_to_read', 'link-4');">_need_a_seek_to_read</a></tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="fabio.fabioimage.fabioimage._need_a_real_file
+fabio.mar345image.mar345image._need_a_real_file" class="py-name" href="#" onclick="return doclink('link-102', '_need_a_real_file', 'link-5');">_need_a_real_file</a></tt> <tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="fabio.GEimage.GEimage._need_a_seek_to_read
+fabio.fabioimage.fabioimage._need_a_seek_to_read
+fabio.tifimage.tifimage._need_a_seek_to_read" class="py-name" href="#" onclick="return doclink('link-103', '_need_a_seek_to_read', 'link-4');">_need_a_seek_to_read</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">        <tt class="py-name">fin</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-104', '_open', 'link-104');">_open</a></tt><tt class="py-op">(</tt><tt cla [...]
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._r [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-105', '_readheader', 'link-105');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">fin</tt><tt class="py-op">)</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">        <tt class="py-name">fin</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="fabio.fabioimage.fabioimage._need_a_real_file
+fabio.mar345image.mar345image._need_a_real_file" class="py-name" href="#" onclick="return doclink('link-106', '_need_a_real_file', 'link-5');">_need_a_real_file</a></tt> <tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="fabio.GEimage.GEimage._need_a_seek_to_read
+fabio.fabioimage.fabioimage._need_a_seek_to_read
+fabio.tifimage.tifimage._need_a_seek_to_read" class="py-name" href="#" onclick="return doclink('link-107', '_need_a_seek_to_read', 'link-4');">_need_a_seek_to_read</a></tt> <tt class="py-op">=</tt> <tt class="py-name">save_state</tt> </tt>
+</div><a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage._readheader"></a><div id="fabioimage._readheader-def"><a name="L327"></a><tt class="py-lineno">327</tt> <a class="py-toggle" href="#" id="fabioimage._readheader-toggle" onclick="return toggle('fabioimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-pa [...]
+</div><div id="fabioimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage._readheader-expanded"><a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line"><tt class="py-docstring">        Must be overridden in classes</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Class has not implemented _readheader method yet"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.update_header"></a><div id="fabioimage.update_header-def"><a name="L333"></a><tt class="py-lineno">333</tt> <a class="py-toggle" href="#" id="fabioimage.update_header-toggle" onclick="return toggle('fabioimage.update_header');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a><tt class="py-op">(</tt><tt class="py-param">self</tt> <tt class="py-op">,</tt> <tt [...]
+</div><div id="fabioimage.update_header-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.update_header-expanded"><a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"><tt class="py-docstring">        update the header entries</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line"><tt class="py-docstring">        by default pass in a dict of key, values.</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-108', 'header', 'link-10');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">kwds</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.read"></a><div id="fabioimage.read-def"><a name="L340"></a><tt class="py-lineno">340</tt> <a class="py-toggle" href="#" id="fabioimage.read-toggle" onclick="return toggle('fabioimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> [...]
+</div><div id="fabioimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.read-expanded"><a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line"><tt class="py-docstring">        To be overridden - fill in self.header and self.data</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Class has not implemented read method yet"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line"><tt class="py-comment">#        return self</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.load"></a><div id="fabioimage.load-def"><a name="L347"></a><tt class="py-lineno">347</tt> <a class="py-toggle" href="#" id="fabioimage.load-toggle" onclick="return toggle('fabioimage.load');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#load">load</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">arg</tt><tt c [...]
+</div><div id="fabioimage.load-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.load-expanded"><a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line">        <tt class="py-docstring">"Wrapper for read"</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-109', 'read', 'link-48');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwarg</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.readROI"></a><div id="fabioimage.readROI-def"><a name="L351"></a><tt class="py-lineno">351</tt> <a class="py-toggle" href="#" id="fabioimage.readROI-toggle" onclick="return toggle('fabioimage.readROI');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt cl [...]
+</div><div id="fabioimage.readROI-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.readROI-expanded"><a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"><tt class="py-docstring">        Method reading Region of Interest.</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"><tt class="py-docstring">        This implementation is the trivial one, just doing read and crop</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-110', 'read', 'link-48');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">frame</tt><tt class="py-op">)</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-111" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-111', 'len', 'link-63');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">slice</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="fabio.fabioimage.fabioimage.make_slice" class="py-name" href="#" onclick="return doclink('link-112', 'make_slice', 'link-69');">make_slice</a></tt><tt class="py-op">(</tt><tt class="py-name">coords</tt>< [...]
+<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-113" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-113', 'len', 'link-63');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt cl [...]
+<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line">                                  <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">coords</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">slice</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">slice</tt> <tt class="py-op">=</tt> <tt class="py-name">coords</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">            <tt id="link-114" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-114', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'readROI: Unable to understand Region Of Interest: got %s'</tt><tt class="py-op">,</tt> <tt class="py-name">coords</tt><tt class="py-op">)</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">roi</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-115', 'data', 'link-6');">data</a></tt><tt class="py-op">[</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">slice</tt> <tt class="py-op">]</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">roi</tt> </tt>
+</div><a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line"> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage._open"></a><div id="fabioimage._open-def"><a name="L368"></a><tt class="py-lineno">368</tt> <a class="py-toggle" href="#" id="fabioimage._open-toggle" onclick="return toggle('fabioimage._open');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#_open">_open</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</ [...]
+</div><div id="fabioimage._open-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage._open-expanded"><a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line"><tt class="py-docstring">        Try to handle compressed files, streams, shared memory etc</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line"><tt class="py-docstring">        Return an object which can be used for "read" and "write"</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line"><tt class="py-docstring">        ... FIXME - what about seek ?</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">        <tt class="py-name">fileObject</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filenumber</tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-116', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name" targets="Function fabio.fabioutils.extract_filenumber()=fabio.fabioutils- [...]
+<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line"> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-string">"read"</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-string">"write"</tt><tt class="py-op">)</tt><tt class="p [...]
+<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">            <tt class="py-comment"># It is already something we can use</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-118" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-118', 'str', 'link-29');">str</a></tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-119', 'header', 'link-10');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"filename"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">splitext</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">".gz"</tt><tt class="py-op">:</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line">                <tt class="py-name">fileObject</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name" targets="Method fabio.fabioimage.fabioimage._compressed_stream()=fabio.fabioimage.fabioimage-class.html#_compressed_stream"><a title="fabio.fabioimage.fabioimage._compressed_stream" class="py-name" href="#" onclick="return doclink('link-120', '_compressed_s [...]
+<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">                                       <tt id="link-121" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-121', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Variable fabio.fabioutils.COMPRESSORS=fabio.fabioutils-module.html#COMPRESSORS"><a title="fabio.fabioutils.COMPRESSORS" class="py-name" href="#" on [...]
+<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">                                       <tt id="link-123" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-123', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-124" class="py-name" targets="Class fabio.fabioutils.GzipFile=fabio.fabioutils.GzipFile-class.html"><a title="fabio.fabioutils.GzipFile" class="py-name" href="#" onclick="return [...]
+<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">                                       <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">splitext</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'.bz2'</tt><tt class="py-op">:</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line">                <tt class="py-name">fileObject</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="fabio.fabioimage.fabioimage._compressed_stream" class="py-name" href="#" onclick="return doclink('link-125', '_compressed_stream', 'link-120');">_compressed_stream</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</ [...]
+<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line">                                       <tt id="link-126" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-126', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="fabio.fabioutils.COMPRESSORS" class="py-name" href="#" onclick="return doclink('link-127', 'COMPRESSORS', 'link-122');">COMPRESSORS</a></tt><tt cl [...]
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line">                                       <tt id="link-128" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-128', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-129" class="py-name" targets="Class fabio.fabioutils.BZ2File=fabio.fabioutils.BZ2File-class.html"><a title="fabio.fabioutils.BZ2File" class="py-name" href="#" onclick="return do [...]
+<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">                                       <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">            <tt class="py-comment">#</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">            <tt class="py-comment"># Here we return the file even though it may be bzipped or gzipped</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">            <tt class="py-comment"># but named incorrectly...</tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">            <tt class="py-comment">#</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME - should we fix that or complain about the daft naming?</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line">                <tt class="py-name">fileObject</tt> <tt class="py-op">=</tt> <tt id="link-130" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-130', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-131" class="py-name" targets="Class fabio.fabioutils.File=fabio.fabioutils.File-class.html"><a title="fabio.fabioutils.File" class="py-name [...]
+<a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">"name"</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dir</tt><tt class="py-op">(</tt><tt class="py-name">fileObject</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line">                <tt class="py-name">fileObject</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line"> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">fileObject</tt> </tt>
+</div><a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage._compressed_stream"></a><div id="fabioimage._compressed_stream-def"><a name="L405"></a><tt class="py-lineno">405</tt> <a class="py-toggle" href="#" id="fabioimage._compressed_stream-toggle" onclick="return toggle('fabioimage._compressed_stream');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#_compressed_stream">_compressed_stream</a><tt class="py-op">(</tt><tt class="py-param">self</tt [...]
+<a name="L406"></a><tt class="py-lineno">406</tt>  <tt class="py-line">                           <tt class="py-param">fname</tt><tt class="py-op">,</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line">                           <tt class="py-param">system_uncompress</tt><tt class="py-op">,</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line">                           <tt class="py-param">python_uncompress</tt><tt class="py-op">,</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line">                           <tt class="py-param">mode</tt><tt class="py-op">=</tt><tt class="py-string">'rb'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fabioimage._compressed_stream-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage._compressed_stream-expanded"><a name="L410"></a><tt class="py-lineno">410</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line"><tt class="py-docstring">        Try to transparently handle gzip / bzip without always getting python</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line"><tt class="py-docstring">        performance</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line">        <tt class="py-comment"># assert that python modules are always OK based on performance benchmark</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt>  <tt class="py-line">        <tt class="py-comment"># Try to fix the way we are using them?</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line">        <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="fabio.fabioimage.fabioimage._need_a_real_file
+fabio.mar345image.mar345image._need_a_real_file" class="py-name" href="#" onclick="return doclink('link-132', '_need_a_real_file', 'link-5');">_need_a_real_file</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">mode</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"r"</tt><tt class="py-op">:</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line">            <tt class="py-name">fo</tt> <tt class="py-op">=</tt> <tt class="py-name">python_uncompress</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line"><tt class="py-comment">#            fobj = os.tmpfile()</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">            <tt class="py-comment">#problem when not administrator under certain flavors of windows</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line">            <tt class="py-name">tmpfd</tt><tt class="py-op">,</tt> <tt class="py-name">tmpfn</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-name">tmpfd</tt><tt class="py-op">)</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line">            <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt id="link-133" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-133', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="fabio.fabioutils.File" class="py-name" href="#" onclick="return doclink('link-134', 'File', 'link-131');">File</a></tt [...]
+<a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line">            <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-135', 'write', 'link-99');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">fo</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-136', 'read', 'link-48');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt>  <tt class="py-line">            <tt class="py-name">fo</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">            <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-137', 'seek', 'link-137');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="fabio.GEimage.GEimage._need_a_seek_to_read
+fabio.fabioimage.fabioimage._need_a_seek_to_read
+fabio.tifimage.tifimage._need_a_seek_to_read" class="py-name" href="#" onclick="return doclink('link-138', '_need_a_seek_to_read', 'link-4');">_need_a_seek_to_read</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">mode</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"r"</tt><tt class="py-op">:</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line">            <tt class="py-name">fo</tt> <tt class="py-op">=</tt> <tt class="py-name">python_uncompress</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line">            <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt id="link-139" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-139', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-140" class="py-name" targets="Class fabio.fabioutils.StringIO=fabio.fabioutils.StringIO-class.html"><a title="fabio.fabioutils.StringIO" class="py-na [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-141', 'read', 'link-48');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line">            <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">python_uncompress</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">fobj</tt> </tt>
+</div><a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line"> </tt>
+<a name="fabioimage.convert"></a><div id="fabioimage.convert-def"><a name="L434"></a><tt class="py-lineno">434</tt> <a class="py-toggle" href="#" id="fabioimage.convert-toggle" onclick="return toggle('fabioimage.convert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage.fabioimage-class.html#convert">convert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">dest</tt><tt class= [...]
+</div><div id="fabioimage.convert-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="fabioimage.convert-expanded"><a name="L435"></a><tt class="py-lineno">435</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt>  <tt class="py-line"><tt class="py-docstring">        Convert a fabioimage object into another fabioimage object (with possible conversions)</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt>  <tt class="py-line"><tt class="py-docstring">        @param dest: destination type "EDF", "edfimage" or the class itself</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">dest</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">types</tt><tt class="py-op">.</tt><tt class="py-name">StringTypes</tt><tt class="py-op">:</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt>  <tt class="py-line">            <tt class="py-name">dest</tt> <tt class="py-op">=</tt> <tt class="py-name">dest</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt>  <tt class="py-line">            <tt class="py-name">modules</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">val</tt>  <tt class="py-keyword">in</tt> <tt id="link-142" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-142', 'fabioutils', 'link-2');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name" targets="Variable fabio.fabioutils.FILETYPES=fabio.fabioutils-module.html#FILETYPES"><a ti [...]
+<a name="L443"></a><tt class="py-lineno">443</tt>  <tt class="py-line">                <tt class="py-name">modules</tt> <tt class="py-op">+=</tt> <tt class="py-op">[</tt><tt id="link-144" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-144', 'i', 'link-86');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"image"</tt> <tt class="py-keyword">for</tt> <tt id="link-145" class="py-name"><a title="fabio.fabioutils.i" class="py-na [...]
+<a name="L444"></a><tt class="py-lineno">444</tt>  <tt class="py-line">            <tt class="py-name">klass</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt>  <tt class="py-line">            <tt class="py-name">module</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt>  <tt class="py-line">            <tt class="py-name">klass_name</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">klass_name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">modules</tt><tt class="py-op">:</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt>  <tt class="py-name">klass_name</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-name">dest</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line">                        <tt class="py-name">module</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">modules</tt><tt class="py-op">[</tt><tt class="py-string">"fabio."</tt> <tt class="py-op">+</tt> <tt class="py-name">klass_name</tt><tt class="py-op">]</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line">                        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line">                            <tt class="py-name">module</tt> <tt class="py-op">=</tt> <tt class="py-name">__import__</tt><tt class="py-op">(</tt><tt class="py-name">klass_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt>  <tt class="py-line">                        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line">                            <tt id="link-147" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-147', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Failed to import %s"</tt><tt class="py-op">,</tt> <tt class="py-name">klass_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line">                            <tt id="link-148" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-148', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"imported %simage"</tt><tt class="py-op">,</tt> <tt class="py-name">klass_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">module</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt>  <tt class="py-line">                        <tt class="py-keyword">break</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">module</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">module</tt><tt class="py-op">,</tt> <tt class="py-name">klass_name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line">                    <tt class="py-name">klass</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">module</tt><tt class="py-op">,</tt> <tt class="py-name">klass_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line">                    <tt id="link-149" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-149', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Module %s has no image class"</tt> <tt class="py-op">%</tt> <tt class="py-name">module</tt><tt class="py-op">)</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">dest</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt>  <tt class="py-line">            <tt class="py-name">klass</tt> <tt class="py-op">=</tt> <tt class="py-name">dest</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-string">"__new__"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dir</tt><tt class="py-op">(</tt><tt class="py-name">dest</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">dest</tt><tt class="py-op">(</tt><tt class="py- [...]
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-150', 'fabioimage', 'link-150');">fabioimage</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt>  <tt class="py-line">            <tt class="py-name">klass</tt> <tt class="py-op">=</tt> <tt class="py-name">dest</tt> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line">            <tt id="link-151" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-151', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Unrecognized destination format: %s "</tt> <tt class="py-op">%</tt> <tt class="py-name">dest</tt><tt class="py-op">)</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">klass</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line">            <tt id="link-152" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-152', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Unrecognized destination format: %s "</tt> <tt class="py-op">%</tt> <tt class="py-name">dest</tt><tt class="py-op">)</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">klass</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment">#temporary instance (to be overwritten)</tt> </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">klass</tt><tt class="py-op">(</tt><tt id="link-153" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-153', 'data', 'link-6');">data</a></tt><tt class="py-op">=</tt><tt id="link-154" class="py-name"><a title="fabio.converters" class="py-name" href="#" onclick="return doclink('link-154', 'converters', 'link-3');">converters</a></tt><tt class="py-op">.</tt><tt id="link-155" class="py-name" targets="Function fabio.converters.convert_data()=fabio.converters-module.html#convert_data"><a title="fabio.converter [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-158', 'data', 'link-6');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line">                    <tt id="link-159" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-159', 'header', 'link-10');">header</a></tt><tt class="py-op">=</tt><tt id="link-160" class="py-name"><a title="fabio.converters" class="py-name" href="#" onclick="return doclink('link-160', 'converters', 'link-3');">converters</a></tt><tt class="py-op">.</tt><tt id="li [...]
+<a name="L478"></a><tt class="py-lineno">478</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">other</tt> </tt>
+</div></div><a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line"> </tt>
+<a name="test"></a><div id="test-def"><a name="L480"></a><tt class="py-lineno">480</tt> <a class="py-toggle" href="#" id="test-toggle" onclick="return toggle('test');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioimage-module.html#test">test</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="test-expanded"><a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line"><tt class="py-docstring">    check some basic fabioimage functionality</tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line">    <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line"> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line">    <tt class="py-name">dat</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">ones</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1024</tt><tt class="py-op">,</tt> <tt class="py-number">1024</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class=" [...]
+<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line">    <tt class="py-name">dat</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">dat</tt> <tt class="py-op">*</tt> <tt class="py-number">50000</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">dat</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">char</tt> <tt class="py-op">==</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">ones</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="p [...]
+<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line">    <tt class="py-name">hed</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">"Title"</tt><tt class="py-op">:</tt><tt class="py-string">"50000 everywhere"</tt><tt class="py-op">}</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line">    <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt id="link-165" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-165', 'fabioimage', 'link-150');">fabioimage</a></tt><tt class="py-op">(</tt><tt class="py-name">dat</tt><tt class="py-op">,</tt> <tt class="py-name">hed</tt><tt class="py-op">)</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line"> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name" targets="Method fabio.fabioimage.fabioimage.getmax()=fabio.fabioimage.fabioimage-class.html#getmax"><a title="fabio.fabioimage.fabioimage.getmax" class="py-name" href="#" onclick="return doclink('link-166', 'getmax', 'link-166');">getmax</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> < [...]
+<a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name" targets="Method fabio.fabioimage.fabioimage.getmin()=fabio.fabioimage.fabioimage-class.html#getmin"><a title="fabio.fabioimage.fabioimage.getmin" class="py-name" href="#" onclick="return doclink('link-167', 'getmin', 'link-167');">getmin</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> < [...]
+<a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name" targets="Method fabio.fabioimage.fabioimage.getmean()=fabio.fabioimage.fabioimage-class.html#getmean"><a title="fabio.fabioimage.fabioimage.getmean" class="py-name" href="#" onclick="return doclink('link-168', 'getmean', 'link-168');">getmean</a></tt><tt class="py-op">(</tt><tt class="py-op">)</ [...]
+<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name" targets="Method fabio.fabioimage.fabioimage.getstddev()=fabio.fabioimage.fabioimage-class.html#getstddev"><a title="fabio.fabioimage.fabioimage.getstddev" class="py-name" href="#" onclick="return doclink('link-170', 'getstddev', 'link-170');">getstddev</a></tt><tt class="py-op">(</tt><tt class=" [...]
+<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line"> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line">    <tt class="py-name">dat2</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1024</tt><tt class="py-op">,</tt> <tt class="py-number">1024</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class [...]
+<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line">    <tt class="py-name">cord</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-number">256</tt><tt class="py-op">,</tt> <tt class="py-number">256</tt><tt class="py-op">,</tt> <tt class="py-number">790</tt><tt class="py-op">,</tt> <tt class="py-number">768</tt> <tt class="py-op">]</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line">    <tt class="py-name">slic</tt> <tt class="py-op">=</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="fabio.fabioimage.fabioimage.make_slice" class="py-name" href="#" onclick="return doclink('link-171', 'make_slice', 'link-69');">make_slice</a></tt><tt class="py-op">(</tt><tt class="py-name">cord</tt><tt class="py-op">)</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line">    <tt class="py-name">dat2</tt><tt class="py-op">[</tt><tt class="py-name">slic</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">dat2</tt><tt class="py-op">[</tt><tt class="py-name">slic</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-number">100</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line"> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt>  <tt class="py-line">    <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt id="link-172" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-172', 'fabioimage', 'link-150');">fabioimage</a></tt><tt class="py-op">(</tt><tt class="py-name">dat2</tt><tt class="py-op">,</tt> <tt class="py-name">hed</tt><tt class="py-op">)</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line"> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt>  <tt class="py-line">    <tt class="py-comment"># New object, so...</tt> </tt>
+<a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">maxval</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">minval</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line"> </tt>
+<a name="L509"></a><tt class="py-lineno">509</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="fabio.fabioimage.fabioimage.getmax" class="py-name" href="#" onclick="return doclink('link-173', 'getmax', 'link-166');">getmax</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">100</tt><tt class="py-op">,</tt> <tt class="py-name"> [...]
+<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="fabio.fabioimage.fabioimage.getmin" class="py-name" href="#" onclick="return doclink('link-175', 'getmin', 'link-167');">getmin</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt> <tt class="py-op">,</tt> <tt class="py-name">o [...]
+<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line">    <tt class="py-name">npix</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">slic</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">stop</tt> <tt class="py-op">-</tt> <tt class="py-name">slic</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">start [...]
+<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line">    <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-177', 'resetvals', 'link-80');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line">    <tt class="py-name">area1</tt> <tt class="py-op">=</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name" targets="Method fabio.fabioimage.fabioimage.integrate_area()=fabio.fabioimage.fabioimage-class.html#integrate_area"><a title="fabio.fabioimage.fabioimage.integrate_area" class="py-name" href="#" onclick="return doclink('link-178', 'integrate_area', 'link-178');">integrate_ar [...]
+<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line">    <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-179', 'resetvals', 'link-80');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line">    <tt class="py-name">area2</tt> <tt class="py-op">=</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="fabio.fabioimage.fabioimage.integrate_area" class="py-name" href="#" onclick="return doclink('link-180', 'integrate_area', 'link-178');">integrate_area</a></tt><tt class="py-op">(</tt><tt class="py-name">slic</tt><tt class="py-op">)</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">area1</tt> <tt class="py-op">==</tt> <tt class="py-name">area2</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="fabio.fabioimage.fabioimage.integrate_area" class="py-name" href="#" onclick="return doclink('link-181', 'integrate_area', 'link-178');">integrate_area</a></tt><tt class="py-op">(</tt><tt class="py-name">cord</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">ob [...]
+<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="fabio.fabioimage.fabioimage.integrate_area" class="py-name" href="#" onclick="return doclink('link-183', 'integrate_area', 'link-178');">integrate_area</a></tt><tt class="py-op">(</tt><tt class="py-name">cord</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">np [...]
+<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line"> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt>  <tt class="py-line"> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">clean</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line">        <tt class="py-docstring">""" clean up the created testfiles"""</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">"testfile"</tt><tt class="py-op">,</tt> <tt class="py-string">"testfile.gz"</tt><tt class="py-op">,</tt> <tt class="py-string">"testfile.bz2"</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line">                <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+</div><a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line"> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line"> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line">    <tt class="py-name">clean</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">gzip</tt><tt class="py-op">,</tt> <tt class="py-name">bz2</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line">    <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-string">"testfile.gz"</tt><tt class="py-op">,</tt> <tt class="py-string">"wb"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-185', 'write', 'link-99');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"{ hello }"</tt><tt class="py-op">)</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">    <tt class="py-name">fout</tt> <tt class="py-op">=</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-186', '_open', 'link-104');">_open</a></tt><tt class="py-op">(</tt><tt class="py-string">"testfile.gz"</tt><tt class="py-op">)</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line">    <tt class="py-name">readin</tt> <tt class="py-op">=</tt> <tt class="py-name">fout</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-187', 'read', 'link-48');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">readin</tt> <tt class="py-op">==</tt> <tt class="py-string">"{ hello }"</tt><tt class="py-op">,</tt> <tt class="py-name">readin</tt> <tt class="py-op">+</tt> <tt class="py-string">" gzipped file"</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line"> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line"> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line">    <tt class="py-name">bz2</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="fabio.fabioutils.BZ2File" class="py-name" href="#" onclick="return doclink('link-188', 'BZ2File', 'link-129');">BZ2File</a></tt><tt class="py-op">(</tt><tt class="py-string">"testfilebz"</tt><tt class="py-op">,</tt> <tt class="py-string">"wb"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-189" class="p [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-189', 'write', 'link-99');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"{ hello }"</tt><tt class="py-op">)</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line">    <tt class="py-name">fout</tt> <tt class="py-op">=</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-190', '_open', 'link-104');">_open</a></tt><tt class="py-op">(</tt><tt class="py-string">"testfile.bz2"</tt><tt class="py-op">)</tt> </tt>
+<a name="L540"></a><tt class="py-lineno">540</tt>  <tt class="py-line">    <tt class="py-name">readin</tt> <tt class="py-op">=</tt> <tt class="py-name">fout</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-191', 'read', 'link-48');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">readin</tt> <tt class="py-op">==</tt> <tt class="py-string">"{ hello }"</tt><tt class="py-op">,</tt> <tt class="py-name">readin</tt> <tt class="py-op">+</tt> <tt class="py-string">" bzipped file"</tt> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt>  <tt class="py-line"> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt>  <tt class="py-line">    <tt class="py-name">ftest</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-string">"testfile"</tt><tt class="py-op">,</tt> <tt class="py-string">"wb"</tt><tt class="py-op">)</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line">    <tt class="py-name">ftest</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-192', 'write', 'link-99');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"{ hello }"</tt><tt class="py-op">)</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">ftest</tt> <tt class="py-op">==</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-193', '_open', 'link-104');">_open</a></tt><tt class="py-op">(</tt><tt class="py-name">ftest</tt><tt class="py-op">)</tt> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt>  <tt class="py-line">    <tt class="py-name">ftest</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line">    <tt class="py-name">fout</tt> <tt class="py-op">=</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-194', '_open', 'link-104');">_open</a></tt><tt class="py-op">(</tt><tt class="py-string">"testfile"</tt><tt class="py-op">)</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line">    <tt class="py-name">readin</tt> <tt class="py-op">=</tt> <tt class="py-name">fout</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-195', 'read', 'link-48');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-name">readin</tt> <tt class="py-op">==</tt> <tt class="py-string">"{ hello }"</tt><tt class="py-op">,</tt> <tt class="py-name">readin</tt> <tt class="py-op">+</tt> <tt class="py-string">"plain file"</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt>  <tt class="py-line">    <tt class="py-name">fout</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line">    <tt class="py-name">ftest</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line">    <tt class="py-name">clean</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line"> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-string">"Passed in"</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt><tt class="py-op">,</tt> <tt class="py-string">"s"</tt> </tt>
+</div><a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line"> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L557"></a><tt class="py-lineno">557</tt>  <tt class="py-line">    <tt id="link-196" class="py-name" targets="Function fabio.adscimage.test()=fabio.adscimage-module.html#test,Function fabio.brukerimage.test()=fabio.brukerimage-module.html#test,Function fabio.fabioimage.test()=fabio.fabioimage-module.html#test"><a title="fabio.adscimage.test
+fabio.brukerimage.test
+fabio.fabioimage.test" class="py-name" href="#" onclick="return doclink('link-196', 'test', 'link-196');">test</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:42 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioimage.fabioimage-class.html b/epydoc/fabio.fabioimage.fabioimage-class.html
new file mode 100644
index 0000000..0e8b01d
--- /dev/null
+++ b/epydoc/fabio.fabioimage.fabioimage-class.html
@@ -0,0 +1,991 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioimage.fabioimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fabioimage-module.html">Module fabioimage</a> ::
+        Class fabioimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioimage.fabioimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class fabioimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage">source code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">fabioimage</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html">fit2dmaskimage.fit2dmaskimage</a></li><li>, <a href="fabio.tifimage.tifimage-class.html">tifimage.tifimage</a></li><li>, <a href="fabio.kcdimage.kcdimage-class.html">kcdimage.kcdimage</a></li><li>, <a href="fabio.brukerimage.brukerimage-class.html">brukerimage.brukerimage</a></li><li>, <a href="fabio.cbfimage.cbfimage-class.html">cbfimage.cbfimage</a></li><li>, <a href="fabio.edfimage.edfimage-class.html">edfimage.edfimage</a>< [...]
+</dd></dl>
+
+<hr />
+<p>A common object for images in fable Contains a numpy array (.data) and
+  dict of meta data (.header)</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioimage.fabioimage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">header</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Set up initial values</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioimage.fabioimage-class.html#getclassname" class="summary-sig-name">getclassname</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Retrieves the name of the class</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.getclassname">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getframe"></a><span class="summary-sig-name">getframe</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num</span>)</span><br />
+      returns the file numbered 'num' in the series as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.getframe">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="previous"></a><span class="summary-sig-name">previous</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the previous file in the series as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.previous">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="next"></a><span class="summary-sig-name">next</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the next file in the series as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.next">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioimage.fabioimage-class.html#toPIL16" class="summary-sig-name">toPIL16</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Convert to Python Imaging Library 16 bit greyscale image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.toPIL16">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getheader"></a><span class="summary-sig-name">getheader</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns self.header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.getheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getmax"></a><span class="summary-sig-name">getmax</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Find max value in self.data, caching for the future</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.getmax">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getmin"></a><span class="summary-sig-name">getmin</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Find min value in self.data, caching for the future</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.getmin">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="make_slice"></a><span class="summary-sig-name">make_slice</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">coords</span>)</span><br />
+      Convert a len(4) set of coords into a len(2) tuple (pair) of slice 
+      objects the latter are immutable, meaning the roi can be cached</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.make_slice">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="integrate_area"></a><span class="summary-sig-name">integrate_area</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">coords</span>)</span><br />
+      Sums up a region of interest if len(coords) == 4 -> convert coords
+      to slices if len(coords) == 2 -> use as slices floor -> ? 
+      removed as unused in the function.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.integrate_area">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getmean"></a><span class="summary-sig-name">getmean</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      return the mean</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.getmean">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getstddev"></a><span class="summary-sig-name">getstddev</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      return the standard deviation</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.getstddev">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="add"></a><span class="summary-sig-name">add</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">other</span>)</span><br />
+      Add another Image - warning, does not clip to 16 bit images by 
+      default</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.add">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="resetvals"></a><span class="summary-sig-name">resetvals</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Reset cache - call on changing data</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.resetvals">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioimage.fabioimage-class.html#rebin" class="summary-sig-name">rebin</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">x_rebin_fact</span>,
+        <span class="summary-sig-arg">y_rebin_fact</span>,
+        <span class="summary-sig-arg">keep_I</span>=<span class="summary-sig-default">True</span>)</span><br />
+      Rebin the data and adjust dims</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.rebin">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="write"></a><span class="summary-sig-name">write</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      To be overwritten - write the file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="save"></a><span class="summary-sig-name">save</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      wrapper for write</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.save">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="readheader"></a><span class="summary-sig-name">readheader</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>)</span><br />
+      Call the _readheader function...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_readheader"></a><span class="summary-sig-name">_readheader</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fik_obj</span>)</span><br />
+      Must be overridden in classes</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="update_header"></a><span class="summary-sig-name">update_header</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">**kwds</span>)</span><br />
+      update the header entries by default pass in a dict of key, values.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.update_header">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="read"></a><span class="summary-sig-name">read</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      To be overridden - fill in self.header and self.data</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="load"></a><span class="summary-sig-name">load</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">*arg</span>,
+        <span class="summary-sig-arg">**kwarg</span>)</span><br />
+      Wrapper for read</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.load">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioimage.fabioimage-class.html#readROI" class="summary-sig-name">readROI</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">coords</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Method reading Region of Interest.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.readROI">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioimage.fabioimage-class.html#_open" class="summary-sig-name" onclick="show_private();">_open</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">rb</code><code class="variable-quote">'</code></span>)</span><br />
+      Try to handle compressed files, streams, shared memory etc Return an 
+      object which can be used for "read" and "write" 
+      ...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage._open">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_compressed_stream"></a><span class="summary-sig-name">_compressed_stream</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">system_uncompress</span>,
+        <span class="summary-sig-arg">python_uncompress</span>,
+        <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">rb</code><code class="variable-quote">'</code></span>)</span><br />
+      Try to transparently handle gzip / bzip without always getting python
+      performance</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage._compressed_stream">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioimage.fabioimage-class.html#convert" class="summary-sig-name">convert</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">dest</span>)</span><br />
+      Convert a fabioimage object into another fabioimage object (with 
+      possible conversions)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.convert">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="checkHeader"></a><span class="summary-sig-name">checkHeader</span>(<span class="summary-sig-arg">header</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Empty for fabioimage but may be populated by others classes</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="checkData"></a><span class="summary-sig-name">checkData</span>(<span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Empty for fabioimage but may be populated by others classes, 
+      especially for format accepting only integers</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="_need_a_seek_to_read"></a><span class="summary-name">_need_a_seek_to_read</span> = <code title="False">False</code>
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="_need_a_real_file"></a><span class="summary-name">_need_a_real_file</span> = <code title="False">False</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioimage.fabioimage-class.html#classname" class="summary-name">classname</a><br />
+      Retrieves the name of the class
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">header</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Set up initial values</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="getclassname"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">getclassname</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.getclassname">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Retrieves the name of the class</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>the name of the class</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="toPIL16"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">toPIL16</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.toPIL16">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Convert to Python Imaging Library 16 bit greyscale image</p>
+  <p>FIXME - this should be handled by the libraries now</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="rebin"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">rebin</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">x_rebin_fact</span>,
+        <span class="sig-arg">y_rebin_fact</span>,
+        <span class="sig-arg">keep_I</span>=<span class="sig-default">True</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.rebin">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Rebin the data and adjust dims</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>x_rebin_fact</code></strong> (int) - x binning factor</li>
+        <li><strong class="pname"><code>y_rebin_fact</code></strong> (int) - y binning factor</li>
+        <li><strong class="pname"><code>keep_I</code></strong> (boolean) - shall the signal increase ?</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="readROI"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">readROI</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">coords</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.readROI">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Method reading Region of Interest. This implementation is the trivial 
+  one, just doing read and crop</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="_open"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_open</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">mode</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">rb</code><code class="variable-quote">'</code></span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage._open">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Try to handle compressed files, streams, shared memory etc Return an 
+  object which can be used for "read" and "write" ... 
+  FIXME - what about seek ?</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="convert"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">convert</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">dest</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioimage-pysrc.html#fabioimage.convert">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Convert a fabioimage object into another fabioimage object (with 
+  possible conversions)</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>dest</code></strong> - destination type "EDF", "edfimage" or the 
+          class itself</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== PROPERTY DETAILS ==================== -->
+<a name="section-PropertyDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Property Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-PropertyDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="classname"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">classname</h3>
+  <p>Retrieves the name of the class</p>
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.fabioimage.fabioimage-class.html#getclassname" class="summary-sig-name">getclassname</a>(<span class="summary-sig-arg">self</span>)</span>
+        - Retrieves the name of the class
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioutils-module.html b/epydoc/fabio.fabioutils-module.html
new file mode 100644
index 0000000..d1c82a5
--- /dev/null
+++ b/epydoc/fabio.fabioutils-module.html
@@ -0,0 +1,723 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioutils</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module fabioutils
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioutils-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module fabioutils</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioutils-pysrc.html">source code</a></span></p>
+<p>General purpose utilities functions for fabio</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.FilenameObject-class.html" class="summary-name">FilenameObject</a><br />
+      The 'meaning' of a filename ...
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.StringIO-class.html" class="summary-name">StringIO</a><br />
+      just an interface providing the name and mode property to a 
+        StringIO
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.File-class.html" class="summary-name">File</a><br />
+      wrapper for "file" with locking
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.UnknownCompressedFile-class.html" class="summary-name">UnknownCompressedFile</a><br />
+      wrapper for "File" with locking
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.GzipFile-class.html" class="summary-name">GzipFile</a><br />
+      Just a wrapper forgzip.GzipFile providing the correct seek 
+        capabilities for python 2.5
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.BZ2File-class.html" class="summary-name">BZ2File</a><br />
+      Wrapper with lock
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="deprecated"></a><span class="summary-sig-name">deprecated</span>(<span class="summary-sig-arg">func</span>)</span><br />
+      used to deprecate a function/method: prints a lot of warning messages
+      to enforce the modifaction of the code</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#deprecated">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getnum"></a><span class="summary-sig-name">getnum</span>(<span class="summary-sig-arg">name</span>)</span><br />
+      # try to figure out a file number # guess it starts at the back</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#getnum">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="numstem"></a><span class="summary-sig-name">numstem</span>(<span class="summary-sig-arg">name</span>)</span><br />
+      cant see how to do without reversing strings Match 1 or more digits 
+      going backwards from the end of the string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#numstem">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils-module.html#deconstruct_filename" class="summary-sig-name">deconstruct_filename</a>(<span class="summary-sig-arg">*arg</span>,
+        <span class="summary-sig-arg">**kw</span>)</span><br />
+      decorator that deprecates the use of a function</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#deconstruct_filename">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="construct_filename"></a><span class="summary-sig-name">construct_filename</span>(<span class="summary-sig-arg">filename</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Try to construct the filename for a given frame</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#construct_filename">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="next_filename"></a><span class="summary-sig-name">next_filename</span>(<span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">padding</span>=<span class="summary-sig-default">True</span>)</span><br />
+      increment number</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#next_filename">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="previous_filename"></a><span class="summary-sig-name">previous_filename</span>(<span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">padding</span>=<span class="summary-sig-default">True</span>)</span><br />
+      decrement number</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#previous_filename">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="jump_filename"></a><span class="summary-sig-name">jump_filename</span>(<span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">num</span>,
+        <span class="summary-sig-arg">padding</span>=<span class="summary-sig-default">True</span>)</span><br />
+      jump to number</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#jump_filename">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="extract_filenumber"></a><span class="summary-sig-name">extract_filenumber</span>(<span class="summary-sig-arg">name</span>)</span><br />
+      extract file number</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#extract_filenumber">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils-module.html#isAscii" class="summary-sig-name">isAscii</a>(<span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">listExcluded</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Returns:
+      True of False whether  name is pure ascii or not</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#isAscii">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils-module.html#toAscii" class="summary-sig-name">toAscii</a>(<span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">excluded</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Returns:
+      the name with all non valid char removed</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#toAscii">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils-module.html#nice_int" class="summary-sig-name">nice_int</a>(<span class="summary-sig-arg">s</span>)</span><br />
+      Workaround that int('1.0') raises an exception</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#nice_int">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("fabioutils")">logging.getLogger("fabioutils")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils-module.html#FILETYPES" class="summary-name">FILETYPES</a> = <code title="{'cbf': ['cbf'],
+ 'cbf.bz2': ['cbf'],
+ 'cbf.gz': ['cbf'],
+ 'cor': ['edf'],
+ 'cor.bz2': ['edf'],
+ 'cor.gz': ['edf'],
+ 'dm3': ['dm3'],
+ 'dm3.bz2': ['dm3'],
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">cbf</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">cbf</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">cbf.bz2</co [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="COMPRESSORS"></a><span class="summary-name">COMPRESSORS</span> = <code title="{'.bz2': 'bzip2 -dc ', '.gz': 'gzip -dc '}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">.bz2</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">bzip2 -dc </code><code class="variable-quote">'</code><code class="variable-op">, </code><code clas [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils-module.html#dictAscii" class="summary-name">dictAscii</a> = <code title="{None: [' ',
+        '!',
+        '"',
+        '#',
+        '$',
+        '%',
+        '&',
+        '\'',
+..."><code class="variable-group">{</code>None<code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"> </code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">!</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">"</code> [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils-module.html#lines" class="summary-name">lines</a> = <code title="'''bzip2, a block-sorting file compressor.  Version 1.0.5, 10-Dec-2007\
+.
+
+   usage: bzip2 [flags and input files in any order]
+
+   -h --help           print this message
+   -d --decompress     force decompression
+   -z --compress       force compression
+..."><code class="variable-quote">'</code><code class="variable-string">bzip2, a block-sorting file compressor.  Version 1.0.</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="i"></a><span class="summary-name">i</span> = <code title="126">126</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="key"></a><span class="summary-name">key</span> = <code title="'cbf'"><code class="variable-quote">'</code><code class="variable-string">cbf</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Function Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-FunctionDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="deconstruct_filename"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">deconstruct_filename</span>(<span class="sig-arg">*arg</span>,
+        <span class="sig-arg">**kw</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#deconstruct_filename">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>decorator that deprecates the use of a function</p>
+  <dl class="fields">
+    <dt>Decorators:</dt>
+    <dd><ul class="nomargin-top">
+        <li><code>@deprecated</code></li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="isAscii"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">isAscii</span>(<span class="sig-arg">name</span>,
+        <span class="sig-arg">listExcluded</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#isAscii">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>name</code></strong> - string to check</li>
+        <li><strong class="pname"><code>listExcluded</code></strong> - list of char or string excluded.</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>True of False whether  name is pure ascii or not</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="toAscii"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">toAscii</span>(<span class="sig-arg">name</span>,
+        <span class="sig-arg">excluded</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#toAscii">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>name</code></strong> - string to check</li>
+        <li><strong class="pname"><code>excluded</code></strong> - tuple of char or string excluded (not list: they are mutable).</li>
+    </ul></dd>
+    <dt>Returns:</dt>
+        <dd>the name with all non valid char removed</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="nice_int"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">nice_int</span>(<span class="sig-arg">s</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#nice_int">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Workaround that int('1.0') raises an exception</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>s</code></strong> - string to be converted to integer</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="FILETYPES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">FILETYPES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">cbf</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">cbf</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">cbf.bz2</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">cbf</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">cbf.gz</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">cbf</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">cor</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">edf</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">cor.bz2</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">edf</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">cor.gz</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">edf</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">dm3</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">dm3</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">dm3.bz2</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">dm3</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="dictAscii"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">dictAscii</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>None<code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"> </code><code class="variable-quote">'</code><code class="variable-op">,</code>
+        <code class="variable-quote">'</code><code class="variable-string">!</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+        <code class="variable-quote">'</code><code class="variable-string">"</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+        <code class="variable-quote">'</code><code class="variable-string">#</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+        <code class="variable-quote">'</code><code class="variable-string">$</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+        <code class="variable-quote">'</code><code class="variable-string">%</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+        <code class="variable-quote">'</code><code class="variable-string">&</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+        <code class="variable-quote">'</code><code class="variable-string">\'</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="lines"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">lines</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'''</code><code class="variable-string">bzip2, a block-sorting file compressor.  Version 1.0.5, 10-Dec-2007</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">.</code>
+<code class="variable-string"></code>
+<code class="variable-string">   usage: bzip2 [flags and input files in any order]</code>
+<code class="variable-string"></code>
+<code class="variable-string">   -h --help           print this message</code>
+<code class="variable-string">   -d --decompress     force decompression</code>
+<code class="variable-string">   -z --compress       force compression</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioutils-pysrc.html b/epydoc/fabio.fabioutils-pysrc.html
new file mode 100644
index 0000000..9367252
--- /dev/null
+++ b/epydoc/fabio.fabioutils-pysrc.html
@@ -0,0 +1,1163 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioutils</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module fabioutils
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioutils-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.fabioutils-module.html">Module fabio.fabioutils</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">General purpose utilities functions for fabio</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">with_statement</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt><tt class="py-op">,</tt> <tt class="py-name">threading</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Class fabio.fabioutils.StringIO=fabio.fabioutils.StringIO-class.html"><a title="fabio.fabioutils.StringIO" class="py-name" href="#" onclick="return doclink('link-0', 'StringIO', 'link-0');">StringIO</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">stringIO</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-1', 'logger', 'link-1');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"fabioutils"</tt><tt class="py-op">)</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name" targets="Module fabio.compression=fabio.compression-module.html"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-2', 'compression', 'link-2');">compression</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">bz2</tt><tt class="py-op">,</tt> <tt class="py-name">gzip</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">traceback</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable fabio.fabioutils.FILETYPES=fabio.fabioutils-module.html#FILETYPES"><a title="fabio.fabioutils.FILETYPES" class="py-name" href="#" onclick="return doclink('link-3', 'FILETYPES', 'link-3');">FILETYPES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line">    <tt class="py-comment"># extension NNNimage fabioclass</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">    <tt class="py-comment"># type consistency - always use a list if one case is</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">    <tt class="py-string">'edf'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'edf'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">    <tt class="py-string">'cor'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'edf'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">    <tt class="py-string">'pnm'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'pnm'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt class="py-string">'pgm'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'pnm'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">    <tt class="py-string">'pbm'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'pnm'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">    <tt class="py-string">'tif'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'tif'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">    <tt class="py-string">'tiff'</tt>   <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'tif'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">    <tt class="py-string">'img'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'adsc'</tt><tt class="py-op">,</tt> <tt class="py-string">'OXD'</tt><tt class="py-op">,</tt> <tt class="py-string">'HiPiC'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">    <tt class="py-string">'mccd'</tt>   <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'marccd'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">    <tt class="py-string">'mar2300'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'mar345'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">    <tt class="py-string">'sfrm'</tt>   <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'bruker100'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">    <tt class="py-string">'msk'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'fit2dmask'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">    <tt class="py-string">'spr'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'fit2dspreadsheet'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">    <tt class="py-string">'dm3'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'dm3'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-string">'kcd'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'kcd'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">    <tt class="py-string">'cbf'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'cbf'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">    <tt class="py-string">'xml'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">"xsd"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">    <tt class="py-string">'xsd'</tt>    <tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">"xsd"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">             <tt class="py-op">}</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-comment"># Add bzipped and gzipped</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-keyword">for</tt> <tt id="link-4" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-4', 'key', 'link-4');">key</a></tt> <tt class="py-keyword">in</tt> <tt id="link-5" class="py-name"><a title="fabio.fabioutils.FILETYPES" class="py-name" href="#" onclick="return doclink('link-5', 'F [...]
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt id="link-6" class="py-name"><a title="fabio.fabioutils.FILETYPES" class="py-name" href="#" onclick="return doclink('link-6', 'FILETYPES', 'link-3');">FILETYPES</a></tt><tt class="py-op">[</tt><tt id="link-7" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-7', 'key', 'link-4');">key</a></tt> <tt class="py-op">+</tt> <tt class="py-string">".bz2"</tt><tt class [...]
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt id="link-10" class="py-name"><a title="fabio.fabioutils.FILETYPES" class="py-name" href="#" onclick="return doclink('link-10', 'FILETYPES', 'link-3');">FILETYPES</a></tt><tt class="py-op">[</tt><tt id="link-11" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-11', 'key', 'link-4');">key</a></tt> <tt class="py-op">+</tt> <tt class="py-string">".gz"</tt><tt cl [...]
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-comment"># Compressors</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt id="link-14" class="py-name" targets="Variable fabio.fabioutils.COMPRESSORS=fabio.fabioutils-module.html#COMPRESSORS"><a title="fabio.fabioutils.COMPRESSORS" class="py-name" href="#" onclick="return doclink('link-14', 'COMPRESSORS', 'link-14');">COMPRESSORS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt id="link-15" class="py-name" targets="Variable fabio.fabioutils.dictAscii=fabio.fabioutils-module.html#dictAscii"><a title="fabio.fabioutils.dictAscii" class="py-name" href="#" onclick="return doclink('link-15', 'dictAscii', 'link-15');">dictAscii</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt><tt class="py-op">[</tt><tt class="py-name">chr</tt><tt cla [...]
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">           <tt class="py-op">}</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt id="link-18" class="py-name" targets="Variable fabio.fabioutils.lines=fabio.fabioutils-module.html#lines"><a title="fabio.fabioutils.lines" class="py-name" href="#" onclick="return doclink('link-18', 'lines', 'link-18');">lines</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen</tt><tt class="py-op">(</tt><tt class="py-string">"gzip -h 2>&1"</tt [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-19', 'read', 'link-19');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">    <tt class="py-comment"># Looking for "usage"</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">"sage"</tt> <tt class="py-keyword">in</tt> <tt id="link-20" class="py-name"><a title="fabio.fabioutils.lines" class="py-name" href="#" onclick="return doclink('link-20', 'lines', 'link-18');">lines</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt id="link-21" class="py-name"><a title="fabio.fabioutils.COMPRESSORS" class="py-name" href="#" onclick="return doclink('link-21', 'COMPRESSORS', 'link-14');">COMPRESSORS</a></tt><tt class="py-op">[</tt><tt class="py-string">'.gz'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'gzip -dc '</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt id="link-22" class="py-name"><a title="fabio.fabioutils.COMPRESSORS" class="py-name" href="#" onclick="return doclink('link-22', 'COMPRESSORS', 'link-14');">COMPRESSORS</a></tt><tt class="py-op">[</tt><tt class="py-string">'.gz'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">    <tt id="link-23" class="py-name"><a title="fabio.fabioutils.COMPRESSORS" class="py-name" href="#" onclick="return doclink('link-23', 'COMPRESSORS', 'link-14');">COMPRESSORS</a></tt><tt class="py-op">[</tt><tt class="py-string">'.gz'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">    <tt id="link-24" class="py-name"><a title="fabio.fabioutils.lines" class="py-name" href="#" onclick="return doclink('link-24', 'lines', 'link-18');">lines</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen</tt><tt class="py-op">(</tt><tt class="py-string">"bzip2 -h 2>&1"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-25" class="py- [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-25', 'read', 'link-19');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt class="py-comment"># Looking for "usage" </tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">"sage"</tt> <tt class="py-keyword">in</tt> <tt id="link-26" class="py-name"><a title="fabio.fabioutils.lines" class="py-name" href="#" onclick="return doclink('link-26', 'lines', 'link-18');">lines</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt id="link-27" class="py-name"><a title="fabio.fabioutils.COMPRESSORS" class="py-name" href="#" onclick="return doclink('link-27', 'COMPRESSORS', 'link-14');">COMPRESSORS</a></tt><tt class="py-op">[</tt><tt class="py-string">'.bz2'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'bzip2 -dc '</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt id="link-28" class="py-name"><a title="fabio.fabioutils.COMPRESSORS" class="py-name" href="#" onclick="return doclink('link-28', 'COMPRESSORS', 'link-14');">COMPRESSORS</a></tt><tt class="py-op">[</tt><tt class="py-string">'.bz2'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">    <tt id="link-29" class="py-name"><a title="fabio.fabioutils.COMPRESSORS" class="py-name" href="#" onclick="return doclink('link-29', 'COMPRESSORS', 'link-14');">COMPRESSORS</a></tt><tt class="py-op">[</tt><tt class="py-string">'.bz2'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="deprecated"></a><div id="deprecated-def"><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="deprecated-toggle" onclick="return toggle('deprecated');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#deprecated">deprecated</a><tt class="py-op">(</tt><tt class="py-param">func</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="deprecated-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="deprecated-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-docstring">    used to deprecate a function/method: prints a lot of warning messages to enforce the modifaction of the code</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">wrapper</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">arg</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kw</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt class="py-docstring">        decorator that deprecates the use of a function  </tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt id="link-30" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-30', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"%s is Deprecated !!! %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">func</tt><tt class="py-op">.</tt><tt class="py-name">func_name</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">linesep [...]
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">func</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kw</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">wrapper</tt> </tt>
+</div><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="getnum"></a><div id="getnum-def"><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="getnum-toggle" onclick="return toggle('getnum');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#getnum">getnum</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="getnum-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="getnum-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring">    # try to figure out a file number</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring">    # guess it starts at the back</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">    <tt class="py-name">stem</tt> <tt class="py-op">,</tt> <tt class="py-name">num</tt><tt class="py-op">,</tt> <tt class="py-name">post_num</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name" targets="Function fabio.fabioutils.numstem()=fabio.fabioutils-module.html#numstem"><a title="fabio.fabioutils.numstem" class="py-name" href="#" onclick="return doclink('link-31', 'numstem', 'link-31');">numstem</a></tt [...]
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">)</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"> </tt>
+<a name="FilenameObject"></a><div id="FilenameObject-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="FilenameObject-toggle" onclick="return toggle('FilenameObject');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.fabioutils.FilenameObject-class.html">FilenameObject</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FilenameObject-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="FilenameObject-expanded"><a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"><tt class="py-docstring">    The 'meaning' of a filename ... </tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="FilenameObject.__init__"></a><div id="FilenameObject.__init__-def"><a name="L101"></a><tt class="py-lineno">101</tt> <a class="py-toggle" href="#" id="FilenameObject.__init__-toggle" onclick="return toggle('FilenameObject.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.FilenameObject-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py- [...]
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">            <tt class="py-param">num</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">            <tt class="py-param">directory</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt class="py-param">format</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">            <tt class="py-param">extension</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">            <tt class="py-param">postnum</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-param">digits</tt><tt class="py-op">=</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-param">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FilenameObject.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FilenameObject.__init__-expanded"><a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-docstring">        This class can either be instanciated by a set of parameters like  directory, prefix, num, extension, ...   </tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-docstring">        @param stem: the stem is a kind of prefix (str)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-docstring">        @param num: image number in the serie (int)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring">        @param directory: name of the directory (str)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">        @param format: ??</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">        @param extension: </tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">        @param postnum: </tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">        @param digits: Number of digits used to print num</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">        Alternative constructor: </tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">        @param filename: fullpath of an image file to be deconstructed into directory, prefix, num, extension, ... </tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stem</tt> <tt class="py-op">=</tt> <tt class="py-name">stem</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">num</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">format</tt> <tt class="py-op">=</tt> <tt class="py-name">format</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt> <tt class="py-op">=</tt> <tt class="py-name">extension</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt> <tt class="py-op">=</tt> <tt class="py-name">digits</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postnum</tt> <tt class="py-op">=</tt> <tt class="py-name">postnum</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">directory</tt> <tt class="py-op">=</tt> <tt class="py-name">directory</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">compressed</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method fabio.fabioutils.FilenameObject.deconstruct_filename()=fabio.fabioutils.FilenameObject-class.html#deconstruct_filename,Function fabio.fabioutils.deconstruct_filename()=fabio.fabioutils-module.html#deconstruct_filename"><a title="fabio.fabioutils.FilenameObject.deconstruct_filename
+fabio.fabioutils.deconstruct_filename" class="py-name" href="#" onclick="return doclink('link-32', 'deconstruct_filename', 'link-32');">deconstruct_filename</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">             </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"> </tt>
+<a name="FilenameObject.str"></a><div id="FilenameObject.str-def"><a name="L139"></a><tt class="py-lineno">139</tt> <a class="py-toggle" href="#" id="FilenameObject.str-toggle" onclick="return toggle('FilenameObject.str');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.FilenameObject-class.html#str">str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FilenameObject.str-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FilenameObject.str-expanded"><a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-docstring">""" Return a string representation """</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-string">"stem %s, num %s format %s extension %s "</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">                <tt class="py-string">"postnum = %s digits %s dir %s"</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">fmt</tt> <tt class="py-op">%</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-33" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-33', 'str', 'link-33');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stem</tt> <tt class="py-op">,</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">,</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">format</tt> <tt class="py-op">,</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt> <tt class="py-op">,</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postnum</tt> <tt class="py-op">,</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt> <tt class="py-op">,</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">directory</tt> <tt class="py-op">]</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">    <tt id="link-34" class="py-name" targets="Method fabio.OXDimage.Section.__repr__()=fabio.OXDimage.Section-class.html#__repr__"><a title="fabio.OXDimage.Section.__repr__" class="py-name" href="#" onclick="return doclink('link-34', '__repr__', 'link-34');">__repr__</a></tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-35', 'str', 'link-33');">str</a></tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"> </tt>
+<a name="FilenameObject.tostring"></a><div id="FilenameObject.tostring-def"><a name="L153"></a><tt class="py-lineno">153</tt> <a class="py-toggle" href="#" id="FilenameObject.tostring-toggle" onclick="return toggle('FilenameObject.tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.FilenameObject-class.html#tostring">tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-o [...]
+</div><div id="FilenameObject.tostring-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FilenameObject.tostring-expanded"><a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">        convert yourself to a string</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stem</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</t [...]
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-string">"%0"</tt> <tt class="py-op">+</tt> <tt id="link-36" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-36', 'str', 'link-33');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"d"</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">            <tt class="py-name">name</tt> <tt class="py-op">+=</tt> <tt class="py-name">fmt</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postnum</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">            <tt class="py-name">name</tt> <tt class="py-op">+=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postnum</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">            <tt class="py-name">name</tt> <tt class="py-op">+=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">directory</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">            <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">directory</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">name</tt> </tt>
+</div><a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"> </tt>
+<a name="FilenameObject.deconstruct_filename"></a><div id="FilenameObject.deconstruct_filename-def"><a name="L170"></a><tt class="py-lineno">170</tt> <a class="py-toggle" href="#" id="FilenameObject.deconstruct_filename-toggle" onclick="return toggle('FilenameObject.deconstruct_filename');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.FilenameObject-class.html#deconstruct_filename">deconstruct_filename</a><tt class="py-op">(</ [...]
+</div><div id="FilenameObject.deconstruct_filename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="FilenameObject.deconstruct_filename-expanded"><a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring">        Break up a filename to get image type and number</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt class="py-name">direc</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-name">direc</tt> <tt class="py-op">=</tt> <tt class="py-name">direc</tt> <tt class="py-keyword">or</tt> <tt class="py-name">None</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">name</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"."</tt><tt class="py-op">)</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-name">compressed</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-name">stem</tt> <tt class="py-op">=</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">        <tt class="py-name">extn</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">        <tt class="py-name">postnum</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-name">ndigit</tt> <tt class="py-op">=</tt> <tt class="py-number">4</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">"gz"</tt><tt class="py-op">,</tt> <tt class="py-string">"bz2"</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">            <tt class="py-name">extn</tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt> <tt class="py-op">+</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">            <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">            <tt class="py-name">compressed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt id="link-37" class="py-name"><a title="fabio.fabioutils.FILETYPES" class="py-name" href="#" onclick="return doclink('link-37', 'FILETYPES', 'link-3');">FILETYPES</a></tt><tt class="py-op">.</tt><tt class="py-name">ke [...]
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">            <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt id="link-38" class="py-name"><a title="fabio.fabioutils.FILETYPES" class="py-name" href="#" onclick="return doclink('link-38', 'FILETYPES', 'link-3');">FILETYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">            <tt class="py-name">extn</tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt> <tt class="py-op">+</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">extn</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">                <tt class="py-name">stem</tt><tt class="py-op">,</tt> <tt class="py-name">numstring</tt><tt class="py-op">,</tt> <tt class="py-name">postnum</tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="fabio.fabioutils.numstem" class="py-name" href="#" onclick="return doclink('link-39', 'numstem', 'link-31');">numstem</a></tt><tt class="py-op">(</tt><tt class="py-string">"."</tt><tt class=" [...]
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">                <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">numstring</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">                <tt class="py-name">ndigit</tt> <tt class="py-op">=</tt> <tt id="link-40" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-40', 'len', 'link-40');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">numstring</tt><tt class="py-op">)</t [...]
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">err</tt><tt class="py-op">:</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">                <tt class="py-comment"># There is no number - hence make num be None, not 0</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">                <tt id="link-41" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-41', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"l176: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">                <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">                <tt class="py-name">stem</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">            <tt class="py-comment"># Probably two type left</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-42" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-42', 'len', 'link-40');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">                <tt class="py-comment"># Probably GE format stem_numb</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">                <tt class="py-name">parts2</tt> <tt class="py-op">=</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"_"</tt><tt class="py-op">)</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">parts2</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">isdigit</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">                    <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">parts2</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">                    <tt class="py-name">ndigit</tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-43', 'len', 'link-40');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">parts2</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">) [...]
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">                    <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'GE'</tt><tt class="py-op">]</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">                    <tt class="py-name">stem</tt> <tt class="py-op">=</tt> <tt class="py-string">"_"</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">parts2</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"_"</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">                    <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">                    <tt class="py-name">ndigit</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-44', 'len', 'link-40');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)< [...]
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">                    <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'bruker'</tt><tt class="py-op">]</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">                    <tt class="py-name">stem</tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"."</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">err</tt><tt class="py-op">:</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">                    <tt id="link-45" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-45', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"l196: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">                    <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">                    <tt class="py-name">extn</tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt> <tt class="py-op">+</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">extn</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">                    <tt class="py-name">numstring</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">                        <tt class="py-name">stem</tt> <tt class="py-op">,</tt> <tt class="py-name">numstring</tt><tt class="py-op">,</tt> <tt class="py-name">postnum</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="fabio.fabioutils.numstem" class="py-name" href="#" onclick="return doclink('link-46', 'numstem', 'link-31');">numstem</a></tt><tt class="py-op">(</tt><tt class="py-string">"."</tt><t [...]
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">err</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">                        <tt id="link-47" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-47', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"l202: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">numstring</tt><tt class="py-op">.</tt><tt class="py-name">isdigit</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">                        <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">numstring</tt><tt class="py-op">)</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">                        <tt class="py-name">ndigit</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-48', 'len', 'link-40');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">numstring</tt><tt class="py-op">)</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">                <tt class="py-comment">#            raise Exception("Cannot decode "+filename)</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stem</tt> <tt class="py-op">=</tt> <tt class="py-name">stem</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">num</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">directory</tt> <tt class="py-op">=</tt> <tt class="py-name">direc</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">format</tt> <tt class="py-op">=</tt> <tt class="py-name">typ</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">extension</tt> <tt class="py-op">=</tt> <tt class="py-name">extn</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postnum</tt> <tt class="py-op">=</tt> <tt class="py-name">postnum</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt> <tt class="py-op">=</tt> <tt class="py-name">ndigit</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">compressed</tt> <tt class="py-op">=</tt> <tt class="py-name">compressed</tt> </tt>
+</div></div><a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"> </tt>
+<a name="numstem"></a><div id="numstem-def"><a name="L240"></a><tt class="py-lineno">240</tt> <a class="py-toggle" href="#" id="numstem-toggle" onclick="return toggle('numstem');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#numstem">numstem</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="numstem-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="numstem-expanded"><a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">    <tt class="py-docstring">""" cant see how to do without reversing strings</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring">    Match 1 or more digits going backwards from the end of the string</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">    <tt class="py-name">reg</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r"^(.*?)(-?[0-9]{0,9})(\D*)$"</tt><tt class="py-op">)</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">    <tt class="py-comment">#reg = re.compile("""(\D*)(\d\d*)(\w*)""")</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">reg</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">groups</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt class="py-comment">#res = reg.match(name[::-1]).groups()</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">        <tt class="py-comment">#return [ r[::-1] for r in res[::-1]]</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-49" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-49', 'len', 'link-40');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-50" class="py-name"> [...]
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">res</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">]</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt> <tt class="py-name">r</tt> <tt class="py-keyword">for</tt> <tt class="py-name">r</tt> <tt class="py-keyword">in</tt> <tt class="py-name">res</tt><tt class="py-op">]</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> <tt class="py-comment"># no digits found</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line"> </tt>
+<a name="deconstruct_filename"></a><div id="deconstruct_filename-def"><a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">deprecated</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <a class="py-toggle" href="#" id="deconstruct_filename-toggle" onclick="return toggle('deconstruct_filename');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#deconstruct_filename">deconstruct_filename</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="deconstruct_filename-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="deconstruct_filename-expanded"><a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line"><tt class="py-docstring">    Function for backward compatibility.</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"><tt class="py-docstring">    Deprecated</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-51" class="py-name" targets="Class fabio.fabioutils.FilenameObject=fabio.fabioutils.FilenameObject-class.html"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-51', 'FilenameObject', 'link-51');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name"> [...]
+</div><a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"> </tt>
+<a name="construct_filename"></a><div id="construct_filename-def"><a name="L264"></a><tt class="py-lineno">264</tt> <a class="py-toggle" href="#" id="construct_filename-toggle" onclick="return toggle('construct_filename');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#construct_filename">construct_filename</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">frame</ [...]
+</div><div id="construct_filename-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="construct_filename-expanded"><a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">    <tt class="py-docstring">"Try to construct the filename for a given frame"</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">    <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-52', 'FilenameObject', 'link-51');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">frame</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">        <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">frame</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-53', 'tostring', 'link-53');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"> </tt>
+<a name="next_filename"></a><div id="next_filename-def"><a name="L271"></a><tt class="py-lineno">271</tt> <a class="py-toggle" href="#" id="next_filename-toggle" onclick="return toggle('next_filename');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#next_filename">next_filename</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">padding</tt><tt class="py-op">=</tt><tt c [...]
+</div><div id="next_filename-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="next_filename-expanded"><a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">    <tt class="py-docstring">""" increment number """</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">    <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-54', 'FilenameObject', 'link-51');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">    <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">padding</tt><tt class="py-op">:</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-55', 'tostring', 'link-53');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line"> </tt>
+<a name="previous_filename"></a><div id="previous_filename-def"><a name="L279"></a><tt class="py-lineno">279</tt> <a class="py-toggle" href="#" id="previous_filename-toggle" onclick="return toggle('previous_filename');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#previous_filename">previous_filename</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">padding</tt><tt c [...]
+</div><div id="previous_filename-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="previous_filename-expanded"><a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">    <tt class="py-docstring">""" decrement number """</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">    <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-56', 'FilenameObject', 'link-51');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">    <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">padding</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">        <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-57', 'tostring', 'link-53');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line"> </tt>
+<a name="jump_filename"></a><div id="jump_filename-def"><a name="L287"></a><tt class="py-lineno">287</tt> <a class="py-toggle" href="#" id="jump_filename-toggle" onclick="return toggle('jump_filename');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#jump_filename">jump_filename</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">num</tt><tt class="py-op">,</tt> <tt clas [...]
+</div><div id="jump_filename-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="jump_filename-expanded"><a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">    <tt class="py-docstring">""" jump to number """</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">    <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt id="link-58" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-58', 'FilenameObject', 'link-51');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">    <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">num</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">padding</tt><tt class="py-op">:</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">        <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-59', 'tostring', 'link-53');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"> </tt>
+<a name="extract_filenumber"></a><div id="extract_filenumber-def"><a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line"> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <a class="py-toggle" href="#" id="extract_filenumber-toggle" onclick="return toggle('extract_filenumber');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#extract_filenumber">extract_filenumber</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="extract_filenumber-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="extract_filenumber-expanded"><a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">    <tt class="py-docstring">""" extract file number """</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">    <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-60', 'FilenameObject', 'link-51');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> </tt>
+</div><a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"> </tt>
+<a name="isAscii"></a><div id="isAscii-def"><a name="L301"></a><tt class="py-lineno">301</tt> <a class="py-toggle" href="#" id="isAscii-toggle" onclick="return toggle('isAscii');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#isAscii">isAscii</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">listExcluded</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt cla [...]
+</div><div id="isAscii-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="isAscii-expanded"><a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line"><tt class="py-docstring">    @param name: string to check</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"><tt class="py-docstring">    @param listExcluded: list of char or string excluded.</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"><tt class="py-docstring">    @return: True of False whether  name is pure ascii or not</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">    <tt class="py-name">isascii</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">        <tt class="py-name">name</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeDecodeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">        <tt class="py-name">isascii</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">listExcluded</tt><tt class="py-op">:</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">            <tt class="py-name">isascii</tt> <tt class="py-op">=</tt> <tt class="py-keyword">not</tt><tt class="py-op">(</tt><tt class="py-name">any</tt><tt class="py-op">(</tt><tt class="py-name">bad</tt> <tt class="py-keyword">in</tt>  <tt class="py-name">name</tt> <tt class="py-keyword">for</tt> <tt class="py-name">bad</tt> <tt class="py-keyword">in</tt> <tt class="py-name">listExcluded</tt><tt class="py-op">)</tt> [...]
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">            <tt class="py-name">isascii</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">isascii</tt> </tt>
+</div><a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"> </tt>
+<a name="toAscii"></a><div id="toAscii-def"><a name="L319"></a><tt class="py-lineno">319</tt> <a class="py-toggle" href="#" id="toAscii-toggle" onclick="return toggle('toAscii');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#toAscii">toAscii</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">excluded</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class=" [...]
+</div><div id="toAscii-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="toAscii-expanded"><a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line"><tt class="py-docstring">    @param name: string to check</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"><tt class="py-docstring">    @param excluded: tuple of char or string excluded (not list: they are mutable).</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line"><tt class="py-docstring">    @return: the name with all non valid char removed</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">excluded</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-61" class="py-name"><a title="fabio.fabioutils.dictAscii" class="py-name" href="#" onclick="return doclink('link-61', 'dictAscii', 'link-15');">dictAscii</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">        <tt class="py-name">ascii</tt> <tt class="py-op">=</tt> <tt id="link-62" class="py-name"><a title="fabio.fabioutils.dictAscii" class="py-name" href="#" onclick="return doclink('link-62', 'dictAscii', 'link-15');">dictAscii</a></tt><tt class="py-op">[</tt><tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-63" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-63', 'i', 'link-16');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">excluded</tt><tt class="py-op">:</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-64" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-64', 'i', 'link-16');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">ascii</tt><tt class="py-op">:</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">                <tt class="py-name">ascii</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt id="link-65" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-65', 'i', 'link-16');">i</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">                <tt id="link-66" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-66', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"toAscii: % not in ascii table"</tt> <tt class="py-op">%</tt> <tt id="link-67" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-67', 'i', 'link-16');">i</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">        <tt id="link-68" class="py-name"><a title="fabio.fabioutils.dictAscii" class="py-name" href="#" onclick="return doclink('link-68', 'dictAscii', 'link-15');">dictAscii</a></tt><tt class="py-op">[</tt><tt class="py-name">excluded</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">ascii</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">        <tt class="py-name">ascii</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name"><a title="fabio.fabioutils.dictAscii" class="py-name" href="#" onclick="return doclink('link-69', 'dictAscii', 'link-15');">dictAscii</a></tt><tt class="py-op">[</tt><tt class="py-name">excluded</tt><tt class="py-op">]</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line">    <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-70" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-70', 'i', 'link-16');">i</a></tt> <tt class="py-keyword">for</tt> <tt id="link-71" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-71', 'i', 'link-16');">i</a></tt> <tt [...]
+str" class="py-name" href="#" onclick="return doclink('link-72', 'str', 'link-33');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> <tt class="py-keyword">if</tt> <tt id="link-73" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-73', 'i', 'link-16');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">ascii</tt><tt class="py-op">]</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line"> </tt>
+<a name="nice_int"></a><div id="nice_int-def"><a name="L338"></a><tt class="py-lineno">338</tt> <a class="py-toggle" href="#" id="nice_int-toggle" onclick="return toggle('nice_int');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils-module.html#nice_int">nice_int</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="nice_int-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="nice_int-expanded"><a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">    <tt class="py-docstring">""" </tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"><tt class="py-docstring">    Workaround that int('1.0') raises an exception </tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line"><tt class="py-docstring">    @param s: string to be converted to integer</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"> </tt>
+<a name="StringIO"></a><div id="StringIO-def"><a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line"> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <a class="py-toggle" href="#" id="StringIO-toggle" onclick="return toggle('StringIO');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.fabioutils.StringIO-class.html">StringIO</a><tt class="py-op">(</tt><tt class="py-base-class">stringIO</tt><tt class="py-op">.</tt><tt class="py-base-class">StringIO</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="StringIO-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="StringIO-expanded"><a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"><tt class="py-docstring">    just an interface providing the name and mode property to a StringIO</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"><tt class="py-docstring">    BugFix for MacOSX mainly</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="StringIO.__init__"></a><div id="StringIO.__init__-def"><a name="L356"></a><tt class="py-lineno">356</tt> <a class="py-toggle" href="#" id="StringIO.__init__-toggle" onclick="return toggle('StringIO.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.StringIO-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py- [...]
+</div><div id="StringIO.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="StringIO.__init__-expanded"><a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">        <tt class="py-name">stringIO</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="fabio.fabioutils.StringIO" class="py-name" href="#" onclick="return doclink('link-74', 'StringIO', 'link-0');">StringIO</a></tt><tt class="py-op">.</tt><tt id="link-75" class=" [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-75', '__init__', 'link-75');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-76" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-76', 'data', 'link-76');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Variable fabio.fabioutils.GzipFile.closed=fabio.fabioutils.GzipFile-class.html#closed"><a title="fabio.fabioutils.GzipFile.closed" class="py-name" href="#" onclick="return doclink('link-77', 'closed', 'link-77');">closed</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">fname</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-string">"fabioStream"</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mode</tt> <tt class="py-op">=</tt> <tt class="py-name">mode</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Semaphore</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line">     </tt>
+<a name="StringIO.getSize"></a><div id="StringIO.getSize-def"><a name="L367"></a><tt class="py-lineno">367</tt> <a class="py-toggle" href="#" id="StringIO.getSize-toggle" onclick="return toggle('StringIO.getSize');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.StringIO-class.html#getSize">getSize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="StringIO.getSize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="StringIO.getSize-expanded"><a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">            <tt id="link-78" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-78', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Measuring size of %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">            <tt class="py-keyword">with</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">:</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">                <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-79', 'seek', 'link-79');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py- [...]
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-80', 'seek', 'link-79');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">pos</tt><tt class="py-op">)</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> </tt>
+</div><a name="StringIO.setSize"></a><div id="StringIO.setSize-def"><a name="L376"></a><tt class="py-lineno">376</tt> <a class="py-toggle" href="#" id="StringIO.setSize-toggle" onclick="return toggle('StringIO.setSize');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.StringIO-class.html#setSize">setSize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py- [...]
+</div><div id="StringIO.setSize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="StringIO.setSize-expanded"><a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name" targets="Variable fabio.fabioutils.BZ2File.size=fabio.fabioutils.BZ2File-class.html#size,Variable fabio.fabioutils.File.size=fabio.fabi [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-81', 'size', 'link-81');">size</a></tt> </tt>
+</div><a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">    <tt id="link-82" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-82', 'size', 'link-81');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-83" class="py-name" targets="Method fabio.OXDimage.Section.getSize()=fabio.OXDimage.Section-class.html#getSize,Method fabio.fabioutils.BZ2File.getSize()=fabio.fabioutils.BZ2File-class.html#getSize,Method fabio.fabioutils.File.getSize()=fabio.fabioutils.File-class.html#g [...]
+fabio.fabioutils.BZ2File.getSize
+fabio.fabioutils.File.getSize
+fabio.fabioutils.GzipFile.getSize
+fabio.fabioutils.StringIO.getSize" class="py-name" href="#" onclick="return doclink('link-83', 'getSize', 'link-83');">getSize</a></tt><tt class="py-op">,</tt> <tt id="link-84" class="py-name" targets="Method fabio.fabioutils.BZ2File.setSize()=fabio.fabioutils.BZ2File-class.html#setSize,Method fabio.fabioutils.File.setSize()=fabio.fabioutils.File-class.html#setSize,Method fabio.fabioutils.GzipFile.setSize()=fabio.fabioutils.GzipFile-class.html#setSize,Method fabio.fabioutils.StringIO.set [...]
+fabio.fabioutils.File.setSize
+fabio.fabioutils.GzipFile.setSize
+fabio.fabioutils.StringIO.setSize" class="py-name" href="#" onclick="return doclink('link-84', 'setSize', 'link-84');">setSize</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line"> </tt>
+<a name="File"></a><div id="File-def"><a name="L380"></a><tt class="py-lineno">380</tt> <a class="py-toggle" href="#" id="File-toggle" onclick="return toggle('File');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.fabioutils.File-class.html">File</a><tt class="py-op">(</tt><tt class="py-base-class">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="File-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="File-expanded"><a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line"><tt class="py-docstring">    wrapper for "file" with locking</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="File.__init__"></a><div id="File.__init__-def"><a name="L384"></a><tt class="py-lineno">384</tt> <a class="py-toggle" href="#" id="File.__init__-toggle" onclick="return toggle('File.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.File-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class [...]
+</div><div id="File.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="File.__init__-expanded"><a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">        <tt class="py-docstring">"""file(name[, mode[, buffering]]) -> file object</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line"><tt class="py-docstring">            </tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line"><tt class="py-docstring">        Open a file.  The mode can be 'r', 'w' or 'a' for reading (default),</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line"><tt class="py-docstring">        writing or appending.  The file will be created if it doesn't exist</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line"><tt class="py-docstring">        when opened for writing or appending; it will be truncated when</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line"><tt class="py-docstring">        opened for writing.  Add a 'b' to the mode for binary files.</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line"><tt class="py-docstring">        Add a '+' to the mode to allow simultaneous reading and writing.</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line"><tt class="py-docstring">        If the buffering argument is given, 0 means unbuffered, 1 means line</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line"><tt class="py-docstring">        buffered, and larger numbers specify the buffer size.  The preferred way</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line"><tt class="py-docstring">        to open a file is with the builtin open() function.</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line"><tt class="py-docstring">        Add a 'U' to mode to open the file for input with universal newline</tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line"><tt class="py-docstring">        support.  Any line ending in the input file will be seen as a '\n'</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line"><tt class="py-docstring">        in Python.  Also, a file so opened gains the attribute 'newlines';</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line"><tt class="py-docstring">        the value for this attribute is one of None (no newline read yet),</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line"><tt class="py-docstring">        '\r', '\n', '\r\n' or a tuple containing all the newline types seen.</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line"><tt class="py-docstring">        'U' cannot be combined with 'w' or '+' mode.</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">        <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-85', '__init__', 'link-75');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">buffering</tt><tt class="py-op">)</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Semaphore</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="File.getSize"></a><div id="File.getSize-def"><a name="L406"></a><tt class="py-lineno">406</tt> <a class="py-toggle" href="#" id="File.getSize-toggle" onclick="return toggle('File.getSize');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.File-class.html#getSize">getSize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="File.getSize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="File.getSize-expanded"><a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line">            <tt id="link-86" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-86', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Measuring size of %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line">            <tt class="py-keyword">with</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">:</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt>  <tt class="py-line">                <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-87', 'seek', 'link-79');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_END</tt><tt class="py-op">)</t [...]
+<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-88', 'seek', 'link-79');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">pos</tt><tt class="py-op">)</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> </tt>
+</div><a name="File.setSize"></a><div id="File.setSize-def"><a name="L415"></a><tt class="py-lineno">415</tt> <a class="py-toggle" href="#" id="File.setSize-toggle" onclick="return toggle('File.setSize');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.File-class.html#setSize">setSize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">size</tt><tt class="py-op">)</tt><tt class= [...]
+</div><div id="File.setSize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="File.setSize-expanded"><a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-89', 'size', 'link-81');">size</a></tt> </tt>
+</div><a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line">    <tt id="link-90" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-90', 'size', 'link-81');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-91" class="py-name"><a title="fabio.OXDimage.Section.getSize
+fabio.fabioutils.BZ2File.getSize
+fabio.fabioutils.File.getSize
+fabio.fabioutils.GzipFile.getSize
+fabio.fabioutils.StringIO.getSize" class="py-name" href="#" onclick="return doclink('link-91', 'getSize', 'link-83');">getSize</a></tt><tt class="py-op">,</tt> <tt id="link-92" class="py-name"><a title="fabio.fabioutils.BZ2File.setSize
+fabio.fabioutils.File.setSize
+fabio.fabioutils.GzipFile.setSize
+fabio.fabioutils.StringIO.setSize" class="py-name" href="#" onclick="return doclink('link-92', 'setSize', 'link-84');">setSize</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line"> </tt>
+<a name="UnknownCompressedFile"></a><div id="UnknownCompressedFile-def"><a name="L419"></a><tt class="py-lineno">419</tt> <a class="py-toggle" href="#" id="UnknownCompressedFile-toggle" onclick="return toggle('UnknownCompressedFile');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.fabioutils.UnknownCompressedFile-class.html">UnknownCompressedFile</a><tt class="py-op">(</tt><tt class="py-base-class">File</tt><tt class="py-op">)</tt><tt class [...]
+</div><div id="UnknownCompressedFile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownCompressedFile-expanded"><a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line"><tt class="py-docstring">    wrapper for "File" with locking</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="UnknownCompressedFile.__init__"></a><div id="UnknownCompressedFile.__init__-def"><a name="L423"></a><tt class="py-lineno">423</tt> <a class="py-toggle" href="#" id="UnknownCompressedFile.__init__-toggle" onclick="return toggle('UnknownCompressedFile.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.UnknownCompressedFile-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt  [...]
+</div><div id="UnknownCompressedFile.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="UnknownCompressedFile.__init__-expanded"><a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line">        <tt id="link-93" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-93', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"No decompressor found for this type of file (are gzip anf bz2 installed ???"</tt><tt class="py-op">)</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt>  <tt class="py-line">        <tt id="link-94" class="py-name" targets="Class fabio.fabioutils.File=fabio.fabioutils.File-class.html"><a title="fabio.fabioutils.File" class="py-name" href="#" onclick="return doclink('link-94', 'File', 'link-94');">File</a></tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-95', '__init__', 'link-75');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">buffering</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line"> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">gzip</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line">    <tt id="link-96" class="py-name" targets="Class fabio.fabioutils.GzipFile=fabio.fabioutils.GzipFile-class.html"><a title="fabio.fabioutils.GzipFile" class="py-name" href="#" onclick="return doclink('link-96', 'GzipFile', 'link-96');">GzipFile</a></tt> <tt class="py-op">=</tt> <tt id="link-97" class="py-name" targets="Class fabio.fabioutils.UnknownCompressedFile=fabio.fabioutils.UnknownCompressedFile-class.html"><a [...]
+<a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="GzipFile"></a><div id="GzipFile-def"><a name="L430"></a><tt class="py-lineno">430</tt> <a class="py-toggle" href="#" id="GzipFile-toggle" onclick="return toggle('GzipFile');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.fabioutils.GzipFile-class.html">GzipFile</a><tt class="py-op">(</tt><tt class="py-base-class">gzip</tt><tt class="py-op">.</tt><tt class="py-base-class">GzipFile</tt><tt class="py-op">)</tt><tt class="py-op">:< [...]
+</div><div id="GzipFile-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GzipFile-expanded"><a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line"><tt class="py-docstring">        Just a wrapper forgzip.GzipFile providing the correct seek capabilities for python 2.5   </tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="GzipFile.__init__"></a><div id="GzipFile.__init__-def"><a name="L434"></a><tt class="py-lineno">434</tt> <a class="py-toggle" href="#" id="GzipFile.__init__-toggle" onclick="return toggle('GzipFile.__init__');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.GzipFile-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt cl [...]
+</div><div id="GzipFile.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="GzipFile.__init__-expanded"><a name="L435"></a><tt class="py-lineno">435</tt>  <tt class="py-line">            <tt class="py-docstring">"""</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt>  <tt class="py-line"><tt class="py-docstring">            Wrapper with locking for constructor for the GzipFile class.</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt>  <tt class="py-line"><tt class="py-docstring">            </tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt>  <tt class="py-line"><tt class="py-docstring">            At least one of fileobj and filename must be given a</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt>  <tt class="py-line"><tt class="py-docstring">            non-trivial value.</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt>  <tt class="py-line"><tt class="py-docstring">            </tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt>  <tt class="py-line"><tt class="py-docstring">            The new class instance is based on fileobj, which can be a regular</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line"><tt class="py-docstring">            file, a StringIO object, or any other object which simulates a file.</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt>  <tt class="py-line"><tt class="py-docstring">            It defaults to None, in which case filename is opened to provide</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt>  <tt class="py-line"><tt class="py-docstring">            a file object.</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt>  <tt class="py-line"><tt class="py-docstring">            </tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt>  <tt class="py-line"><tt class="py-docstring">            When fileobj is not None, the filename argument is only used to be</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt>  <tt class="py-line"><tt class="py-docstring">            included in the gzip file header, which may includes the original</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt>  <tt class="py-line"><tt class="py-docstring">            filename of the uncompressed file.  It defaults to the filename of</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt>  <tt class="py-line"><tt class="py-docstring">            fileobj, if discernible; otherwise, it defaults to the empty string,</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line"><tt class="py-docstring">            and in this case the original filename is not included in the header.</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line"><tt class="py-docstring">            </tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line"><tt class="py-docstring">            The mode argument can be any of 'r', 'rb', 'a', 'ab', 'w', or 'wb',</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line"><tt class="py-docstring">            depending on whether the file will be read or written.  The default</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt>  <tt class="py-line"><tt class="py-docstring">            is the mode of fileobj if discernible; otherwise, the default is 'rb'.</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line"><tt class="py-docstring">            Be aware that only the 'rb', 'ab', and 'wb' values should be used</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line"><tt class="py-docstring">            for cross-platform portability.</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line"><tt class="py-docstring">            </tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line"><tt class="py-docstring">            The compresslevel argument is an integer from 1 to 9 controlling the</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt>  <tt class="py-line"><tt class="py-docstring">            level of compression; 1 is fastest and produces the least compression,</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line"><tt class="py-docstring">            and 9 is slowest and produces the most compression.  The default is 9.</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line"><tt class="py-docstring">            """</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line">            <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="fabio.fabioutils.GzipFile" class="py-name" href="#" onclick="return doclink('link-98', 'GzipFile', 'link-96');">GzipFile</a></tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-99', '__init__', 'link-75');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">compresslevel</tt><tt class="py-op">,</tt> <tt class="py-name">fileobj</tt><tt class="py-op">)</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Semaphore</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line"> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt>  <tt class="py-line"> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op"><</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">7</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="GzipFile.getSize"></a><div id="GzipFile.getSize-def"><a name="L468"></a><tt class="py-lineno">468</tt> <a class="py-toggle" href="#" id="GzipFile.getSize-toggle" onclick="return toggle('GzipFile.getSize');">-</a><tt class="py-line">            <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.GzipFile-class.html#getSize">getSize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="GzipFile.getSize-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++++++++++++++"></div><div id="GzipFile.getSize-expanded"><a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line">                    <tt id="link-100" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-100', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Measuring size of %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt>  <tt class="py-line">                    <tt class="py-keyword">with</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line">                        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-101', 'seek', 'link-79');">seek</a></tt><tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-102', 'read', 'link-19');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">)</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> </tt>
+</div><a name="GzipFile.setSize"></a><div id="GzipFile.setSize-def"><a name="L475"></a><tt class="py-lineno">475</tt> <a class="py-toggle" href="#" id="GzipFile.setSize-toggle" onclick="return toggle('GzipFile.setSize');">-</a><tt class="py-line">            <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.GzipFile-class.html#setSize">setSize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt c [...]
+</div><div id="GzipFile.setSize-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++++++++++++++"></div><div id="GzipFile.setSize-expanded"><a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
+</div><a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line">            <tt id="link-103" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-103', 'size', 'link-81');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-104" class="py-name"><a title="fabio.OXDimage.Section.getSize
+fabio.fabioutils.BZ2File.getSize
+fabio.fabioutils.File.getSize
+fabio.fabioutils.GzipFile.getSize
+fabio.fabioutils.StringIO.getSize" class="py-name" href="#" onclick="return doclink('link-104', 'getSize', 'link-83');">getSize</a></tt><tt class="py-op">,</tt> <tt id="link-105" class="py-name"><a title="fabio.fabioutils.BZ2File.setSize
+fabio.fabioutils.File.setSize
+fabio.fabioutils.GzipFile.setSize
+fabio.fabioutils.StringIO.setSize" class="py-name" href="#" onclick="return doclink('link-105', 'setSize', 'link-84');">setSize</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt>  <tt class="py-line">            <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
+<a name="GzipFile.closed"></a><div id="GzipFile.closed-def"><a name="L479"></a><tt class="py-lineno">479</tt> <a class="py-toggle" href="#" id="GzipFile.closed-toggle" onclick="return toggle('GzipFile.closed');">-</a><tt class="py-line">            <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.GzipFile-class.html#closed">closed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="GzipFile.closed-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++++++++++++++"></div><div id="GzipFile.closed-expanded"><a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fileobj</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line"> </tt>
+<a name="GzipFile.seek"></a><div id="GzipFile.seek-def"><a name="L482"></a><tt class="py-lineno">482</tt> <a class="py-toggle" href="#" id="GzipFile.seek-toggle" onclick="return toggle('GzipFile.seek');">-</a><tt class="py-line">            <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.GzipFile-class.html#seek">seek</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">offset</tt><tt class="py-op">,</tt> <tt [...]
+</div><div id="GzipFile.seek-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++++++++++++++"></div><div id="GzipFile.seek-expanded"><a name="L483"></a><tt class="py-lineno">483</tt>  <tt class="py-line">                <tt class="py-docstring">"""</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line"><tt class="py-docstring">                Move to new file position.</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line"><tt class="py-docstring">        </tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line"><tt class="py-docstring">                Argument offset is a byte count.  Optional argument whence defaults to</tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line"><tt class="py-docstring">                0 (offset from start of file, offset should be >= 0); other values are 1</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line"><tt class="py-docstring">                (move relative to current position, positive or negative), and 2 (move</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line"><tt class="py-docstring">                relative to end of file, usually negative, although many platforms allow</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line"><tt class="py-docstring">                seeking beyond the end of a file).  If the file is opened in text mode,</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line"><tt class="py-docstring">                only offsets returned by tell() are legal.  Use of other offsets causes</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line"><tt class="py-docstring">                undefined behavior.</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line"><tt class="py-docstring">                </tt> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line"><tt class="py-docstring">                This is a wrapper for seek to ensure compatibility with old python 2.5</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line"><tt class="py-docstring">                """</tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">whence</tt> <tt class="py-op">==</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_SET</tt><tt class="py-op">:</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line">                    <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="fabio.fabioutils.GzipFile" class="py-name" href="#" onclick="return doclink('link-106', 'GzipFile', 'link-96');">GzipFile</a></tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-107', 'seek', 'link [...]
+<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">whence</tt> <tt class="py-op">==</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_CUR</tt><tt class="py-op">:</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line">                    <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="fabio.fabioutils.GzipFile" class="py-name" href="#" onclick="return doclink('link-108', 'GzipFile', 'link-96');">GzipFile</a></tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-109', 'seek', 'link [...]
+<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">whence</tt> <tt class="py-op">==</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_END</tt><tt class="py-op">:</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line">                    <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="fabio.fabioutils.GzipFile" class="py-name" href="#" onclick="return doclink('link-110', 'GzipFile', 'link-96');">GzipFile</a></tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-111', 'seek', 'link [...]
+<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line">                    <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="fabio.fabioutils.GzipFile" class="py-name" href="#" onclick="return doclink('link-112', 'GzipFile', 'link-96');">GzipFile</a></tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-113', 'seek', 'link [...]
+</div></div><a name="L503"></a><tt class="py-lineno">503</tt>  <tt class="py-line"> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">bz2</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt>  <tt class="py-line">    <tt id="link-114" class="py-name" targets="Class fabio.fabioutils.BZ2File=fabio.fabioutils.BZ2File-class.html"><a title="fabio.fabioutils.BZ2File" class="py-name" href="#" onclick="return doclink('link-114', 'BZ2File', 'link-114');">BZ2File</a></tt> <tt class="py-op">=</tt> <tt id="link-115" class="py-name"><a title="fabio.fabioutils.UnknownCompressedFile" class="py-name" href="#" onclick="return doclink('link-115 [...]
+<a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="BZ2File"></a><div id="BZ2File-def"><a name="L507"></a><tt class="py-lineno">507</tt> <a class="py-toggle" href="#" id="BZ2File-toggle" onclick="return toggle('BZ2File');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.fabioutils.BZ2File-class.html">BZ2File</a><tt class="py-op">(</tt><tt class="py-base-class">bz2</tt><tt class="py-op">.</tt><tt class="py-base-class">BZ2File</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BZ2File-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BZ2File-expanded"><a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line">        <tt class="py-docstring">"Wrapper with lock"</tt> </tt>
+<a name="BZ2File.__init__"></a><div id="BZ2File.__init__-def"><a name="L509"></a><tt class="py-lineno">509</tt> <a class="py-toggle" href="#" id="BZ2File.__init__-toggle" onclick="return toggle('BZ2File.__init__');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.BZ2File-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt> <tt class="py- [...]
+</div><div id="BZ2File.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="BZ2File.__init__-expanded"><a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">            <tt class="py-docstring">"""</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line"><tt class="py-docstring">            BZ2File(name [, mode='r', buffering=0, compresslevel=9]) -> file object</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line"><tt class="py-docstring">            </tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line"><tt class="py-docstring">            Open a bz2 file. The mode can be 'r' or 'w', for reading (default) or</tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line"><tt class="py-docstring">            writing. When opened for writing, the file will be created if it doesn't</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line"><tt class="py-docstring">            exist, and truncated otherwise. If the buffering argument is given, 0 means</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line"><tt class="py-docstring">            unbuffered, and larger numbers specify the buffer size. If compresslevel</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line"><tt class="py-docstring">            is given, must be a number between 1 and 9.</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line"><tt class="py-docstring">            </tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line"><tt class="py-docstring">            Add a 'U' to mode to open the file for input with universal newline</tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt>  <tt class="py-line"><tt class="py-docstring">            support. Any line ending in the input file will be seen as a '\n' in</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line"><tt class="py-docstring">            Python. Also, a file so opened gains the attribute 'newlines'; the value</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line"><tt class="py-docstring">            for this attribute is one of None (no newline read yet), '\r', '\n',</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line"><tt class="py-docstring">            '\r\n' or a tuple containing all the newline types seen. Universal</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line"><tt class="py-docstring">            newlines are available only when reading.</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line"><tt class="py-docstring">            """</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line">            <tt class="py-name">bz2</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="fabio.fabioutils.BZ2File" class="py-name" href="#" onclick="return doclink('link-116', 'BZ2File', 'link-114');">BZ2File</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="fabio.OXDimage.Section.__init__
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-117', '__init__', 'link-75');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt> <tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">buffering</tt><tt class="py-op">,</tt> <tt class="py-name">compresslevel</tt><tt class="py-op">)</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Semaphore</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="BZ2File.getSize"></a><div id="BZ2File.getSize-def"><a name="L529"></a><tt class="py-lineno">529</tt> <a class="py-toggle" href="#" id="BZ2File.getSize-toggle" onclick="return toggle('BZ2File.getSize');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.BZ2File-class.html#getSize">getSize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BZ2File.getSize-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="BZ2File.getSize-expanded"><a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">                <tt id="link-118" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-118', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Measuring size of %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line">                <tt class="py-keyword">with</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lock</tt><tt class="py-op">:</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">                    <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line">                    <tt class="py-name">all</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-119', 'read', 'link-19');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-120', 'seek', 'link-79');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">pos</tt><tt class="py-op">)</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> </tt>
+</div><a name="BZ2File.setSize"></a><div id="BZ2File.setSize-def"><a name="L538"></a><tt class="py-lineno">538</tt> <a class="py-toggle" href="#" id="BZ2File.setSize-toggle" onclick="return toggle('BZ2File.setSize');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fabioutils.BZ2File-class.html#setSize">setSize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py- [...]
+</div><div id="BZ2File.setSize-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="BZ2File.setSize-expanded"><a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__size</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
+</div><a name="L540"></a><tt class="py-lineno">540</tt>  <tt class="py-line">        <tt id="link-121" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-121', 'size', 'link-81');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">property</tt><tt class="py-op">(</tt><tt id="link-122" class="py-name"><a title="fabio.OXDimage.Section.getSize
+fabio.fabioutils.BZ2File.getSize
+fabio.fabioutils.File.getSize
+fabio.fabioutils.GzipFile.getSize
+fabio.fabioutils.StringIO.getSize" class="py-name" href="#" onclick="return doclink('link-122', 'getSize', 'link-83');">getSize</a></tt><tt class="py-op">,</tt> <tt id="link-123" class="py-name"><a title="fabio.fabioutils.BZ2File.setSize
+fabio.fabioutils.File.setSize
+fabio.fabioutils.GzipFile.setSize
+fabio.fabioutils.StringIO.setSize" class="py-name" href="#" onclick="return doclink('link-123', 'setSize', 'link-84');">setSize</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioutils.BZ2File-class.html b/epydoc/fabio.fabioutils.BZ2File-class.html
new file mode 100644
index 0000000..1ae6c8a
--- /dev/null
+++ b/epydoc/fabio.fabioutils.BZ2File-class.html
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioutils.BZ2File</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fabioutils-module.html">Module fabioutils</a> ::
+        Class BZ2File
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioutils.BZ2File-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class BZ2File</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioutils-pysrc.html#BZ2File">source code</a></span></p>
+<pre class="base-tree">
+ object --+    
+          |    
+bz2.BZ2File --+
+              |
+             <strong class="uidshort">BZ2File</strong>
+</pre>
+
+<hr />
+<p>Wrapper with lock</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">file object</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils.BZ2File-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default">'r'</span>,
+        <span class="summary-sig-arg">buffering</span>=<span class="summary-sig-default">0</span>,
+        <span class="summary-sig-arg">compresslevel</span>=<span class="summary-sig-default">9</span>)</span><br />
+      Open a bz2 file.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#BZ2File.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getSize"></a><span class="summary-sig-name">getSize</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#BZ2File.getSize">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setSize"></a><span class="summary-sig-name">setSize</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">value</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#BZ2File.setSize">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>bz2.BZ2File</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__iter__</code>,
+      <code>__new__</code>,
+      <code>__setattr__</code>,
+      <code>close</code>,
+      <code>next</code>,
+      <code>read</code>,
+      <code>readline</code>,
+      <code>readlines</code>,
+      <code>seek</code>,
+      <code>tell</code>,
+      <code>write</code>,
+      <code>writelines</code>,
+      <code>xreadlines</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__format__</code>,
+      <code>__hash__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.BZ2File-class.html#size" class="summary-name">size</a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>bz2.BZ2File</code></b>:
+      <code>closed</code>,
+      <code>mode</code>,
+      <code>name</code>,
+      <code>newlines</code>,
+      <code>softspace</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">name</span>,
+        <span class="sig-arg">mode</span>=<span class="sig-default">'r'</span>,
+        <span class="sig-arg">buffering</span>=<span class="sig-default">0</span>,
+        <span class="sig-arg">compresslevel</span>=<span class="sig-default">9</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#BZ2File.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+            Open a bz2 file. The mode can be 'r' or 'w', for reading (default) or
+            writing. When opened for writing, the file will be created if it doesn't
+            exist, and truncated otherwise. If the buffering argument is given, 0 means
+            unbuffered, and larger numbers specify the buffer size. If compresslevel
+            is given, must be a number between 1 and 9.
+            
+            Add a 'U' to mode to open the file for input with universal newline
+            support. Any line ending in the input file will be seen as a '
+' in
+            Python. Also, a file so opened gains the attribute 'newlines'; the value
+            for this attribute is one of None (no newline read yet), '
', '
+',
+            '
+' or a tuple containing all the newline types seen. Universal
+            newlines are available only when reading.
+            
+
+</pre>
+  <dl class="fields">
+    <dt>Returns: file object</dt>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== PROPERTY DETAILS ==================== -->
+<a name="section-PropertyDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Property Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-PropertyDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="size"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">size</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.fabioutils.BZ2File-class.html#getSize" class="summary-sig-name">getSize</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.fabioutils.BZ2File-class.html#setSize" class="summary-sig-name">setSize</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">value</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioutils.File-class.html b/epydoc/fabio.fabioutils.File-class.html
new file mode 100644
index 0000000..2671452
--- /dev/null
+++ b/epydoc/fabio.fabioutils.File-class.html
@@ -0,0 +1,374 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioutils.File</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fabioutils-module.html">Module fabioutils</a> ::
+        Class File
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioutils.File-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class File</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioutils-pysrc.html#File">source code</a></span></p>
+<pre class="base-tree">
+object --+    
+         |    
+      file --+
+             |
+            <strong class="uidshort">File</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="fabio.fabioutils.UnknownCompressedFile-class.html">UnknownCompressedFile</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>wrapper for "file" with locking</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">file object</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils.File-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default">...</span>,
+        <span class="summary-sig-arg">buffering</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Open a file.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#File.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getSize"></a><span class="summary-sig-name">getSize</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#File.getSize">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setSize"></a><span class="summary-sig-name">setSize</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">size</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#File.setSize">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>file</code></b>:
+      <code>__delattr__</code>,
+      <code>__enter__</code>,
+      <code>__exit__</code>,
+      <code>__getattribute__</code>,
+      <code>__iter__</code>,
+      <code>__new__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>close</code>,
+      <code>fileno</code>,
+      <code>flush</code>,
+      <code>isatty</code>,
+      <code>next</code>,
+      <code>read</code>,
+      <code>readinto</code>,
+      <code>readline</code>,
+      <code>readlines</code>,
+      <code>seek</code>,
+      <code>tell</code>,
+      <code>truncate</code>,
+      <code>write</code>,
+      <code>writelines</code>,
+      <code>xreadlines</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__format__</code>,
+      <code>__hash__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.File-class.html#size" class="summary-name">size</a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>file</code></b>:
+      <code>closed</code>,
+      <code>encoding</code>,
+      <code>errors</code>,
+      <code>mode</code>,
+      <code>name</code>,
+      <code>newlines</code>,
+      <code>softspace</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">name</span>,
+        <span class="sig-arg">mode</span>=<span class="sig-default">...</span>,
+        <span class="sig-arg">buffering</span>=<span class="sig-default">...</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#File.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+        Open a file.  The mode can be 'r', 'w' or 'a' for reading (default),
+        writing or appending.  The file will be created if it doesn't exist
+        when opened for writing or appending; it will be truncated when
+        opened for writing.  Add a 'b' to the mode for binary files.
+        Add a '+' to the mode to allow simultaneous reading and writing.
+        If the buffering argument is given, 0 means unbuffered, 1 means line
+        buffered, and larger numbers specify the buffer size.  The preferred way
+        to open a file is with the builtin open() function.
+        Add a 'U' to mode to open the file for input with universal newline
+        support.  Any line ending in the input file will be seen as a '
+'
+        in Python.  Also, a file so opened gains the attribute 'newlines';
+        the value for this attribute is one of None (no newline read yet),
+        '
', '
+', '
+' or a tuple containing all the newline types seen.
+        
+        'U' cannot be combined with 'w' or '+' mode.
+        
+
+</pre>
+  <dl class="fields">
+    <dt>Returns: file object</dt>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== PROPERTY DETAILS ==================== -->
+<a name="section-PropertyDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Property Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-PropertyDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="size"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">size</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.fabioutils.File-class.html#getSize" class="summary-sig-name">getSize</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.fabioutils.File-class.html#setSize" class="summary-sig-name">setSize</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">size</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioutils.FilenameObject-class.html b/epydoc/fabio.fabioutils.FilenameObject-class.html
new file mode 100644
index 0000000..af3c577
--- /dev/null
+++ b/epydoc/fabio.fabioutils.FilenameObject-class.html
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioutils.FilenameObject</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fabioutils-module.html">Module fabioutils</a> ::
+        Class FilenameObject
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioutils.FilenameObject-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class FilenameObject</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioutils-pysrc.html#FilenameObject">source code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">FilenameObject</strong>
+</pre>
+
+<hr />
+<p>The 'meaning' of a filename ...</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils.FilenameObject-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">stem</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">num</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">directory</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">format</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">extension</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">postnum</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">digits</span>=<span class="summary-sig-default">4</span>,
+        <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+      This class can either be instanciated by a set of parameters like  
+      directory, prefix, num, extension, ...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#FilenameObject.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="str"></a><span class="summary-sig-name">str</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a string representation</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#FilenameObject.str">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils.FilenameObject-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a string representation</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#FilenameObject.str">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="tostring"></a><span class="summary-sig-name">tostring</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      convert yourself to a string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#FilenameObject.tostring">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="deconstruct_filename"></a><span class="summary-sig-name">deconstruct_filename</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>)</span><br />
+      Break up a filename to get image type and number</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#FilenameObject.deconstruct_filename">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">stem</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">num</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">directory</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">format</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">extension</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">postnum</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">digits</span>=<span class="sig-default">4</span>,
+        <span class="sig-arg">filename</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#FilenameObject.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>This class can either be instanciated by a set of parameters like  
+  directory, prefix, num, extension, ...</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>stem</code></strong> - the stem is a kind of prefix (str)</li>
+        <li><strong class="pname"><code>num</code></strong> - image number in the serie (int)</li>
+        <li><strong class="pname"><code>directory</code></strong> - name of the directory (str)</li>
+        <li><strong class="pname"><code>format</code></strong> - ??</li>
+        <li><strong class="pname"><code>extension</code></strong></li>
+        <li><strong class="pname"><code>postnum</code></strong></li>
+        <li><strong class="pname"><code>digits</code></strong> - Number of digits used to print num
+          <p>Alternative constructor:</p></li>
+        <li><strong class="pname"><code>filename</code></strong> - fullpath of an image file to be deconstructed into directory, 
+          prefix, num, extension, ...</li>
+    </ul></dd>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#FilenameObject.str">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Return a string representation</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__repr__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioutils.GzipFile-class.html b/epydoc/fabio.fabioutils.GzipFile-class.html
new file mode 100644
index 0000000..6da1416
--- /dev/null
+++ b/epydoc/fabio.fabioutils.GzipFile-class.html
@@ -0,0 +1,452 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioutils.GzipFile</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fabioutils-module.html">Module fabioutils</a> ::
+        Class GzipFile
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioutils.GzipFile-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class GzipFile</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioutils-pysrc.html#GzipFile">source code</a></span></p>
+<pre class="base-tree">
+gzip.GzipFile --+
+                |
+               <strong class="uidshort">GzipFile</strong>
+</pre>
+
+<hr />
+<p>Just a wrapper forgzip.GzipFile providing the correct seek 
+  capabilities for python 2.5</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils.GzipFile-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">compresslevel</span>=<span class="summary-sig-default">9</span>,
+        <span class="summary-sig-arg">fileobj</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Wrapper with locking for constructor for the GzipFile class.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#GzipFile.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getSize"></a><span class="summary-sig-name">getSize</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#GzipFile.getSize">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setSize"></a><span class="summary-sig-name">setSize</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">value</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#GzipFile.setSize">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils.GzipFile-class.html#seek" class="summary-sig-name">seek</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">offset</span>,
+        <span class="summary-sig-arg">whence</span>=<span class="summary-sig-default">0</span>)</span><br />
+      Move to new file position.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#GzipFile.seek">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>gzip.GzipFile</code></b>:
+      <code>__del__</code>,
+      <code>__iter__</code>,
+      <code>__repr__</code>,
+      <code>close</code>,
+      <code>fileno</code>,
+      <code>flush</code>,
+      <code>isatty</code>,
+      <code>next</code>,
+      <code>read</code>,
+      <code>readline</code>,
+      <code>readlines</code>,
+      <code>rewind</code>,
+      <code>tell</code>,
+      <code>write</code>,
+      <code>writelines</code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code>gzip.GzipFile</code></b> (private):
+      <code>_add_read_data</code>,
+      <code>_init_read</code>,
+      <code>_init_write</code>,
+      <code>_read</code>,
+      <code>_read_eof</code>,
+      <code>_read_gzip_header</code>,
+      <code>_unread</code>,
+      <code>_write_gzip_header</code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>gzip.GzipFile</code></b>:
+      <code>max_read_chunk</code>,
+      <code>myfileobj</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.GzipFile-class.html#size" class="summary-name">size</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.GzipFile-class.html#closed" class="summary-name">closed</a>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>gzip.GzipFile</code></b>:
+      <code>filename</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">mode</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">compresslevel</span>=<span class="sig-default">9</span>,
+        <span class="sig-arg">fileobj</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#GzipFile.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Wrapper with locking for constructor for the GzipFile class.</p>
+  <p>At least one of fileobj and filename must be given a non-trivial 
+  value.</p>
+  <p>The new class instance is based on fileobj, which can be a regular 
+  file, a StringIO object, or any other object which simulates a file. It 
+  defaults to None, in which case filename is opened to provide a file 
+  object.</p>
+  <p>When fileobj is not None, the filename argument is only used to be 
+  included in the gzip file header, which may includes the original 
+  filename of the uncompressed file.  It defaults to the filename of 
+  fileobj, if discernible; otherwise, it defaults to the empty string, and 
+  in this case the original filename is not included in the header.</p>
+  <p>The mode argument can be any of 'r', 'rb', 'a', 'ab', 'w', or 'wb', 
+  depending on whether the file will be read or written.  The default is 
+  the mode of fileobj if discernible; otherwise, the default is 'rb'. Be 
+  aware that only the 'rb', 'ab', and 'wb' values should be used for 
+  cross-platform portability.</p>
+  <p>The compresslevel argument is an integer from 1 to 9 controlling the 
+  level of compression; 1 is fastest and produces the least compression, 
+  and 9 is slowest and produces the most compression.  The default is 
+  9.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        gzip.GzipFile.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="seek"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">seek</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">offset</span>,
+        <span class="sig-arg">whence</span>=<span class="sig-default">0</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#GzipFile.seek">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Move to new file position.</p>
+  <p>Argument offset is a byte count.  Optional argument whence defaults to
+  0 (offset from start of file, offset should be >= 0); other values are
+  1 (move relative to current position, positive or negative), and 2 (move 
+  relative to end of file, usually negative, although many platforms allow 
+  seeking beyond the end of a file).  If the file is opened in text mode, 
+  only offsets returned by tell() are legal.  Use of other offsets causes 
+  undefined behavior.</p>
+  <p>This is a wrapper for seek to ensure compatibility with old python 
+  2.5</p>
+  <dl class="fields">
+    <dt>Overrides:
+        gzip.GzipFile.seek
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== PROPERTY DETAILS ==================== -->
+<a name="section-PropertyDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Property Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-PropertyDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="size"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">size</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.fabioutils.GzipFile-class.html#getSize" class="summary-sig-name">getSize</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.fabioutils.GzipFile-class.html#setSize" class="summary-sig-name">setSize</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">value</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="closed"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">closed</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><i>unreachable</i>.closed(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioutils.StringIO-class.html b/epydoc/fabio.fabioutils.StringIO-class.html
new file mode 100644
index 0000000..14084fb
--- /dev/null
+++ b/epydoc/fabio.fabioutils.StringIO-class.html
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioutils.StringIO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fabioutils-module.html">Module fabioutils</a> ::
+        Class StringIO
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioutils.StringIO-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class StringIO</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioutils-pysrc.html#StringIO">source code</a></span></p>
+<pre class="base-tree">
+StringIO.StringIO --+
+                    |
+                   <strong class="uidshort">StringIO</strong>
+</pre>
+
+<hr />
+<p>just an interface providing the name and mode property to a 
+  StringIO</p>
+  <p>BugFix for MacOSX mainly</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils.StringIO-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">data</span>,
+        <span class="summary-sig-arg">fname</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#StringIO.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="getSize"></a><span class="summary-sig-name">getSize</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#StringIO.getSize">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setSize"></a><span class="summary-sig-name">setSize</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">size</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#StringIO.setSize">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>StringIO.StringIO</code></b>:
+      <code>__iter__</code>,
+      <code>close</code>,
+      <code>flush</code>,
+      <code>getvalue</code>,
+      <code>isatty</code>,
+      <code>next</code>,
+      <code>read</code>,
+      <code>readline</code>,
+      <code>readlines</code>,
+      <code>seek</code>,
+      <code>tell</code>,
+      <code>truncate</code>,
+      <code>write</code>,
+      <code>writelines</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fabioutils.StringIO-class.html#size" class="summary-name">size</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">data</span>,
+        <span class="sig-arg">fname</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">mode</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#StringIO.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Overrides:
+        StringIO.StringIO.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== PROPERTY DETAILS ==================== -->
+<a name="section-PropertyDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Property Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-PropertyDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="size"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">size</h3>
+  
+  <dl class="fields">
+    <dt>Get Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.fabioutils.StringIO-class.html#getSize" class="summary-sig-name">getSize</a>(<span class="summary-sig-arg">self</span>)</span>
+    </dd>
+    <dt>Set Method:</dt>
+    <dd class="value"><span class="summary-sig"><a href="fabio.fabioutils.StringIO-class.html#setSize" class="summary-sig-name">setSize</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">size</span>)</span>
+    </dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioutils.UnknownCompressedFile-class.html b/epydoc/fabio.fabioutils.UnknownCompressedFile-class.html
new file mode 100644
index 0000000..d7c0a7f
--- /dev/null
+++ b/epydoc/fabio.fabioutils.UnknownCompressedFile-class.html
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioutils.UnknownCompressedFile</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fabioutils-module.html">Module fabioutils</a> ::
+        Class UnknownCompressedFile
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioutils.UnknownCompressedFile-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class UnknownCompressedFile</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioutils-pysrc.html#UnknownCompressedFile">source code</a></span></p>
+<pre class="base-tree">
+object --+        
+         |        
+      file --+    
+             |    
+          <a href="fabio.fabioutils.File-class.html">File</a> --+
+                 |
+                <strong class="uidshort">UnknownCompressedFile</strong>
+</pre>
+
+<hr />
+<p>wrapper for "File" with locking</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">file object</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fabioutils.UnknownCompressedFile-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">name</span>,
+        <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">rb</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">buffering</span>=<span class="summary-sig-default">0</span>)</span><br />
+      Open a file.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#UnknownCompressedFile.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioutils.File-class.html">File</a></code></b>:
+      <code><a href="fabio.fabioutils.File-class.html#getSize">getSize</a></code>,
+      <code><a href="fabio.fabioutils.File-class.html#setSize">setSize</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>file</code></b>:
+      <code>__delattr__</code>,
+      <code>__enter__</code>,
+      <code>__exit__</code>,
+      <code>__getattribute__</code>,
+      <code>__iter__</code>,
+      <code>__new__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>close</code>,
+      <code>fileno</code>,
+      <code>flush</code>,
+      <code>isatty</code>,
+      <code>next</code>,
+      <code>read</code>,
+      <code>readinto</code>,
+      <code>readline</code>,
+      <code>readlines</code>,
+      <code>seek</code>,
+      <code>tell</code>,
+      <code>truncate</code>,
+      <code>write</code>,
+      <code>writelines</code>,
+      <code>xreadlines</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__format__</code>,
+      <code>__hash__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioutils.File-class.html">File</a></code></b>:
+      <code><a href="fabio.fabioutils.File-class.html#size">size</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>file</code></b>:
+      <code>closed</code>,
+      <code>encoding</code>,
+      <code>errors</code>,
+      <code>mode</code>,
+      <code>name</code>,
+      <code>newlines</code>,
+      <code>softspace</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">name</span>,
+        <span class="sig-arg">mode</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">rb</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">buffering</span>=<span class="sig-default">0</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fabioutils-pysrc.html#UnknownCompressedFile.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+        Open a file.  The mode can be 'r', 'w' or 'a' for reading (default),
+        writing or appending.  The file will be created if it doesn't exist
+        when opened for writing or appending; it will be truncated when
+        opened for writing.  Add a 'b' to the mode for binary files.
+        Add a '+' to the mode to allow simultaneous reading and writing.
+        If the buffering argument is given, 0 means unbuffered, 1 means line
+        buffered, and larger numbers specify the buffer size.  The preferred way
+        to open a file is with the builtin open() function.
+        Add a 'U' to mode to open the file for input with universal newline
+        support.  Any line ending in the input file will be seen as a '
+'
+        in Python.  Also, a file so opened gains the attribute 'newlines';
+        the value for this attribute is one of None (no newline read yet),
+        '
', '
+', '
+' or a tuple containing all the newline types seen.
+        
+        'U' cannot be combined with 'w' or '+' mode.
+        
+
+</pre>
+  <dl class="fields">
+    <dt>Returns: file object</dt>
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fabioutils.filename_object-class.html b/epydoc/fabio.fabioutils.filename_object-class.html
new file mode 100644
index 0000000..94541ba
--- /dev/null
+++ b/epydoc/fabio.fabioutils.filename_object-class.html
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fabioutils.filename_object</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fabioutils-module.html">Module fabioutils</a> ::
+        Class filename_object
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fabioutils.filename_object-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class filename_object</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fabioutils-pysrc.html#filename_object">source code</a></span></p>
+<p>The 'meaning' of a filename</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">stem</span>,
+        <span class="summary-sig-arg">num</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">directory</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">format</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">extension</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">postnum</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">digits</span>=<span class="summary-sig-default">4</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#filename_object.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="str"></a><span class="summary-sig-name">str</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return a string representation</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#filename_object.str">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="tostring"></a><span class="summary-sig-name">tostring</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      convert yourself to a string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fabioutils-pysrc.html#filename_object.tostring">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 14 18:47:33 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.file_series-module.html b/epydoc/fabio.file_series-module.html
new file mode 100644
index 0000000..3124273
--- /dev/null
+++ b/epydoc/fabio.file_series-module.html
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.file_series</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module file_series
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.file_series-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module file_series</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.file_series-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+Authors:
+........
+
+* Henning O. Sorensen & Erik Knudsen
+  Center for Fundamental Research: Metal Structures in Four Dimensions
+  Risoe National Laboratory
+  Frederiksborgvej 399
+  DK-4000 Roskilde
+  email:erik.knudsen at risoe.dk
+* Jon Wright, ESRF
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.file_series.file_series-class.html" class="summary-name">file_series</a><br />
+      Represents a series of files to iterate
+has an idea of a current position to do next and prev
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.file_series.numbered_file_series-class.html" class="summary-name">numbered_file_series</a><br />
+      mydata0001.edf = "mydata" + 0001 + ".edf" 
+        mydata0002.edf = "mydata" + 0002 + ".edf" 
+        mydata0003.edf = "mydata" + 0003 + ".edf"
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.file_series.filename_series-class.html" class="summary-name">filename_series</a><br />
+      Much like the others, but created from a string filename
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="new_file_series0"></a><span class="summary-sig-name">new_file_series0</span>(<span class="summary-sig-arg">first_object</span>,
+        <span class="summary-sig-arg">first</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">last</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">step</span>=<span class="summary-sig-default">1</span>)</span><br />
+      Created from a fabio image first and last are file numbers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#new_file_series0">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series-module.html#new_file_series" class="summary-sig-name">new_file_series</a>(<span class="summary-sig-arg">first_object</span>,
+        <span class="summary-sig-arg">nimages</span>=<span class="summary-sig-default">0</span>,
+        <span class="summary-sig-arg">step</span>=<span class="summary-sig-default">1</span>,
+        <span class="summary-sig-arg">traceback</span>=<span class="summary-sig-default">False</span>)</span><br />
+      A generator function that creates a file series starting from a a fabioimage.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#new_file_series">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("fileseries")">logging.getLogger("fileseries")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Function Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-FunctionDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="new_file_series"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">new_file_series</span>(<span class="sig-arg">first_object</span>,
+        <span class="sig-arg">nimages</span>=<span class="sig-default">0</span>,
+        <span class="sig-arg">step</span>=<span class="sig-default">1</span>,
+        <span class="sig-arg">traceback</span>=<span class="sig-default">False</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#new_file_series">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+A generator function that creates a file series starting from a a fabioimage.
+Iterates through all images in a file (if more than 1), then proceeds to
+the next file as determined by fabio.next_filename.
+
+ at param first_object: the starting fabioimage, which will be the first one yielded
+    in the sequence
+ at param nimages:  the maximum number of images to consider
+    step: step size, will yield the first and every step'th image until nimages
+    is reached.  (e.g. nimages = 5, step = 2 will yield 3 images (0, 2, 4)
+ at param traceback: if True causes it to print a traceback in the event of an
+    exception (missing image, etc.).  Otherwise the calling routine can handle
+    the exception as it chooses
+ at param yields: the next fabioimage in the series.
+    In the event there is an exception, it yields the sys.exec_info for the
+    exception instead.  sys.exec_info is a tuple:
+    ( exceptionType, exceptionValue, exceptionTraceback )
+    from which all the exception information can be obtained.
+
+Suggested usage:
+
+::
+
+    for obj in new_file_series( ... ):
+      if not isinstance(obj, fabio.fabioimage.fabioimage ):
+        # deal with errors like missing images, non readable files, etc
+        # e.g.
+        traceback.print_exception(obj[0], obj[1], obj[2])
+
+</pre>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.file_series-pysrc.html b/epydoc/fabio.file_series-pysrc.html
new file mode 100644
index 0000000..fbeec2a
--- /dev/null
+++ b/epydoc/fabio.file_series-pysrc.html
@@ -0,0 +1,731 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.file_series</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module file_series
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.file_series-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.file_series-module.html">Module fabio.file_series</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">Authors:</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">........</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">* Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">  Center for Fundamental Research: Metal Structures in Four Dimensions</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">  Risoe National Laboratory</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring">  Frederiksborgvej 399</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">  DK-4000 Roskilde</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-docstring">  email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">* Jon Wright, ESRF</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"fileseries"</tt><tt class="py-op">)</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">traceback</tt> <tt class="py-keyword">as</tt> <tt class="py-name">pytraceback</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioutils=fabio.fabioutils-module.html"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-1', 'fabioutils', 'link-1');">fabioutils</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class fabio.fabioutils.FilenameObject=fabio.fabioutils.FilenameObject-class.html"><a  [...]
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name" targets="Module fabio.openimage=fabio.openimage-module.html,Function fabio.openimage.openimage()=fabio.openimage-module.html#openimage"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-4', 'openimage', 'link-4');">openimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-5', 'openimage', 'link-4');">openimage</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="new_file_series0"></a><div id="new_file_series0-def"><a name="L26"></a><tt class="py-lineno"> 26</tt> <a class="py-toggle" href="#" id="new_file_series0-toggle" onclick="return toggle('new_file_series0');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series-module.html#new_file_series0">new_file_series0</a><tt class="py-op">(</tt><tt class="py-param">first_object</tt><tt class="py-op">,</tt> <tt class="py-param">first</tt><tt c [...]
+</div><div id="new_file_series0-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="new_file_series0-expanded"><a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-docstring">    Created from a fabio image</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-docstring">    first and last are file numbers</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">    <tt class="py-name">im</tt> <tt class="py-op">=</tt> <tt id="link-6" class="py-name" targets="Method fabio.file_series.file_series.first_object()=fabio.file_series.file_series-class.html#first_object"><a title="fabio.file_series.file_series.first_object" class="py-name" href="#" onclick="return doclink('link-6', 'first_object', 'link-6');">first_object</a></tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-name">nimages</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">    <tt class="py-comment"># for counting images</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">None</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt id="link-7" class="py-name" targets="Method fabio.file_series.file_series.first()=fabio.file_series.file_series-class.html#first"><a title="fabio.file_series.file_series.first" class="py-name" href="#" onclick="return doclink('link-7', 'first', 'link-7');">first</a></tt><tt class="py-op">,</tt> <t [...]
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-name">step</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-name">total</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-name">total</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick="return doclink('link-9', 'last', 'link-8');">last</a></tt> <tt class="py-op">-</tt> <tt id="link-10" class="py-name"><a title="fabio.file_series.file_series.first" class="py-name" href="#" onclick="return doclink('link-10', 'first', 'link-7');">f [...]
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt class="py-keyword">yield</tt> <tt class="py-name">im</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-name">nimages</tt> <tt class="py-op"><</tt> <tt class="py-name">total</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-name">nimages</tt> <tt class="py-op">+=</tt> <tt class="py-name">step</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">            <tt class="py-name">newim</tt> <tt class="py-op">=</tt> <tt class="py-name">im</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method fabio.GEimage.GEimage.next()=fabio.GEimage.GEimage-class.html#next,Method fabio.edfimage.edfimage.next()=fabio.edfimage.edfimage-class.html#next,Method fabio.fabioimage.fabioimage.next()=fabio.fabioimage.fabioimage-class.html#next,Method fabio.file_serie [...]
+fabio.edfimage.edfimage.next
+fabio.fabioimage.fabioimage.next
+fabio.file_series.file_series.next
+fabio.file_series.filename_series.next" class="py-name" href="#" onclick="return doclink('link-11', 'next', 'link-11');">next</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">            <tt class="py-name">im</tt> <tt class="py-op">=</tt> <tt class="py-name">newim</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">            <tt class="py-name">pytraceback</tt><tt class="py-op">.</tt><tt class="py-name">print_exc</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">            <tt class="py-comment"># Skip bad images</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">            <tt id="link-12" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-12', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Got a problem here: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">                <tt class="py-name">im</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt id="link-13" class="py-name"><a title="fabio.fabioutils.next_filename" class="py-name" href="#" onclick="return doclink('link-13', 'next_filename', 'link-3');">next_filename</a></tt><tt class="py-op">(</tt><tt class="py-name">im</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt><t [...]
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">                <tt class="py-comment"># KE: This will not work and will throw an exception</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">                <tt class="py-comment"># fabio.next_filename doesn't understand %nnnn on the end</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">                <tt id="link-14" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-14', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Got another problem here: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">                <tt class="py-name">im</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt id="link-15" class="py-name"><a title="fabio.fabioutils.next_filename" class="py-name" href="#" onclick="return doclink('link-15', 'next_filename', 'link-3');">next_filename</a></tt><tt class="py-op">(</tt><tt class="py-name">im</tt><tt class="py-op">.</tt><tt class="py-name">sequencefilenam [...]
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">None</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt class="py-name">im</tt> </tt>
+</div><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"> </tt>
+<a name="new_file_series"></a><div id="new_file_series-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="new_file_series-toggle" onclick="return toggle('new_file_series');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series-module.html#new_file_series">new_file_series</a><tt class="py-op">(</tt><tt class="py-param">first_object</tt><tt class="py-op">,</tt> <tt class="py-param">nimages</tt><tt class [...]
+</div><div id="new_file_series-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="new_file_series-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">    A generator function that creates a file series starting from a a fabioimage.</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-docstring">    Iterates through all images in a file (if more than 1), then proceeds to</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-docstring">    the next file as determined by fabio.next_filename.</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-docstring">    @param first_object: the starting fabioimage, which will be the first one yielded</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-docstring">        in the sequence</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-docstring">    @param nimages:  the maximum number of images to consider</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"><tt class="py-docstring">        step: step size, will yield the first and every step'th image until nimages</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-docstring">        is reached.  (e.g. nimages = 5, step = 2 will yield 3 images (0, 2, 4)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-docstring">    @param traceback: if True causes it to print a traceback in the event of an</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring">        exception (missing image, etc.).  Otherwise the calling routine can handle</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-docstring">        the exception as it chooses</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-docstring">    @param yields: the next fabioimage in the series.</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt class="py-docstring">        In the event there is an exception, it yields the sys.exec_info for the</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt class="py-docstring">        exception instead.  sys.exec_info is a tuple:</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"><tt class="py-docstring">        ( exceptionType, exceptionValue, exceptionTraceback )</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"><tt class="py-docstring">        from which all the exception information can be obtained.</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-docstring">    Suggested usage:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-docstring">    ::</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring">        for obj in new_file_series( ... ):</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring">          if not isinstance(obj, fabio.fabioimage.fabioimage ):</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">            # deal with errors like missing images, non readable files, etc</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-docstring">            # e.g.</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-docstring">            traceback.print_exception(obj[0], obj[1], obj[2])</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">    <tt class="py-name">im</tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name"><a title="fabio.file_series.file_series.first_object" class="py-name" href="#" onclick="return doclink('link-16', 'first_object', 'link-6');">first_object</a></tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">    <tt class="py-name">nprocessed</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">    <tt class="py-name">abort</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">nimages</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt class="py-name">im</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">nprocessed</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-name">nprocessed</tt> <tt class="py-op"><</tt> <tt class="py-name">nimages</tt><tt class="py-op">:</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">            <tt class="py-name">newim</tt> <tt class="py-op">=</tt> <tt class="py-name">im</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="fabio.GEimage.GEimage.next
+fabio.edfimage.edfimage.next
+fabio.fabioimage.fabioimage.next
+fabio.file_series.file_series.next
+fabio.file_series.filename_series.next" class="py-name" href="#" onclick="return doclink('link-17', 'next', 'link-11');">next</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt class="py-name">im</tt> <tt class="py-op">=</tt> <tt class="py-name">newim</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">            <tt class="py-name">retVal</tt> <tt class="py-op">=</tt> <tt class="py-name">im</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-name">retVal</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-name">traceback</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                <tt class="py-name">pytraceback</tt><tt class="py-op">.</tt><tt class="py-name">print_exc</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">                <tt class="py-comment"># Skip bad images</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                <tt id="link-18" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-18', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Got a problem here: next() failed %s"</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">            <tt class="py-comment"># Skip bad images</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">                <tt class="py-name">im</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt id="link-19" class="py-name"><a title="fabio.fabioutils.next_filename" class="py-name" href="#" onclick="return doclink('link-19', 'next_filename', 'link-3');">next_filename</a></tt><tt class="py-op">(</tt><tt class="py-name">im</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt>< [...]
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">                <tt id="link-20" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-20', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Got another problem here: next_filename(im.filename) %s"</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nprocessed</tt> <tt class="py-op">%</tt> <tt class="py-name">step</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">retVal</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">            <tt class="py-comment"># Avoid cyclic references with exc_info ?</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">            <tt class="py-name">retVal</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">abort</tt><tt class="py-op">:</tt> <tt class="py-keyword">break</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-name">nprocessed</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+</div><a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
+<a name="file_series"></a><div id="file_series-def"><a name="L126"></a><tt class="py-lineno">126</tt> <a class="py-toggle" href="#" id="file_series-toggle" onclick="return toggle('file_series');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html">file_series</a><tt class="py-op">(</tt><tt class="py-base-class">list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="file_series-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="file_series-expanded"><a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-docstring">    Represents a series of files to iterate</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-docstring">    has an idea of a current position to do next and prev</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring">    You also get from the list python superclass:</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">       append</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">       count</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">       extend</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">       insert</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">       pop</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">       remove</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">       reverse</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">       sort</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="file_series.__init__"></a><div id="file_series.__init__-def"><a name="L141"></a><tt class="py-lineno">141</tt> <a class="py-toggle" href="#" id="file_series.__init__-toggle" onclick="return toggle('file_series.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">list_of [...]
+</div><div id="file_series.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.__init__-expanded"><a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-docstring">        Constructor:</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-docstring">        @param list_of_strings: arg should be a list of strings which are filenames</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name" targets="Module fabio.file_series=fabio.file_series-module.html,Class fabio.file_series.file_series=fabio.file_series.file_series-class.html"><a title="fabio.file_series
+fabio.file_series.file_series" class="py-name" href="#" onclick="return doclink('link-21', 'file_series', 'link-21');">file_series</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fab [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-22', '__init__', 'link-22');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">list_of_strings</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-comment"># track current position in list</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_current</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">    <tt class="py-comment"># methods which return a filename</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"> </tt>
+<a name="file_series.first"></a><div id="file_series.first-def"><a name="L155"></a><tt class="py-lineno">155</tt> <a class="py-toggle" href="#" id="file_series.first-toggle" onclick="return toggle('file_series.first');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#first">first</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="file_series.first-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.first-expanded"><a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-docstring">        First image in series</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"> </tt>
+<a name="file_series.last"></a><div id="file_series.last-def"><a name="L162"></a><tt class="py-lineno">162</tt> <a class="py-toggle" href="#" id="file_series.last-toggle" onclick="return toggle('file_series.last');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#last">last</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="file_series.last-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.last-expanded"><a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-docstring">        Last in series</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"> </tt>
+<a name="file_series.previous"></a><div id="file_series.previous-def"><a name="L169"></a><tt class="py-lineno">169</tt> <a class="py-toggle" href="#" id="file_series.previous-toggle" onclick="return toggle('file_series.previous');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#previous">previous</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="file_series.previous-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.previous-expanded"><a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">        Prev in a sequence</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_current</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_current</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"> </tt>
+<a name="file_series.current"></a><div id="file_series.current-def"><a name="L177"></a><tt class="py-lineno">177</tt> <a class="py-toggle" href="#" id="file_series.current-toggle" onclick="return toggle('file_series.current');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#current">current</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="file_series.current-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.current-expanded"><a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-docstring">"""Current position in a sequence</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_current</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"> </tt>
+<a name="file_series.next"></a><div id="file_series.next-def"><a name="L183"></a><tt class="py-lineno">183</tt> <a class="py-toggle" href="#" id="file_series.next-toggle" onclick="return toggle('file_series.next');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#next">next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="file_series.next-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.next-expanded"><a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"><tt class="py-docstring">        Next in a sequence</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_current</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_current</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"> </tt>
+<a name="file_series.jump"></a><div id="file_series.jump-def"><a name="L191"></a><tt class="py-lineno">191</tt> <a class="py-toggle" href="#" id="file_series.jump-toggle" onclick="return toggle('file_series.jump');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#jump">jump</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">num</tt><tt class="py-op">)</tt [...]
+</div><div id="file_series.jump-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.jump-expanded"><a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"><tt class="py-docstring">        Goto a position in sequence</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">num</tt> <tt class="py-op"><</tt> <tt id="link-23" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-23', 'len', 'link-23');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt> [...]
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_current</tt> <tt class="py-op">=</tt> <tt class="py-name">num</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_current</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"> </tt>
+<a name="file_series.len"></a><div id="file_series.len-def"><a name="L200"></a><tt class="py-lineno">200</tt> <a class="py-toggle" href="#" id="file_series.len-toggle" onclick="return toggle('file_series.len');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#len">len</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="file_series.len-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.len-expanded"><a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"><tt class="py-docstring">        Number of files</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-24" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-24', 'len', 'link-23');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">    <tt class="py-comment"># Methods which return a fabioimage</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line"> </tt>
+<a name="file_series.first_image"></a><div id="file_series.first_image-def"><a name="L210"></a><tt class="py-lineno">210</tt> <a class="py-toggle" href="#" id="file_series.first_image-toggle" onclick="return toggle('file_series.first_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#first_image">first_image</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class=" [...]
+</div><div id="file_series.first_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.first_image-expanded"><a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line"><tt class="py-docstring">        First image in a sequence</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"><tt class="py-docstring">        @return: fabioimage</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-25" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-25', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.file_series.file_series.first" class="py-name" href="#" onclick="return doclink('link-26', 'first', 'link-7');">first</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"> </tt>
+<a name="file_series.last_image"></a><div id="file_series.last_image-def"><a name="L219"></a><tt class="py-lineno">219</tt> <a class="py-toggle" href="#" id="file_series.last_image-toggle" onclick="return toggle('file_series.last_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#last_image">last_image</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op" [...]
+</div><div id="file_series.last_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.last_image-expanded"><a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"><tt class="py-docstring">        Last image in a sequence</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"><tt class="py-docstring">        @return: fabioimage</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-27" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-27', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick="return doclink('link-28', 'last', 'link-8');">last</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"> </tt>
+<a name="file_series.next_image"></a><div id="file_series.next_image-def"><a name="L228"></a><tt class="py-lineno">228</tt> <a class="py-toggle" href="#" id="file_series.next_image-toggle" onclick="return toggle('file_series.next_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#next_image">next_image</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op" [...]
+</div><div id="file_series.next_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.next_image-expanded"><a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"><tt class="py-docstring">        Return the next image</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line"><tt class="py-docstring">        @return: fabioimage</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-29" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-29', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="fabio.GEimage.GEimage.next
+fabio.edfimage.edfimage.next
+fabio.fabioimage.fabioimage.next
+fabio.file_series.file_series.next
+fabio.file_series.filename_series.next" class="py-name" href="#" onclick="return doclink('link-30', 'next', 'link-11');">next</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line"> </tt>
+<a name="file_series.previous_image"></a><div id="file_series.previous_image-def"><a name="L237"></a><tt class="py-lineno">237</tt> <a class="py-toggle" href="#" id="file_series.previous_image-toggle" onclick="return toggle('file_series.previous_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#previous_image">previous_image</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op" [...]
+</div><div id="file_series.previous_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.previous_image-expanded"><a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"><tt class="py-docstring">        Return the previous image</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"><tt class="py-docstring">        @return: fabioimage</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-31" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-31', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method fabio.GEimage.GEimage.previous()=fabio.GEimage.GEimage-class.html#previous,Method fabio.edfimage.edfimage.previous()=fabio.edfimage.edfimage-class.html#previous,Method fabio.fabioimage.fabioimage.previous()=fabio.fabioimage.fabioimage-c [...]
+fabio.edfimage.edfimage.previous
+fabio.fabioimage.fabioimage.previous
+fabio.file_series.file_series.previous
+fabio.file_series.filename_series.previous" class="py-name" href="#" onclick="return doclink('link-32', 'previous', 'link-32');">previous</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"> </tt>
+<a name="file_series.jump_image"></a><div id="file_series.jump_image-def"><a name="L246"></a><tt class="py-lineno">246</tt> <a class="py-toggle" href="#" id="file_series.jump_image-toggle" onclick="return toggle('file_series.jump_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#jump_image">jump_image</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-pa [...]
+</div><div id="file_series.jump_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.jump_image-expanded"><a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"><tt class="py-docstring">        Jump to and read image</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"><tt class="py-docstring">        @return: fabioimage</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-33" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-33', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method fabio.file_series.file_series.jump()=fabio.file_series.file_series-class.html#jump,Method fabio.file_series.filename_series.jump()=fabio.file_series.filename_series-class.html#jump"><a title="fabio.file_series.file_series.jump
+fabio.file_series.filename_series.jump" class="py-name" href="#" onclick="return doclink('link-34', 'jump', 'link-34');">jump</a></tt><tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line"> </tt>
+<a name="file_series.current_image"></a><div id="file_series.current_image-def"><a name="L255"></a><tt class="py-lineno">255</tt> <a class="py-toggle" href="#" id="file_series.current_image-toggle" onclick="return toggle('file_series.current_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#current_image">current_image</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt [...]
+</div><div id="file_series.current_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.current_image-expanded"><a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line"><tt class="py-docstring">        Current image in sequence</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line"><tt class="py-docstring">        @return: fabioimage</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-35" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-35', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method fabio.file_series.file_series.current()=fabio.file_series.file_series-class.html#current,Method fabio.file_series.filename_series.current()=fabio.file_series.filename_series-class.html#current"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-36', 'current', 'link-36');">current</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">    <tt class="py-comment"># methods which return a file_object</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"> </tt>
+<a name="file_series.first_object"></a><div id="file_series.first_object-def"><a name="L266"></a><tt class="py-lineno">266</tt> <a class="py-toggle" href="#" id="file_series.first_object-toggle" onclick="return toggle('file_series.first_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#first_object">first_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt c [...]
+</div><div id="file_series.first_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.first_object-expanded"><a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line"><tt class="py-docstring">        First image in a sequence</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"><tt class="py-docstring">        @return: file_object</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-37" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-37', 'FilenameObject', 'link-2');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.file_series.file_series.first" class="py-name" href="#" onclick [...]
+</div><a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line"> </tt>
+<a name="file_series.last_object"></a><div id="file_series.last_object-def"><a name="L274"></a><tt class="py-lineno">274</tt> <a class="py-toggle" href="#" id="file_series.last_object-toggle" onclick="return toggle('file_series.last_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#last_object">last_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class=" [...]
+</div><div id="file_series.last_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.last_object-expanded"><a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line"><tt class="py-docstring">        Last image in a sequence</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line"><tt class="py-docstring">        @return: file_object</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-39" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-39', 'FilenameObject', 'link-2');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick= [...]
+</div><a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line"> </tt>
+<a name="file_series.next_object"></a><div id="file_series.next_object-def"><a name="L283"></a><tt class="py-lineno">283</tt> <a class="py-toggle" href="#" id="file_series.next_object-toggle" onclick="return toggle('file_series.next_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#next_object">next_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class=" [...]
+</div><div id="file_series.next_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.next_object-expanded"><a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line"><tt class="py-docstring">        Return the next image</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"><tt class="py-docstring">        @return: file_object</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-41" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-41', 'FilenameObject', 'link-2');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="fabio.GEimage.GEimage.next
+fabio.edfimage.edfimage.next
+fabio.fabioimage.fabioimage.next
+fabio.file_series.file_series.next
+fabio.file_series.filename_series.next" class="py-name" href="#" onclick="return doclink('link-42', 'next', 'link-11');">next</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line"> </tt>
+<a name="file_series.previous_object"></a><div id="file_series.previous_object-def"><a name="L292"></a><tt class="py-lineno">292</tt> <a class="py-toggle" href="#" id="file_series.previous_object-toggle" onclick="return toggle('file_series.previous_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#previous_object">previous_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class=" [...]
+</div><div id="file_series.previous_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.previous_object-expanded"><a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"><tt class="py-docstring">        Return the previous image</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"><tt class="py-docstring">        @return: file_object</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-43" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-43', 'FilenameObject', 'link-2');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="fabio.GEimage.GEimage.previous
+fabio.edfimage.edfimage.previous
+fabio.fabioimage.fabioimage.previous
+fabio.file_series.file_series.previous
+fabio.file_series.filename_series.previous" class="py-name" href="#" onclick="return doclink('link-44', 'previous', 'link-32');">previous</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"> </tt>
+<a name="file_series.jump_object"></a><div id="file_series.jump_object-def"><a name="L301"></a><tt class="py-lineno">301</tt> <a class="py-toggle" href="#" id="file_series.jump_object-toggle" onclick="return toggle('file_series.jump_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#jump_object">jump_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class= [...]
+</div><div id="file_series.jump_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.jump_object-expanded"><a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line"><tt class="py-docstring">        Jump to and read image</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"><tt class="py-docstring">        @return: file_object</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-45" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-45', 'FilenameObject', 'link-2');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="fabio.file_series.file_series.jump
+fabio.file_series.filename_series.jump" class="py-name" href="#" onclick="return doclink('link-46', 'jump', 'link-34');">jump</a></tt><tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line"> </tt>
+<a name="file_series.current_object"></a><div id="file_series.current_object-def"><a name="L310"></a><tt class="py-lineno">310</tt> <a class="py-toggle" href="#" id="file_series.current_object-toggle" onclick="return toggle('file_series.current_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.file_series-class.html#current_object">current_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op" [...]
+</div><div id="file_series.current_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="file_series.current_object-expanded"><a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"><tt class="py-docstring">        Current image in sequence</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line"><tt class="py-docstring">        @return: file_object</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-47" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-47', 'FilenameObject', 'link-2');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-48', 'current', 'link-36');">current</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line"> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line"> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line"> </tt>
+<a name="numbered_file_series"></a><div id="numbered_file_series-def"><a name="L322"></a><tt class="py-lineno">322</tt> <a class="py-toggle" href="#" id="numbered_file_series-toggle" onclick="return toggle('numbered_file_series');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.file_series.numbered_file_series-class.html">numbered_file_series</a><tt class="py-op">(</tt><tt class="py-base-class">file_series</tt><tt class="py-op">)</tt><tt cla [...]
+</div><div id="numbered_file_series-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="numbered_file_series-expanded"><a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line"><tt class="py-docstring">    mydata0001.edf = "mydata" + 0001 + ".edf"</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line"><tt class="py-docstring">    mydata0002.edf = "mydata" + 0002 + ".edf"</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line"><tt class="py-docstring">    mydata0003.edf = "mydata" + 0003 + ".edf"</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="numbered_file_series.__init__"></a><div id="numbered_file_series.__init__-def"><a name="L328"></a><tt class="py-lineno">328</tt> <a class="py-toggle" href="#" id="numbered_file_series.__init__-toggle" onclick="return toggle('numbered_file_series.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.numbered_file_series-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt clas [...]
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">                 <tt class="py-param">digits</tt><tt class="py-op">=</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-param">padding</tt><tt class="py-op">=</tt><tt class="py-string">'Y'</tt><tt class="py-op">,</tt> <tt class="py-param">step</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="numbered_file_series.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="numbered_file_series.__init__-expanded"><a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"><tt class="py-docstring">        Constructor</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line"><tt class="py-docstring">        @param stem: first part of the name</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line"><tt class="py-docstring">        @param step: in case of every nth file</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"><tt class="py-docstring">        @param padding: possibility for specifying that numbers are not padded with zeroes up to digits</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">padding</tt> <tt class="py-op">==</tt> <tt class="py-string">'Y'</tt><tt class="py-op">:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s%0"</tt> <tt class="py-op">+</tt> <tt id="link-49" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-49', 'str', 'link-49');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">digits</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"d%s"</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s%i%s"</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line"> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-50" class="py-name" targets="Class fabio.file_series.numbered_file_series=fabio.file_series.numbered_file_series-class.html"><a title="fabio.file_series.numbered_file_series" class="py-name" href="#" onclick="return doclink('link-50', 'numbered_file_series', 'link-50');">numbered_file_series</a></tt><tt class="py-op">,</tt> <tt class="py-name"> [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-51', '__init__', 'link-22');">__init__</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">fmt</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">stem</tt><tt class="py-op">,</tt> <tt id="link-52" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-52', 'i', 'link-52');">i</a></tt><tt class="py-op">,</tt> <tt cla [...]
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">                                                          <tt id="link-55" class="py-name"><a title="fabio.file_series.file_series.last" class="py-name" href="#" onclick="return doclink('link-55', 'last', 'link-8');">last</a></tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">                                                          <tt class="py-name">step</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line"> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"> </tt>
+<a name="filename_series"></a><div id="filename_series-def"><a name="L349"></a><tt class="py-lineno">349</tt> <a class="py-toggle" href="#" id="filename_series-toggle" onclick="return toggle('filename_series');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html">filename_series</a><tt class="py-op">:</tt> </tt>
+</div><div id="filename_series-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="filename_series-expanded"><a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">    <tt class="py-docstring">""" Much like the others, but created from a string filename """</tt> </tt>
+<a name="filename_series.__init__"></a><div id="filename_series.__init__-def"><a name="L351"></a><tt class="py-lineno">351</tt> <a class="py-toggle" href="#" id="filename_series.__init__-toggle" onclick="return toggle('filename_series.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt clas [...]
+</div><div id="filename_series.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.__init__-expanded"><a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">        <tt class="py-docstring">""" create from a filename (String)"""</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-56', 'FilenameObject', 'link-2');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"> </tt>
+<a name="filename_series.next"></a><div id="filename_series.next-def"><a name="L355"></a><tt class="py-lineno">355</tt> <a class="py-toggle" href="#" id="filename_series.next-toggle" onclick="return toggle('filename_series.next');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#next">next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="filename_series.next-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.next-expanded"><a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">        <tt class="py-docstring">""" increment number """</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-57', 'tostring', 'link-57');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line"> </tt>
+<a name="filename_series.previous"></a><div id="filename_series.previous-def"><a name="L360"></a><tt class="py-lineno">360</tt> <a class="py-toggle" href="#" id="filename_series.previous-toggle" onclick="return toggle('filename_series.previous');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#previous">previous</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class [...]
+</div><div id="filename_series.previous-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.previous-expanded"><a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line">        <tt class="py-docstring">""" decrement number """</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-58', 'tostring', 'link-57');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line"> </tt>
+<a name="filename_series.current"></a><div id="filename_series.current-def"><a name="L365"></a><tt class="py-lineno">365</tt> <a class="py-toggle" href="#" id="filename_series.current-toggle" onclick="return toggle('filename_series.current');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#current">current</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-o [...]
+</div><div id="filename_series.current-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.current-expanded"><a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line">        <tt class="py-docstring">""" return current filename string"""</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-59', 'tostring', 'link-57');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line"> </tt>
+<a name="filename_series.jump"></a><div id="filename_series.jump-def"><a name="L369"></a><tt class="py-lineno">369</tt> <a class="py-toggle" href="#" id="filename_series.jump-toggle" onclick="return toggle('filename_series.jump');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#jump">jump</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">num</tt><tt [...]
+</div><div id="filename_series.jump-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.jump-expanded"><a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">        <tt class="py-docstring">""" jump to a specific number """</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">num</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-60', 'tostring', 'link-57');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line"> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">    <tt class="py-comment"># image methods</tt> </tt>
+<a name="filename_series.next_image"></a><div id="filename_series.next_image-def"><a name="L375"></a><tt class="py-lineno">375</tt> <a class="py-toggle" href="#" id="filename_series.next_image-toggle" onclick="return toggle('filename_series.next_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#next_image">next_image</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</ [...]
+</div><div id="filename_series.next_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.next_image-expanded"><a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the next image as a fabioimage """</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-61" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-61', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.GEimage.GEimage.next
+fabio.edfimage.edfimage.next
+fabio.fabioimage.fabioimage.next
+fabio.file_series.file_series.next
+fabio.file_series.filename_series.next" class="py-name" href="#" onclick="return doclink('link-62', 'next', 'link-11');">next</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="filename_series.prev_image"></a><div id="filename_series.prev_image-def"><a name="L378"></a><tt class="py-lineno">378</tt> <a class="py-toggle" href="#" id="filename_series.prev_image-toggle" onclick="return toggle('filename_series.prev_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#prev_image">prev_image</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-o [...]
+</div><div id="filename_series.prev_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.prev_image-expanded"><a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the previos image as a fabioimage """</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-63" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-63', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="fabio.GEimage.GEimage.previous
+fabio.edfimage.edfimage.previous
+fabio.fabioimage.fabioimage.previous
+fabio.file_series.file_series.previous
+fabio.file_series.filename_series.previous" class="py-name" href="#" onclick="return doclink('link-64', 'previous', 'link-32');">previous</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="filename_series.current_image"></a><div id="filename_series.current_image-def"><a name="L381"></a><tt class="py-lineno">381</tt> <a class="py-toggle" href="#" id="filename_series.current_image-toggle" onclick="return toggle('filename_series.current_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#current_image">current_image</a><tt class="py-op">(</tt><tt class="py-param">self</ [...]
+</div><div id="filename_series.current_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.current_image-expanded"><a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the current image as a fabioimage"""</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-65" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-65', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="fabio.file_series.file_series.current
+fabio.file_series.filename_series.current" class="py-name" href="#" onclick="return doclink('link-66', 'current', 'link-36');">current</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="filename_series.jump_image"></a><div id="filename_series.jump_image-def"><a name="L384"></a><tt class="py-lineno">384</tt> <a class="py-toggle" href="#" id="filename_series.jump_image-toggle" onclick="return toggle('filename_series.jump_image');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#jump_image">jump_image</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-o [...]
+</div><div id="filename_series.jump_image-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.jump_image-expanded"><a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the image number as a fabioimage"""</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-67" class="py-name"><a title="fabio.openimage
+fabio.openimage.openimage" class="py-name" href="#" onclick="return doclink('link-67', 'openimage', 'link-4');">openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fabio.file_series.file_series.jump
+fabio.file_series.filename_series.jump" class="py-name" href="#" onclick="return doclink('link-68', 'jump', 'link-34');">jump</a></tt><tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">    <tt class="py-comment"># object methods</tt> </tt>
+<a name="filename_series.next_object"></a><div id="filename_series.next_object-def"><a name="L388"></a><tt class="py-lineno">388</tt> <a class="py-toggle" href="#" id="filename_series.next_object-toggle" onclick="return toggle('filename_series.next_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#next_object">next_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-o [...]
+</div><div id="filename_series.next_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.next_object-expanded"><a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the next filename as a fabio.FilenameObject"""</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt> </tt>
+</div><a name="filename_series.previous_object"></a><div id="filename_series.previous_object-def"><a name="L392"></a><tt class="py-lineno">392</tt> <a class="py-toggle" href="#" id="filename_series.previous_object-toggle" onclick="return toggle('filename_series.previous_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#previous_object">previous_object</a><tt class="py-op">(</tt><tt class="py-p [...]
+</div><div id="filename_series.previous_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.previous_object-expanded"><a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the previous filename as a fabio.FilenameObject"""</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt> </tt>
+</div><a name="filename_series.current_object"></a><div id="filename_series.current_object-def"><a name="L396"></a><tt class="py-lineno">396</tt> <a class="py-toggle" href="#" id="filename_series.current_object-toggle" onclick="return toggle('filename_series.current_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#current_object">current_object</a><tt class="py-op">(</tt><tt class="py-param"> [...]
+</div><div id="filename_series.current_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.current_object-expanded"><a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the current filename as a fabio.FilenameObject"""</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt> </tt>
+</div><a name="filename_series.jump_object"></a><div id="filename_series.jump_object-def"><a name="L399"></a><tt class="py-lineno">399</tt> <a class="py-toggle" href="#" id="filename_series.jump_object-toggle" onclick="return toggle('filename_series.jump_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.file_series.filename_series-class.html#jump_object">jump_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class [...]
+</div><div id="filename_series.jump_object-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="filename_series.jump_object-expanded"><a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line">        <tt class="py-docstring">""" returns the filename num as a fabio.FilenameObject"""</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">num</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">obj</tt> </tt>
+</div></div><a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.file_series.file_series-class.html b/epydoc/fabio.file_series.file_series-class.html
new file mode 100644
index 0000000..4cf6dab
--- /dev/null
+++ b/epydoc/fabio.file_series.file_series-class.html
@@ -0,0 +1,900 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.file_series.file_series</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.file_series-module.html">Module file_series</a> ::
+        Class file_series
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.file_series.file_series-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class file_series</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series">source code</a></span></p>
+<pre class="base-tree">
+object --+    
+         |    
+      list --+
+             |
+            <strong class="uidshort">file_series</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="fabio.file_series.numbered_file_series-class.html">numbered_file_series</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<pre class="literalblock">
+
+Represents a series of files to iterate
+has an idea of a current position to do next and prev
+
+You also get from the list python superclass:
+   append
+   count
+   extend
+   insert
+   pop
+   remove
+   reverse
+   sort
+
+</pre>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">new empty list</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">list_of_strings</span>)</span><br />
+      Constructor:</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="first"></a><span class="summary-sig-name">first</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      First image in series</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.first">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="last"></a><span class="summary-sig-name">last</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Last in series</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.last">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="previous"></a><span class="summary-sig-name">previous</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Prev in a sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.previous">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="current"></a><span class="summary-sig-name">current</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Current position in a sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.current">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="next"></a><span class="summary-sig-name">next</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Next in a sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.next">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="jump"></a><span class="summary-sig-name">jump</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num</span>)</span><br />
+      Goto a position in sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.jump">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="len"></a><span class="summary-sig-name">len</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Number of files</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.len">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#first_image" class="summary-sig-name">first_image</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      First image in a sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.first_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#last_image" class="summary-sig-name">last_image</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Last image in a sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.last_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#next_image" class="summary-sig-name">next_image</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return the next image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.next_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#previous_image" class="summary-sig-name">previous_image</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return the previous image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.previous_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#jump_image" class="summary-sig-name">jump_image</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num</span>)</span><br />
+      Jump to and read image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.jump_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#current_image" class="summary-sig-name">current_image</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Current image in sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.current_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#first_object" class="summary-sig-name">first_object</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      First image in a sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.first_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#last_object" class="summary-sig-name">last_object</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Last image in a sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.last_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#next_object" class="summary-sig-name">next_object</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return the next image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.next_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#previous_object" class="summary-sig-name">previous_object</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Return the previous image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.previous_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#jump_object" class="summary-sig-name">jump_object</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num</span>)</span><br />
+      Jump to and read image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.jump_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.file_series-class.html#current_object" class="summary-sig-name">current_object</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Current image in sequence</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.current_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>list</code></b>:
+      <code>__add__</code>,
+      <code>__contains__</code>,
+      <code>__delitem__</code>,
+      <code>__delslice__</code>,
+      <code>__eq__</code>,
+      <code>__ge__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__gt__</code>,
+      <code>__iadd__</code>,
+      <code>__imul__</code>,
+      <code>__iter__</code>,
+      <code>__le__</code>,
+      <code>__len__</code>,
+      <code>__lt__</code>,
+      <code>__mul__</code>,
+      <code>__ne__</code>,
+      <code>__new__</code>,
+      <code>__repr__</code>,
+      <code>__reversed__</code>,
+      <code>__rmul__</code>,
+      <code>__setitem__</code>,
+      <code>__setslice__</code>,
+      <code>__sizeof__</code>,
+      <code>append</code>,
+      <code>count</code>,
+      <code>extend</code>,
+      <code>index</code>,
+      <code>insert</code>,
+      <code>pop</code>,
+      <code>remove</code>,
+      <code>reverse</code>,
+      <code>sort</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>list</code></b>:
+      <code>__hash__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">list_of_strings</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Constructor:</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>list_of_strings</code></strong> - arg should be a list of strings which are filenames</li>
+    </ul></dd>
+    <dt>Returns: new empty list</dt>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="first_image"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">first_image</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.first_image">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>First image in a sequence</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>fabioimage</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="last_image"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">last_image</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.last_image">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Last image in a sequence</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>fabioimage</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="next_image"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">next_image</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.next_image">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Return the next image</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>fabioimage</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="previous_image"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">previous_image</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.previous_image">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Return the previous image</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>fabioimage</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="jump_image"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">jump_image</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">num</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.jump_image">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Jump to and read image</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>fabioimage</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="current_image"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">current_image</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.current_image">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Current image in sequence</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>fabioimage</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="first_object"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">first_object</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.first_object">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>First image in a sequence</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>file_object</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="last_object"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">last_object</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.last_object">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Last image in a sequence</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>file_object</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="next_object"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">next_object</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.next_object">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Return the next image</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>file_object</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="previous_object"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">previous_object</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.previous_object">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Return the previous image</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>file_object</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="jump_object"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">jump_object</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">num</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.jump_object">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Jump to and read image</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>file_object</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="current_object"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">current_object</span>(<span class="sig-arg">self</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#file_series.current_object">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Current image in sequence</p>
+  <dl class="fields">
+    <dt>Returns:</dt>
+        <dd>file_object</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.file_series.filename_series-class.html b/epydoc/fabio.file_series.filename_series-class.html
new file mode 100644
index 0000000..0297229
--- /dev/null
+++ b/epydoc/fabio.file_series.filename_series-class.html
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.file_series.filename_series</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.file_series-module.html">Module file_series</a> ::
+        Class filename_series
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.file_series.filename_series-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class filename_series</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series">source code</a></span></p>
+<p>Much like the others, but created from a string filename</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>)</span><br />
+      create from a filename (String)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="next"></a><span class="summary-sig-name">next</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      increment number</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.next">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="previous"></a><span class="summary-sig-name">previous</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      decrement number</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.previous">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="current"></a><span class="summary-sig-name">current</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      return current filename string</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.current">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="jump"></a><span class="summary-sig-name">jump</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num</span>)</span><br />
+      jump to a specific number</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.jump">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="next_image"></a><span class="summary-sig-name">next_image</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the next image as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.next_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="prev_image"></a><span class="summary-sig-name">prev_image</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the previos image as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.prev_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="current_image"></a><span class="summary-sig-name">current_image</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the current image as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.current_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="jump_image"></a><span class="summary-sig-name">jump_image</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num</span>)</span><br />
+      returns the image number as a fabioimage</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.jump_image">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="next_object"></a><span class="summary-sig-name">next_object</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the next filename as a fabio.FilenameObject</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.next_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="previous_object"></a><span class="summary-sig-name">previous_object</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the previous filename as a fabio.FilenameObject</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.previous_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="current_object"></a><span class="summary-sig-name">current_object</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      returns the current filename as a fabio.FilenameObject</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.current_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="jump_object"></a><span class="summary-sig-name">jump_object</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">num</span>)</span><br />
+      returns the filename num as a fabio.FilenameObject</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#filename_series.jump_object">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.file_series.numbered_file_series-class.html b/epydoc/fabio.file_series.numbered_file_series-class.html
new file mode 100644
index 0000000..4ea7c77
--- /dev/null
+++ b/epydoc/fabio.file_series.numbered_file_series-class.html
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.file_series.numbered_file_series</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.file_series-module.html">Module file_series</a> ::
+        Class numbered_file_series
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.file_series.numbered_file_series-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class numbered_file_series</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.file_series-pysrc.html#numbered_file_series">source code</a></span></p>
+<pre class="base-tree">
+object --+        
+         |        
+      list --+    
+             |    
+   <a href="fabio.file_series.file_series-class.html">file_series</a> --+
+                 |
+                <strong class="uidshort">numbered_file_series</strong>
+</pre>
+
+<hr />
+<p>mydata0001.edf = "mydata" + 0001 + ".edf" 
+  mydata0002.edf = "mydata" + 0002 + ".edf" 
+  mydata0003.edf = "mydata" + 0003 + ".edf"</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">new empty list</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.file_series.numbered_file_series-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">stem</span>,
+        <span class="summary-sig-arg">first</span>,
+        <span class="summary-sig-arg">last</span>,
+        <span class="summary-sig-arg">extension</span>,
+        <span class="summary-sig-arg">digits</span>=<span class="summary-sig-default">4</span>,
+        <span class="summary-sig-arg">padding</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">Y</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">step</span>=<span class="summary-sig-default">1</span>)</span><br />
+      Constructor</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.file_series-pysrc.html#numbered_file_series.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.file_series.file_series-class.html">file_series</a></code></b>:
+      <code><a href="fabio.file_series.file_series-class.html#current">current</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#current_image">current_image</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#current_object">current_object</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#first">first</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#first_image">first_image</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#first_object">first_object</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#jump">jump</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#jump_image">jump_image</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#jump_object">jump_object</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#last">last</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#last_image">last_image</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#last_object">last_object</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#len">len</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#next">next</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#next_image">next_image</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#next_object">next_object</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#previous">previous</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#previous_image">previous_image</a></code>,
+      <code><a href="fabio.file_series.file_series-class.html#previous_object">previous_object</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>list</code></b>:
+      <code>__add__</code>,
+      <code>__contains__</code>,
+      <code>__delitem__</code>,
+      <code>__delslice__</code>,
+      <code>__eq__</code>,
+      <code>__ge__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__gt__</code>,
+      <code>__iadd__</code>,
+      <code>__imul__</code>,
+      <code>__iter__</code>,
+      <code>__le__</code>,
+      <code>__len__</code>,
+      <code>__lt__</code>,
+      <code>__mul__</code>,
+      <code>__ne__</code>,
+      <code>__new__</code>,
+      <code>__repr__</code>,
+      <code>__reversed__</code>,
+      <code>__rmul__</code>,
+      <code>__setitem__</code>,
+      <code>__setslice__</code>,
+      <code>__sizeof__</code>,
+      <code>append</code>,
+      <code>count</code>,
+      <code>extend</code>,
+      <code>index</code>,
+      <code>insert</code>,
+      <code>pop</code>,
+      <code>remove</code>,
+      <code>reverse</code>,
+      <code>sort</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>list</code></b>:
+      <code>__hash__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">stem</span>,
+        <span class="sig-arg">first</span>,
+        <span class="sig-arg">last</span>,
+        <span class="sig-arg">extension</span>,
+        <span class="sig-arg">digits</span>=<span class="sig-default">4</span>,
+        <span class="sig-arg">padding</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">Y</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">step</span>=<span class="sig-default">1</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.file_series-pysrc.html#numbered_file_series.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Constructor</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>stem</code></strong> - first part of the name</li>
+        <li><strong class="pname"><code>step</code></strong> - in case of every nth file</li>
+        <li><strong class="pname"><code>padding</code></strong> - possibility for specifying that numbers are not padded with 
+          zeroes up to digits</li>
+    </ul></dd>
+    <dt>Returns: new empty list</dt>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fit2dmaskimage-module.html b/epydoc/fabio.fit2dmaskimage-module.html
new file mode 100644
index 0000000..23776f5
--- /dev/null
+++ b/epydoc/fabio.fit2dmaskimage-module.html
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fit2dmaskimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module fit2dmaskimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fit2dmaskimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module fit2dmaskimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html">source code</a></span></p>
+<p>Author: Andy Hammersley, ESRF Translation into python/fabio: Jon 
+  Wright, ESRF</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html" class="summary-name">fit2dmaskimage</a><br />
+      Read and try to write Andy Hammersley's mask format
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fit2dmaskimage-pysrc.html b/epydoc/fabio.fit2dmaskimage-pysrc.html
new file mode 100644
index 0000000..e2a6b6e
--- /dev/null
+++ b/epydoc/fabio.fit2dmaskimage-pysrc.html
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fit2dmaskimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module fit2dmaskimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fit2dmaskimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.fit2dmaskimage-module.html">Module fabio.fit2dmaskimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment">## Automatically adapted for numpy.oldnumeric Oct 05, 2007 by alter_code1.py</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-docstring">Author: Andy Hammersley, ESRF</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-docstring">Translation into python/fabio: Jon Wright, ESRF</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-0', 'fabioimage', 'link-0');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-0');">fabioimage</a></tt> </tt>
+<a name="fit2dmaskimage"></a><div id="fit2dmaskimage-def"><a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt> <a class="py-toggle" href="#" id="fit2dmaskimage-toggle" onclick="return toggle('fit2dmaskimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.fit2dmaskimage.fit2dmaskimage-class.html">fit2dmaskimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fit2dmaskimage-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="fit2dmaskimage-expanded"><a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line">    <tt class="py-docstring">""" Read and try to write Andy Hammersley's mask format """</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"> </tt>
+<a name="fit2dmaskimage._readheader"></a><div id="fit2dmaskimage._readheader-def"><a name="L19"></a><tt class="py-lineno">19</tt> <a class="py-toggle" href="#" id="fit2dmaskimage._readheader-toggle" onclick="return toggle('fit2dmaskimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">, [...]
+</div><div id="fit2dmaskimage._readheader-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="fit2dmaskimage._readheader-expanded"><a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-docstring">        Read in a header from an already open file</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line">        <tt class="py-comment"># 1024 bytes gives 256x32 bit integers</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line">        <tt id="link-2" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-2', 'header', 'link-2');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Method fabio.GEimage.GEimage.re [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-3', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">1024</tt><tt class="py-op">)</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-4" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-4', 'i', 'link-4');">i</a></tt><tt class="py-op">,</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt> <tt class="py-op">(</tt><tt class="py-string">"M"</tt><tt  [...]
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line">                      <tt class="py-op">(</tt><tt class="py-string">"A"</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">                      <tt class="py-op">(</tt><tt class="py-string">"S"</tt><tt class="py-op">,</tt> <tt class="py-number">8</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">                      <tt class="py-op">(</tt><tt class="py-string">"K"</tt><tt class="py-op">,</tt> <tt class="py-number">12</tt><tt class="py-op">)</tt>  <tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-5" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-5', 'header', 'link-2');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt id="link-6" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclin [...]
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Not a fit2d mask file"</tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">        <tt class="py-name">fit2dhdr</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-7', 'header', 'link-2');">header</a></tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op"> [...]
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-8', 'dim1', 'link-8');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fit2dhdr</tt><tt class="py-op">[</tt><tt class="py-number">4</tt [...]
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-9', 'dim2', 'link-9');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fit2dhdr</tt><tt class="py-op">[</tt><tt class="py-number">5</tt [...]
+</div><a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"> </tt>
+<a name="fit2dmaskimage.read"></a><div id="fit2dmaskimage.read-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="fit2dmaskimage.read-toggle" onclick="return toggle('fit2dmaskimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt c [...]
+</div><div id="fit2dmaskimage.read-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="fit2dmaskimage.read-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"><tt class="py-docstring">        Read in header into self.header and</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"><tt class="py-docstring">            the data   into self.data</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">        <tt class="py-name">fin</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-10', '_open', 'link-10');">_open</a></tt><tt class="py-op">(</tt><tt class="p [...]
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._read [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-11', '_readheader', 'link-11');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">fin</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-comment"># Compute image size</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-12', 'bytecode', 'link-12');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-13', 'bpp', 'link-13');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-14" class="py-name" targets="Method fabio.file_series.file_series.len()=f [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-15', 'bytecode', 'link-12');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-16', 'tostring', 'link-16');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-comment"># integer division</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">        <tt class="py-name">num_ints</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-17', 'dim1', 'link-8');">dim1</a></tt> <tt class="py-op">+</tt> <tt class="py-number">31</tt><tt class="py-op">)</tt> <tt class="py-op">//</tt> <tt cla [...]
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-name">total</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-18', 'dim2', 'link-9');">dim2</a></tt> <tt class="py-op">*</tt> <tt class="py-name">num_ints</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">        <tt id="link-19" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-19', 'data', 'link-19');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fin</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-20', 'read', 'link-3');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">total</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt id="link-21" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-21', 'len', 'link-14');">len</a></tt><tt class="py-op">(</tt><tt id="link-22" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-22', 'data', 'link-19');">data</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">total</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">        <tt class="py-name">fin</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">        <tt class="py-comment"># Now to unpack it</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">        <tt id="link-23" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-23', 'data', 'link-19');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-24', 'data', 'link-19');">data</a></tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt id="link-25" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-25', 'data', 'link-19');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-26', 'data', 'link-19');">data</a></tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-27', 'dim2', 'link-9');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">num_ints</tt> <tt class="py-op">*</tt> <tt class="py-nu [...]
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line"> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-28', 'dim2', 'link-9');">dim2</a></tt><tt cla [...]
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line"> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">        <tt class="py-comment"># Unpack using bitwise comparisons to 2**n</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">        <tt class="py-name">bits</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">ones</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-29" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-29', 'i', 'link-4');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">            <tt class="py-name">temp</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">bitwise_and</tt><tt class="py-op">(</tt><tt class="py-name">bits</tt><tt class="py-op">,</tt> <tt id="link-30" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-30', 'data', 'link-19');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt> <tt id="link-31" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-31', 'i', 'link-4');">i</a></tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">8</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">temp</tt><t [...]
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">            <tt class="py-name">bits</tt> <tt class="py-op">=</tt> <tt class="py-name">bits</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-comment"># Extra rows needed for packing odd dimensions</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">        <tt class="py-name">spares</tt> <tt class="py-op">=</tt> <tt class="py-name">num_ints</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt> <tt class="py-op">*</tt> <tt class="py-number">8</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-32', 'dim1 [...]
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">spares</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-33', 'data', 'link-19');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">where</tt><tt class="py-op">(</tt><tt class="py-name">result</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-34', 'data', 'link-19');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">where</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-name">spares</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt>  [...]
+<a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">        <tt class="py-comment"># Transpose appears to be needed to match edf reader (scary??)</tt> </tt>
+<a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line"><tt class="py-comment">#        self.data = numpy.transpose(self.data)</tt> </tt>
+<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-35', 'data', 'link-19');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-36', 'data', 'link-19');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">                                    <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-37', 'dim2', 'link-9');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.edfimage.edfimage [...]
+<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line"> </tt>
+<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line"> </tt>
+<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line"> </tt>
+<a name="fit2dmaskimage.write"></a><div id="fit2dmaskimage.write-def"><a name="L81"></a><tt class="py-lineno">81</tt> <a class="py-toggle" href="#" id="fit2dmaskimage.write-toggle" onclick="return toggle('fit2dmaskimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt [...]
+</div><div id="fit2dmaskimage.write-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="fit2dmaskimage.write-expanded"><a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L83"></a><tt class="py-lineno">83</tt>  <tt class="py-line"><tt class="py-docstring">        Try to write a file</tt> </tt>
+<a name="L84"></a><tt class="py-lineno">84</tt>  <tt class="py-line"><tt class="py-docstring">        check we can write zipped also</tt> </tt>
+<a name="L85"></a><tt class="py-lineno">85</tt>  <tt class="py-line"><tt class="py-docstring">        mimics that fabian was writing uint16 (we sometimes want floats)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno">86</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L87"></a><tt class="py-lineno">87</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Not implemented yet"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L88"></a><tt class="py-lineno">88</tt>  <tt class="py-line"> </tt>
+<a name="L89"></a><tt class="py-lineno">89</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="fit2dmaskimage.checkData"></a><div id="fit2dmaskimage.checkData-def"><a name="L90"></a><tt class="py-lineno">90</tt> <a class="py-toggle" href="#" id="fit2dmaskimage.checkData-toggle" onclick="return toggle('fit2dmaskimage.checkData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#checkData">checkData</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">=</tt><tt cla [...]
+</div><div id="fit2dmaskimage.checkData-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="fit2dmaskimage.checkData-expanded"><a name="L91"></a><tt class="py-lineno">91</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-39" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-39', 'data', 'link-19');">data</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno">92</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L93"></a><tt class="py-lineno">93</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L94"></a><tt class="py-lineno">94</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-40" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-40', 'data', 'link-19');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L95"></a><tt class="py-lineno">95</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fit2dmaskimage.fit2dmaskimage-class.html b/epydoc/fabio.fit2dmaskimage.fit2dmaskimage-class.html
new file mode 100644
index 0000000..42a5404
--- /dev/null
+++ b/epydoc/fabio.fit2dmaskimage.fit2dmaskimage-class.html
@@ -0,0 +1,453 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fit2dmaskimage.fit2dmaskimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fit2dmaskimage-module.html">Module fit2dmaskimage</a> ::
+        Class fit2dmaskimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class fit2dmaskimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html#fit2dmaskimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">fit2dmaskimage</strong>
+</pre>
+
+<hr />
+<p>Read and try to write Andy Hammersley's mask format</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Read in a header from an already open file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html#fit2dmaskimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in header into self.header and...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html#fit2dmaskimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      Try to write a file check we can write zipped also mimics that fabian
+      was writing uint16 (we sometimes want floats)</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html#fit2dmaskimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#checkData" class="summary-sig-name">checkData</a>(<span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Empty for fabioimage but may be populated by others classes, 
+      especially for format accepting only integers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html#fit2dmaskimage.checkData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html#fit2dmaskimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read in a header from an already open file</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html#fit2dmaskimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Read in header into self.header and
+    the data   into self.data
+
+</pre>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html#fit2dmaskimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Try to write a file check we can write zipped also mimics that fabian 
+  was writing uint16 (we sometimes want floats)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="checkData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">checkData</span>(<span class="sig-arg">data</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fit2dmaskimage-pysrc.html#fit2dmaskimage.checkData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Empty for fabioimage but may be populated by others classes, 
+  especially for format accepting only integers</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#checkData">fabioimage.fabioimage.checkData</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fit2dspreadsheetimage-module.html b/epydoc/fabio.fit2dspreadsheetimage-module.html
new file mode 100644
index 0000000..9e2854e
--- /dev/null
+++ b/epydoc/fabio.fit2dspreadsheetimage-module.html
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fit2dspreadsheetimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module fit2dspreadsheetimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fit2dspreadsheetimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module fit2dspreadsheetimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fit2dspreadsheetimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Read the fit2d ascii image output
+        + Jon Wright, ESRF
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html" class="summary-name">fit2dspreadsheetimage</a><br />
+      Read a fit2d ascii format
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fit2dspreadsheetimage-pysrc.html b/epydoc/fabio.fit2dspreadsheetimage-pysrc.html
new file mode 100644
index 0000000..155e4ff
--- /dev/null
+++ b/epydoc/fabio.fit2dspreadsheetimage-pysrc.html
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fit2dspreadsheetimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module fit2dspreadsheetimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fit2dspreadsheetimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.fit2dspreadsheetimage-module.html">Module fabio.fit2dspreadsheetimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-docstring">Read the fit2d ascii image output</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-docstring">        + Jon Wright, ESRF</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-0', 'fabioimage', 'link-0');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-0');">fabioimage</a></tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"> </tt>
+<a name="fit2dspreadsheetimage"></a><div id="fit2dspreadsheetimage-def"><a name="L15"></a><tt class="py-lineno">15</tt> <a class="py-toggle" href="#" id="fit2dspreadsheetimage-toggle" onclick="return toggle('fit2dspreadsheetimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html">fit2dspreadsheetimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op"> [...]
+</div><div id="fit2dspreadsheetimage-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="fit2dspreadsheetimage-expanded"><a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-docstring">    Read a fit2d ascii format</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"> </tt>
+<a name="fit2dspreadsheetimage._readheader"></a><div id="fit2dspreadsheetimage._readheader-def"><a name="L20"></a><tt class="py-lineno">20</tt> <a class="py-toggle" href="#" id="fit2dspreadsheetimage._readheader-toggle" onclick="return toggle('fit2dspreadsheetimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt cla [...]
+</div><div id="fit2dspreadsheetimage._readheader-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="fit2dspreadsheetimage._readheader-expanded"><a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-docstring">        TODO : test for minimal attributes?</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">        <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">            <tt class="py-name">items</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">            <tt class="py-name">xdim</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">items</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">            <tt class="py-name">ydim</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">items</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-2', 'header', 'link-2');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'title'</tt><tt class="py-op">]</tt> <tt class="py-op" [...]
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-3', 'header', 'link-2');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Dim_1'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">xdim</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-4', 'header', 'link-2');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Dim_2'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">ydim</tt> </tt>
+</div><a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"> </tt>
+<a name="fit2dspreadsheetimage.read"></a><div id="fit2dspreadsheetimage.read-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="fit2dspreadsheetimage.read-toggle" onclick="return toggle('fit2dspreadsheetimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">, [...]
+</div><div id="fit2dspreadsheetimage.read-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="fit2dspreadsheetimage.read-expanded"><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"><tt class="py-docstring">        Read in header into self.header and</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"><tt class="py-docstring">            the data   into self.data</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-5', 'header', 'link-2');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-6', 'resetvals', 'link-6');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-7', '_open', 'link-7');">_open</a></tt><tt class="py-op">(</tt><tt class="p [...]
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._readh [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-8', '_readheader', 'link-8');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-comment"># Compute image size</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-9', 'dim1', 'link-9');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt [...]
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-11', 'dim2', 'link-11');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self< [...]
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"file"</tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-13', 'str', 'link-13');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">                                <tt class="py-string">"is corrupt, cannot read it"</tt><tt class="py-op">)</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">        <tt id="link-14" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-14', 'bytecode', 'link-14');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-15', 'bpp', 'link-15');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name" targets="Method fabio.file_series.file_series.len()=f [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-17', 'bytecode', 'link-14');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-18', 'tostring', 'link-18');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt class="py-comment">#now read the data into the array</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">            <tt class="py-name">vals</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">                    <tt class="py-name">vals</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">spl [...]
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">                    <tt class="py-keyword">pass</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-19', 'data', 'link-19');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">vals</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-20', 'bytecode', 'link-14');">bytecode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">            <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-21', 'data', 'link-19');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">==</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-22', 'dim2', 'link-11');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name [...]
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line"> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-string">"Error reading ascii"</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line"> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-24', 'resetvals', 'link-6');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">        <tt class="py-comment"># ensure the PIL image is reset</tt> </tt>
+<a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div></div><a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line"> </tt>
+<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line"> </tt>
+<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">"__main__"</tt><tt class="py-op">:</tt> </tt>
+<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt> </tt>
+<a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line">    <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line">    <tt class="py-name">img</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name" targets="Module fabio.fit2dspreadsheetimage=fabio.fit2dspreadsheetimage-module.html,Class fabio.fit2dspreadsheetimage.fit2dspreadsheetimage=fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html"><a title="fabio.fit2dspreadsheetimage
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage" class="py-name" href="#" onclick="return doclink('link-25', 'fit2dspreadsheetimage', 'link-25');">fit2dspreadsheetimage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line">    <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.OXDimage.read()=fabio.OXDimage.OXDimage-class.html#read,Metho [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-26', 'read', 'link-26');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt> </tt>
+<a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt> <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-27', 'dim1', 'link-9');">dim1</a></tt><tt class="py-op">,</tt> <tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" h [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-29', 'data', 'link-19');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L83"></a><tt class="py-lineno">83</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">matplotlib</tt><tt class="py-op">.</tt><tt class="py-name">pylab</tt> <tt class="py-keyword">import</tt> <tt class="py-name">imshow</tt><tt class="py-op">,</tt> <tt class="py-name">show</tt> </tt>
+<a name="L84"></a><tt class="py-lineno">84</tt>  <tt class="py-line">    <tt class="py-name">imshow</tt><tt class="py-op">(</tt><tt class="py-name">img</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-30', 'data', 'link-19');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">T</tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno">85</tt>  <tt class="py-line">    <tt class="py-name">show</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno">86</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:42 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html b/epydoc/fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html
new file mode 100644
index 0000000..ef5886c
--- /dev/null
+++ b/epydoc/fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html
@@ -0,0 +1,369 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.fit2dspreadsheetimage.fit2dspreadsheetimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.fit2dspreadsheetimage-module.html">Module fit2dspreadsheetimage</a> ::
+        Class fit2dspreadsheetimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class fit2dspreadsheetimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.fit2dspreadsheetimage-pysrc.html#fit2dspreadsheetimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">fit2dspreadsheetimage</strong>
+</pre>
+
+<hr />
+<p>Read a fit2d ascii format</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      TODO : test for minimal attributes?</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fit2dspreadsheetimage-pysrc.html#fit2dspreadsheetimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in header into self.header and...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.fit2dspreadsheetimage-pysrc.html#fit2dspreadsheetimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#write">write</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fit2dspreadsheetimage-pysrc.html#fit2dspreadsheetimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>TODO : test for minimal attributes?</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.fit2dspreadsheetimage-pysrc.html#fit2dspreadsheetimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Read in header into self.header and
+    the data   into self.data
+
+</pre>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.kcdimage-module.html b/epydoc/fabio.kcdimage-module.html
new file mode 100644
index 0000000..bcdbac2
--- /dev/null
+++ b/epydoc/fabio.kcdimage-module.html
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.kcdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module kcdimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.kcdimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module kcdimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.kcdimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Authors: Jerome Kieffer, ESRF 
+         email:jerome.kieffer at esrf.fr
+
+kcd images are 2D images written by the old KappaCCD diffractometer built by Nonius in the 1990's
+Based on the edfimage.py parser.
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.kcdimage.kcdimage-class.html" class="summary-name">kcdimage</a><br />
+      Read the Nonius kcd data format
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("kcdimage")">logging.getLogger("kcdimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="DATA_TYPES"></a><span class="summary-name">DATA_TYPES</span> = <code title="{'u16': <type 'numpy.uint16'>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">u16</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.uint16'><code class="variable-group">}</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.kcdimage-module.html#MINIMUM_KEYS" class="summary-name">MINIMUM_KEYS</a> = <code title="['ByteOrder',
+ 'Data type',
+ 'X dimension',
+ 'Y dimension',
+ 'Number of readouts']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">ByteOrder</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Data type</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">X dimension</code><code class="variable-quote">'</code [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="DEFAULT_VALUES"></a><span class="summary-name">DEFAULT_VALUES</span> = <code title="{'Data type': 'u16'}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">Data type</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">u16</code><code class="variable-quote">'</code><code class="variable-group">}</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="MINIMUM_KEYS"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">MINIMUM_KEYS</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">ByteOrder</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Data type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">X dimension</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Y dimension</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Number of readouts</code><code class="variable-quote">'</code><code class="variable-group">]</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.kcdimage-pysrc.html b/epydoc/fabio.kcdimage-pysrc.html
new file mode 100644
index 0000000..34ce4fb
--- /dev/null
+++ b/epydoc/fabio.kcdimage-pysrc.html
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.kcdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module kcdimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.kcdimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.kcdimage-module.html">Module fabio.kcdimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Jerome Kieffer, ESRF </tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">         email:jerome.kieffer at esrf.fr</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">kcd images are 2D images written by the old KappaCCD diffractometer built by Nonius in the 1990's</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">Based on the edfimage.py parser.</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt><tt class="py-op">,</tt> <tt class="py-name">string</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-0', 'fabioimage', 'link-0');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-0');">fabioimage</a></tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-2', 'logger', 'link-2');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"kcdimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable fabio.cbfimage.DATA_TYPES=fabio.cbfimage-module.html#DATA_TYPES,Variable fabio.dm3image.DATA_TYPES=fabio.dm3image-module.html#DATA_TYPES,Variable fabio.edfimage.DATA_TYPES=fabio.edfimage-module.html#DATA_TYPES,Variable fabio.kcdimage.DATA_TYPES=fabio.kcdimage-module.html#DATA_TYPES"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-3', 'DATA_TYPES', 'link-3');">DATA_TYPES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">"u16"</tt>  <tt class="py-op">:</tt>  <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> <tt class="py-op">}</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable fabio.cbfimage.MINIMUM_KEYS=fabio.cbfimage-module.html#MINIMUM_KEYS,Variable fabio.edfimage.MINIMUM_KEYS=fabio.edfimage-module.html#MINIMUM_KEYS,Variable fabio.kcdimage.MINIMUM_KEYS=fabio.kcdimage-module.html#MINIMUM_KEYS"><a title="fabio.cbfimage.MINIMUM_KEYS
+fabio.edfimage.MINIMUM_KEYS
+fabio.kcdimage.MINIMUM_KEYS" class="py-name" href="#" onclick="return doclink('link-4', 'MINIMUM_KEYS', 'link-4');">MINIMUM_KEYS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">                <tt class="py-string">'ByteOrder'</tt><tt class="py-op">,</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">                <tt class="py-string">'Data type'</tt><tt class="py-op">,</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">                <tt class="py-string">'X dimension'</tt><tt class="py-op">,</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">                <tt class="py-string">'Y dimension'</tt><tt class="py-op">,</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">                <tt class="py-string">'Number of readouts'</tt><tt class="py-op">]</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable fabio.edfimage.DEFAULT_VALUES=fabio.edfimage-module.html#DEFAULT_VALUES,Variable fabio.kcdimage.DEFAULT_VALUES=fabio.kcdimage-module.html#DEFAULT_VALUES"><a title="fabio.edfimage.DEFAULT_VALUES
+fabio.kcdimage.DEFAULT_VALUES" class="py-name" href="#" onclick="return doclink('link-5', 'DEFAULT_VALUES', 'link-5');">DEFAULT_VALUES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-string">"Data type"</tt><tt class="py-op">:</tt> <tt class="py-string">"u16"</tt> <tt class="py-op">}</tt> </tt>
+<a name="kcdimage"></a><div id="kcdimage-def"><a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="kcdimage-toggle" onclick="return toggle('kcdimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.kcdimage.kcdimage-class.html">kcdimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="kcdimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="kcdimage-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">    <tt class="py-docstring">""" </tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-docstring">    Read the Nonius kcd data format """</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
+<a name="kcdimage._readheader"></a><div id="kcdimage._readheader-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="kcdimage._readheader-toggle" onclick="return toggle('kcdimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.kcdimage.kcdimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">infile</ [...]
+</div><div id="kcdimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="kcdimage._readheader-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-docstring">        Read in a header in some KCD format from an already open file</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring">        @</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-name">oneLine</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-name">alphanum</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt> <tt class="py-op">+</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">letters</tt> <tt class="py-op">+</tt> <tt class="py-string">". "</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-name">asciiHeader</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">oneChar</tt> <tt class="py-keyword">in</tt> <tt class="py-name">oneLine</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">oneChar</tt> <tt class="py-keyword">in</tt> <tt class="py-name">alphanum</tt><tt class="py-op">:</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">                <tt class="py-name">asciiHeader</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">asciiHeader</tt> <tt class="py-keyword">is</tt> <tt class="py-name">False</tt><tt class="py-op">:</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">            <tt class="py-comment"># This does not look like an edf file</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">            <tt id="link-6" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-6', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"First line of %s does not seam to be ascii text!"</tt> <tt class="py-op">%</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-name">endOfHeaders</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt> <tt class="py-name">endOfHeaders</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">            <tt class="py-name">oneLine</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-7" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-7', 'len', 'link-7');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">oneLine</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt c [...]
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">                <tt class="py-name">endOfHeaders</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">oneLine</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">"Binned mode"</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">                <tt class="py-name">oneLine</tt> <tt class="py-op">=</tt> <tt class="py-string">"Mode = Binned"</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">                <tt id="link-8" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-8', 'key', 'link-8');">key</a></tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">oneLine</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py- [...]
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">                <tt class="py-name">endOfHeaders</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">            <tt id="link-9" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-9', 'key', 'link-8');">key</a></tt> <tt class="py-op">=</tt> <tt id="link-10" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-10', 'key', 'link-8');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(< [...]
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Variable fabio.edfimage.edfimage.header_keys=fabio.edfimage.edfimage-class.html#header_keys"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-11', 'header_keys', 'link-11');">header_keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="p [...]
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-13', 'header', 'link-13');">header</a></tt><tt class="py-op">[</tt><tt id="link-14" class="py-name"><a title="fabio.fabioutils.key" cla [...]
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-name">missing</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt id="link-15" class="py-name"><a title="fabio.cbfimage.MINIMUM_KEYS
+fabio.edfimage.MINIMUM_KEYS
+fabio.kcdimage.MINIMUM_KEYS" class="py-name" href="#" onclick="return doclink('link-15', 'MINIMUM_KEYS', 'link-4');">MINIMUM_KEYS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">item</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-16', 'header_keys', 'link-11');">header_keys</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                <tt class="py-name">missing</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-17" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-17', 'len', 'link-7');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">missing</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">            <tt id="link-18" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-18', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"KCD file misses the keys "</tt> <tt class="py-op">+</tt> <tt class="py-string">" "</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">missing</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
+<a name="kcdimage.read"></a><div id="kcdimage.read-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="kcdimage.read-toggle" onclick="return toggle('kcdimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.kcdimage.kcdimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py-p [...]
+</div><div id="kcdimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="kcdimage.read-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring">        Read in header into self.header and</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-docstring">            the data   into self.data</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-19', 'header', 'link-13');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-20', 'resetvals', 'link-20');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-21', '_open', 'link-21');">_open</a></tt><tt class="py-op">(</tt><tt clas [...]
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._rea [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-22', '_readheader', 'link-22');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-comment"># Compute image size</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-23', 'dim1', 'link-23');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self [...]
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-25', 'dim2', 'link-25');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self [...]
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"KCD file %s is corrupt, cannot read it"</tt> <tt class="py-op">%</tt> <tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">            <tt id="link-27" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-27', 'bytecode', 'link-27');">bytecode</a></tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="fabio.cbfimage.DATA_TYPES
+fabio.dm3image.DATA_TYPES
+fabio.edfimage.DATA_TYPES
+fabio.kcdimage.DATA_TYPES" class="py-name" href="#" onclick="return doclink('link-28', 'DATA_TYPES', 'link-3');">DATA_TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-29', 'header', 'link-13');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Data type'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-30', 'bpp', 'link-30');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="fabio.file_series.file_series.len" cla [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-32', 'bytecode', 'link-27');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-33', 'tostring', 'link-33');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">            <tt id="link-34" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-34', 'bytecode', 'link-27');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-35', 'bpp', 'link-30');">bpp</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">            <tt id="link-36" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-36', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Defaulting type to uint16"</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">            <tt class="py-name">nbReadOut</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-37', 'header', 'link-13');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'Number of readouts'</tt>< [...]
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">            <tt id="link-38" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-38', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Defaulting number of ReadOut to 1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">            <tt class="py-name">nbReadOut</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">fileSize</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">stat</tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">6</tt><tt class="py-op">]</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-name">expected_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-39', 'dim1', 'link-23');">dim1</a></tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="fabio.e [...]
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-42', 'seek', 'link-42');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">fileSize</tt> <tt class="py-op">-</tt> <tt class="py- [...]
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">block</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDim [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-43', 'read', 'link-43');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt id="link-44" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-44', 'len', 'link-7');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">expected_size</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-comment">#now read the data into the array</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-45', 'data', 'link-45');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-46', 'dim2', 'link-25');">dim [...]
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-48" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-48', 'i', 'link-48');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">nbReadOut</tt><tt class="py-op">)</tt><tt class="py [...]
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-49', 'data', 'link-45');">data</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">                    <tt class="py-name">block</tt><tt class="py-op">[</tt><tt id="link-50" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-50', 'i', 'link-48');">i</a></tt> <tt class="py-op">*</tt> <tt class="py-name">expected_size</tt> <tt class="py-op">/</tt> <tt class="py-name">nbReadOut</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt id="link-51" class=" [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-52', 'bytecode', 'link-27');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">                    <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-53', 'dim2', 'link-25');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class= [...]
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt id="link-55" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-55', 'len', 'link-7');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">block</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-56" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-56', 'bytecode', 'link-27');">bytecode</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-57', 'bpp', 'link-30');">bpp</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a  [...]
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> \ </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">              <tt class="py-string">'Size spec in kcd-header does not match size of image data field'</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-60', 'bytecode', 'link-27');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-61', 'data', 'link-45');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-62', 'resetvals', 'link-20');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-comment"># ensure the PIL image is reset</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="kcdimage.checkData"></a><div id="kcdimage.checkData-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="kcdimage.checkData-toggle" onclick="return toggle('kcdimage.checkData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.kcdimage.kcdimage-class.html#checkData">checkData</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="p [...]
+</div><div id="kcdimage.checkData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="kcdimage.checkData-expanded"><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-63" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-63', 'data', 'link-45');">data</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-64" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-64', 'data', 'link-45');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:42 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.kcdimage.kcdimage-class.html b/epydoc/fabio.kcdimage.kcdimage-class.html
new file mode 100644
index 0000000..a4e06d4
--- /dev/null
+++ b/epydoc/fabio.kcdimage.kcdimage-class.html
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.kcdimage.kcdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.kcdimage-module.html">Module kcdimage</a> ::
+        Class kcdimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.kcdimage.kcdimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class kcdimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.kcdimage-pysrc.html#kcdimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">kcdimage</strong>
+</pre>
+
+<hr />
+<p>Read the Nonius kcd data format</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.kcdimage.kcdimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Read in a header in some KCD format from an already open file @</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.kcdimage-pysrc.html#kcdimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.kcdimage.kcdimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read in header into self.header and...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.kcdimage-pysrc.html#kcdimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#write">write</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.kcdimage.kcdimage-class.html#checkData" class="summary-sig-name">checkData</a>(<span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Empty for fabioimage but may be populated by others classes, 
+      especially for format accepting only integers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.kcdimage-pysrc.html#kcdimage.checkData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.kcdimage-pysrc.html#kcdimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read in a header in some KCD format from an already open file @</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.kcdimage-pysrc.html#kcdimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+
+Read in header into self.header and
+    the data   into self.data
+
+</pre>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="checkData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">checkData</span>(<span class="sig-arg">data</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.kcdimage-pysrc.html#kcdimage.checkData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Empty for fabioimage but may be populated by others classes, 
+  especially for format accepting only integers</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#checkData">fabioimage.fabioimage.checkData</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.mar345_IO-module.html b/epydoc/fabio.mar345_IO-module.html
new file mode 100644
index 0000000..1a6f59f
--- /dev/null
+++ b/epydoc/fabio.mar345_IO-module.html
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.mar345_IO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module mar345_IO
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.mar345_IO-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module mar345_IO</h1><p class="nomargin-top"></p>
+<pre class="literalblock">
+
+New Cython version of mar345_io for preparing the migration to Python3
+
+Compressor & decompressor for "pack" algorithm by JPA, binding to CCP4 libraries 
+
+Warning: decompressor is just a cython porting of mar345_io, but in cython so (soon) python3 compliant.
+
+Future: make those algorithm actually generate strings not go via files;
+        it will allow a broader use of the algorithm. 
+
+</pre>
+
+<hr />
+<div class="fields">      <dl><dt>Authors:</dt>
+        <dd>
+          Jerome Kieffer,
+          Gael Goret
+        </dd>
+      </dl>
+      <p><strong>Contact:</strong>
+        jerome.kieffer at esrf.eu
+      </p>
+      <p><strong>Copyright:</strong>
+        2012, European Synchrotron Radiation Facility, Grenoble, France
+      </p>
+      <p><strong>License:</strong>
+        LGPLv3+
+      </p>
+</div><!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__test__"></a><span class="summary-name">__test__</span> = <code title="{}"><code class="variable-group">{</code><code class="variable-group">}</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.mar345image-module.html b/epydoc/fabio.mar345image-module.html
new file mode 100644
index 0000000..bececfa
--- /dev/null
+++ b/epydoc/fabio.mar345image-module.html
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.mar345image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module mar345image
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.mar345image-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module mar345image</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.mar345image-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright, Jérôme Kieffer & Gaël Goret:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+
+         
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.mar345image.mar345image-class.html" class="summary-name">mar345image</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.mar345image-module.html#__doc__" class="summary-name">__doc__</a> = <code title=""""
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions\
+;
+  Risoe National Laboratory;
+..."><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("mar345image")">logging.getLogger("mar345image")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__doc__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">__doc__</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+"""
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+;
+  Risoe National Laboratory;
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.mar345image-pysrc.html b/epydoc/fabio.mar345image-pysrc.html
new file mode 100644
index 0000000..82c8365
--- /dev/null
+++ b/epydoc/fabio.mar345image-pysrc.html
@@ -0,0 +1,804 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.mar345image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module mar345image
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.mar345image-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.mar345image-module.html">Module fabio.mar345image</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8 </tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">with_statement</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.OXDimage.__doc__=fabio.OXDimage-module.html#__doc__,Variable fabio.binaryimage.__doc__=fabio.binaryimage-module.html#__doc__,Variable fabio.mar345image.__doc__=fabio.mar345image-module.html#__doc__"><a title="fabio.OXDimage.__doc__
+fabio.binaryimage.__doc__
+fabio.mar345image.__doc__" class="py-name" href="#" onclick="return doclink('link-0', '__doc__', 'link-0');">__doc__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-string">Authors:</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-string">........</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-string">* Henning O. Sorensen & Erik Knudsen:</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-string">  Center for Fundamental Research: Metal Structures in Four Dimensions;</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-string">  Risoe National Laboratory;</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-string">  Frederiksborgvej 399;</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-string">  DK-4000 Roskilde;</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-string">  email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-string">* Jon Wright, Jérôme Kieffer & Gaël Goret:</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-string">  European Synchrotron Radiation Facility;</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-string">  Grenoble (France)</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-string">         </tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-string">"""</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-1');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-1');">fabioimage</a></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt><tt class="py-op">,</tt> <tt class="py-name">struct</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-3', 'logger', 'link-3');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"mar345image"</tt><tt class="py-op">)</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name" targets="Module fabio.compression=fabio.compression-module.html"><a title="fabio.compression" class="py-name" href="#" onclick="return doclink('link-4', 'compression', 'link-4');">compression</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Function fabio.compression.compPCK()=fabio.compression-module.html#compPCK"><a t [...]
+<a name="mar345image"></a><div id="mar345image-def"><a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <a class="py-toggle" href="#" id="mar345image-toggle" onclick="return toggle('mar345image');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.mar345image.mar345image-class.html">mar345image</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="mar345image-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="mar345image-expanded"><a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">    <tt id="link-7" class="py-name" targets="Variable fabio.fabioimage.fabioimage._need_a_real_file=fabio.fabioimage.fabioimage-class.html#_need_a_real_file,Variable fabio.mar345image.mar345image._need_a_real_file=fabio.mar345image.mar345image-class.html#_need_a_real_file"><a title="fabio.fabioimage. [...]
+fabio.mar345image.mar345image._need_a_real_file" class="py-name" href="#" onclick="return doclink('link-7', '_need_a_real_file', 'link-7');">_need_a_real_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="mar345image.__init__"></a><div id="mar345image.__init__-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="mar345image.__init__-toggle" onclick="return toggle('mar345image.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.mar345image.mar345image-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt c [...]
+</div><div id="mar345image.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="mar345image.__init__-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt id="link-8" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-8', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fabio.adscimage.adscimage-class.html#__init__,Method fabio.binaryimage.binaryimage.__ini [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-9', '__init__', 'link-9');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">numhigh</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">numpixels</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
+<a name="mar345image.read"></a><div id="mar345image.read-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="mar345image.read-toggle" onclick="return toggle('mar345image.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.mar345image.mar345image-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</t [...]
+</div><div id="mar345image.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="mar345image.read-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-docstring">""" Read a mar345 image"""</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-10', '_open', 'link-10');">_open</a></tt><tt class="py-op">(</tt><tt class="py [...]
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._rea [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-11', '_readheader', 'link-11');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'compressed'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-12', 'header', 'link-12');">header</a [...]
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-13', 'data', 'link-13');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-14" class="py-name"><a title="fabio.compression.decPCK" class="py-name" href="#" onclick="return doclink('link-14', 'decPCK', 'link-6');">decPCK</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Variab [...]
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">                <tt id="link-17" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-17', 'logger', 'link-3');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'%s. importing the mar345_io backend: generate an empty 1x1 picture'</tt> <tt class="py-op">%</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-18', 'dim1', 'link-15');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-19', 'dim2', 'link-16');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-20', 'bytecode', 'link-20');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int</tt> <tt class="py-comment">#</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-21', 'data', 'link-13');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">resize</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nump [...]
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">            <tt id="link-22" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-22', 'logger', 'link-3');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"cannot handle these formats yet "</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">                <tt class="py-string">"due to lack of documentation"</tt><tt class="py-op">)</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-23', 'bytecode', 'link-20');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"> </tt>
+<a name="mar345image._readheader"></a><div id="mar345image._readheader-def"><a name="L59"></a><tt class="py-lineno"> 59</tt> <a class="py-toggle" href="#" id="mar345image._readheader-toggle" onclick="return toggle('mar345image._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.mar345image.mar345image-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class=" [...]
+</div><div id="mar345image._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="mar345image._readheader-expanded"><a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-docstring">""" Read a mar345 image header """</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-comment"># clip was not used anywhere - commented out</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-comment"># clip = '\x00'</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-comment">#using a couple of local variables inside this function</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">        <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-comment">#header is 4096 bytes long</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.OXDima [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-24', 'read', 'link-24');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">64</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-comment">#the contents of the mar345 header is taken to be as</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-comment"># described in</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-comment"># http://www.mar-usa.com/support/downloads/mar345_formats.pdf</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-comment">#the first 64 bytes are 4-byte integers (but in the CBFlib</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-comment"># example image it seems to 128 bytes?)</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-comment">#first 4-byte integer is a marker to check endianness</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method fabio.edfimage.edfimage.unpack()=fabio.edfimage.edfimage-class.html#unpack,Method fabio.tifimage.Image_File_Directory.unpack()=fabio.tifimage.Image_File_Directory-class.html#unpack,Method fabio.tifimage.Image_File_Directory_entry.unpack()=fabio.tifimage.Image_File_Directory_entr [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-25', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-string">"<i"</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt cl [...]
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-name">fs</tt> <tt class="py-op">=</tt> <tt class="py-string">'<i'</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">            <tt class="py-name">fs</tt> <tt class="py-op">=</tt> <tt class="py-string">'>i'</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-comment">#image dimensions</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-26', 'dim1', 'link-15');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return d [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-28', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py- [...]
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-comment">#number of high intensity pixels</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">numhigh</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-29', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">2</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt> <tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt  [...]
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'NumHigh'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">numhigh</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-comment">#Image format</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt id="link-30" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-30', 'i', 'link-30');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-31', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">3</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt> <tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt  [...]
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-32" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-32', 'i', 'link-30');">i</a></tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">            <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'Format'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'compressed'</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-33" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-33', 'i', 'link-30');">i</a></tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">            <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'Format'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'spiral'</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">            <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'Format'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'compressed'</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">            <tt id="link-34" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-34', 'logger', 'link-3');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"image format could not be detetermined"</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">                <tt class="py-string">"- assuming compressed mar345"</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-comment">#collection mode</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'Mode'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-string">'Dose'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> <tt class="py-string">'Time'</tt><tt class="py-op">}</tt><tt class="py-op">[</tt><tt class="py [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-35', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">4</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-number">4</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt cl [...]
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-comment">#total number of pixels</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">numpixels</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-36', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">5</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-number">5</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt cl [...]
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'NumPixels'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-37', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">numpixels</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-comment">#pixel dimensions (length,height) in mm</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'PixelLength'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-38', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">6</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-number">6</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt cl [...]
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'PixelHeight'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-39', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">7</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-number">7</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt cl [...]
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-comment">#x-ray wavelength in AA</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'Wavelength'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-40', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">8</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-number">8</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt cl [...]
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-comment">#used distance</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'Distance'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-41', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">9</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">(</tt><tt class="py-number">9</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt cl [...]
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-comment">#starting and ending phi</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'StartPhi'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-42', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">10</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">11</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt  [...]
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'EndPhi'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-43', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">11</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">12</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt  [...]
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-comment">#starting and ending omega</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'StartOmega'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-44', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">12</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">13</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt  [...]
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'EndOmega'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-45', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">13</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">14</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt  [...]
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-comment">#Chi and Twotheta angles</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'Chi'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-46', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">14</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">15</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt  [...]
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'TwoTheta'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-47', 'unpack', 'link-25');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fs</tt><tt class="py-op">,</tt> <tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">15</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-number">16</tt> <tt class="py-op">*</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt  [...]
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-comment">#the rest of the header is ascii</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-comment"># TODO: validate these values against the binaries already read</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-48', 'read', 'link-24');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">128</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'mar research'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">l</tt><tt class="py-op">:</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">            <tt id="link-49" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-49', 'logger', 'link-3');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"the string \"mar research\" should be in "</tt> <tt class="py-op">+</tt> \ </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">                <tt class="py-string">"bytes 65-76 of the header but was not"</tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">            <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-number">128</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">            <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-string">'mar research'</tt><tt class="py-op">)</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-50', 'seek', 'link-50');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">64</tt> <tt class="py-op">+</tt> <tt class="py-name" [...]
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-51', 'read', 'link-24');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">4096</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt> <tt class="py-op">-</tt> <tt class="py-number">64</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">splitlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">m</tt> <tt class="py-op">==</tt> <tt class="py-string">'END OF HEADER'</tt><tt class="py-op">:</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'PROGRAM'</tt><tt class="py-op">,</tt> <tt class="py-string">'DATE'</tt><tt class="py-op">,</tt> <tt class="py-string">'SCANNER'</tt><tt class="py-op">,</tt> <tt class="py-string">'HIGH'</tt><tt cla [...]
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">                        <tt class="py-string">'GAIN'</tt><tt class="py-op">,</tt> <tt class="py-string">'WAVELENGTH'</tt><tt class="py-op">,</tt> <tt class="py-string">'DISTANCE'</tt><tt class="py-op">,</tt> <tt class="py-string">'RESOLUTION'</tt><tt class="py-op">,</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">                        <tt class="py-string">'CHI'</tt><tt class="py-op">,</tt> <tt class="py-string">'TWOTHETA'</tt><tt class="py-op">,</tt> <tt class="py-string">'MODE'</tt><tt class="py-op">,</tt> <tt class="py-string">'TIME'</tt><tt class="py-op">,</tt> <tt class="py-string">'GENERATOR'</tt><tt class="py-op">,</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">                        <tt class="py-string">'MONOCHROMATOR'</tt><tt class="py-op">,</tt> <tt class="py-string">'REMARK'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">                <tt id="link-52" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-52', 'logger', 'link-3');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"reading: %s %s"</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</ [...]
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">                <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'FORMAT'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'DIM'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'FORMAT_TYPE'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">[</tt><tt class="py-string">'NO_PIXELS'</tt><tt class="py-op">]</tt [...]
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'PIXEL'</tt><tt class="py-op">,</tt> <tt class="py-string">'OFFSET'</tt><tt class="py-op">,</tt> <tt class="py-string">'PHI'</tt><tt class="py-op">,</tt> <tt class="py-string">'OMEGA'</tt><tt class= [...]
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">                        <tt class="py-string">'CENTER'</tt><tt class="py-op">,</tt> <tt class="py-string">'INTENSITY'</tt><tt class="py-op">,</tt> <tt class="py-string">'HISTOGRAM'</tt><tt class="py-op">,</tt> <tt class="py-string">'COLLIMATOR'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">                <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">                <tt class="py-name">h</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">'_'</tt> <tt class="py-op">+</tt> <tt class="py-name">n</tt><tt class="py-op">[</tt><tt class="py-name [...]
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-54', 'header', 'link-12');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-name">h</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">h</tt> </tt>
+</div><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt>
+<a name="mar345image.write"></a><div id="mar345image.write-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="mar345image.write-toggle" onclick="return toggle('mar345image.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.mar345image.mar345image-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-o [...]
+</div><div id="mar345image.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="mar345image.write-expanded"><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-docstring">"""Try to write mar345 file. This is still in beta version.</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">        It uses CCP4 (LGPL) PCK1 algo from JPA"""</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Method fabio.OXDimage.OXDimage._writeheader()=fabio.OXDimage.OXDimage-class.html#_writeheader,Method fabio.mar345image.mar345image._writeheader()=fabio.mar345image.mar345image-class.html#_writeheader"><a title="fabio.OXDimage.OXDimage._writeheader
+fabio.mar345image.mar345image._writeheader" class="py-name" href="#" onclick="return doclink('link-55', '_writeheader', 'link-55');">_writeheader</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-name">hotpixels</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method fabio.mar345image.mar345image._high_intensity_pixel_records()=fabio.mar345image.mar345image-class.html#_high_intensity_pixel_records"><a title="fabio.mar345image.mar345image._high_intensity_pixel_records" class="py-name" href="#" onclick="return docli [...]
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-name">compressed_stream</tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="fabio.compression.compPCK" class="py-name" href="#" onclick="return doclink('link-57', 'compPCK', 'link-5');">compPCK</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-58', 'data', 'link-13');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-59', '_open', 'link-10');">_open</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op [...]
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method fabio.GEimage.GEimage.write()=fabio.GEimage.GEimage-class.html#write,Method fabio.OXDimage.OXDimage.write()=fabio.OXDimage.OXDimage-class.html#write,Method fabio.adscimage.adscimage.write()=fabio.adscimage.adscimage-class.html#write,Method fabio.binaryimage.binaryimage.write()=fabio.binaryimage.binaryim [...]
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-60', 'write', 'link-60');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-61', 'write', 'link-60');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">hotpixels</tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.GEimage.GEimage.write
+fabio.OXDimage.OXDimage.write
+fabio.adscimage.adscimage.write
+fabio.binaryimage.binaryimage.write
+fabio.brukerimage.brukerimage.write
+fabio.cbfimage.cbfimage.write
+fabio.edfimage.edfimage.write
+fabio.fabioimage.fabioimage.write
+fabio.fit2dmaskimage.fit2dmaskimage.write
+fabio.mar345image.mar345image.write
+fabio.pnmimage.pnmimage.write
+fabio.tifimage.tifimage.write" class="py-name" href="#" onclick="return doclink('link-62', 'write', 'link-60');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">compressed_stream</tt><tt class="py-op">)</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">            <tt class="py-name">outfile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">            <tt id="link-63" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-63', 'logger', 'link-3');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Error in writing file %s: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"> </tt>
+<a name="mar345image._writeheader"></a><div id="mar345image._writeheader-def"><a name="L167"></a><tt class="py-lineno">167</tt> <a class="py-toggle" href="#" id="mar345image._writeheader-toggle" onclick="return toggle('mar345image._writeheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.mar345image.mar345image-class.html#_writeheader">_writeheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt  [...]
+</div><a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">        @param linesep: end of line separator</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">        @return string/bytes containing the mar345 header</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">            <tt id="link-64" class="py-name" targets="Variable fabio.version=fabio-module.html#version"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-64', 'version', 'link-64');">version</a></tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">modules</tt><tt class="py-op">[</tt><tt class="py-string">"fabio"</tt><tt class="py-op">]</tt> [...]
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">            <tt id="link-66" class="py-name"><a title="fabio.version" class="py-name" href="#" onclick="return doclink('link-66', 'version', 'link-64');">version</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"0.1.1"</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-name">lnsep</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-67', 'len', 'link-53');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">linesep</tt><tt class="py-op">)</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-68', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">"HIGH"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-69', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name" targets="Method fabio.mar345image.mar345image.nb_overflow_pixels()=fabio.mar345image.mar345image-class.html#nb_overflow_pixels"><a title="fabio.mar345image.mar345image.nb_overflow_pixels" class="py-name" href="#" onclick="return doclink('link-70', 'nb_overflow_pixels', 'link-70');">nb [...]
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">,</tt> <tt class="py-string">"int32"</tt><tt class="py-op">)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">1234</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link [...]
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-73', 'header', 'link-12');">header</a></tt><tt class="py-op">.</tt><tt [...]
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">5</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-74', 'dim1', 'link-15');">dim1</a></tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><t [...]
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">6</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-76', 'header', 'link-12');">header</a></tt [...]
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">7</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-77', 'header', 'link-12');">header</a></tt [...]
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return do [...]
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">9</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return do [...]
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">10</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return d [...]
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return d [...]
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">12</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return d [...]
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">13</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return d [...]
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">14</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return d [...]
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">        <tt class="py-name">binheader</tt><tt class="py-op">[</tt><tt class="py-number">15</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return d [...]
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">        <tt class="py-name">lstout</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">binheader</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-86', 'tostring', 'link-86');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'mar research'</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">64</tt> <tt class="py-op">-</tt> <tt class="py-name">lnsep</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">        <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"PROGRAM"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt id="link-87" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-87', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-88', 'header', 'link-12');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">"PROGRAM"</tt><tt class="py-op">,</tt> <tt clas [...]
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">        <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"DATE"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt id="link-90" class="py-name"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-90', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-91', 'header', 'link-12');">header</a></tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">"DATE"</tt><tt class="py-op">,</tt> <tt class=" [...]
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">        <tt id="link-92" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-92', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"SCANNER"</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-93" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-93', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-94', 'head [...]
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-95', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class= [...]
+str" class="py-name" href="#" onclick="return doclink('link-96', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-97', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-98" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-9 [...]
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">        <tt id="link-99" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-99', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"FORMAT_TYPE"</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-100" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-100', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-101', ' [...]
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"FORMAT"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"%s  %s %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">( [...]
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">        <tt id="link-107" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-107', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"HIGH"</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-108" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-108', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-109', ' [...]
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-110" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-110', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-111', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-112', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-113" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"PIXEL_LENGTH"</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"PIXEL_HEIGHT"</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-114', 'header', 'link-12');">header</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="p [...]
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"PIXEL"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"LENGTH %s  HEIGHT %s"</tt> <tt class="py-op">%</tt> <tt class [...]
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"OFFSET_ROFF"</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"OFFSET_TOFF"</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-118', 'header', 'link-12');">header</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">key2</tt> <tt class="py-keyword">in</tt> [...]
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"OFFSET"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"ROFF %s  TOFF %s"</tt> <tt class="py-op">%</tt> <tt class="p [...]
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt id="link-122" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-122', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"MULTIPLIER"</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-123" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-123', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-124', ' [...]
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-125" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-125', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-126', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-127', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-128" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">        <tt id="link-129" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-129', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"GAIN"</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-130" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-130', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-131', ' [...]
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-132" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-132', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-133', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-134', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-135" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">        <tt id="link-136" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-136', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"WAVELENGTH"</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-137" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-137', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-138', ' [...]
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-139" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-139', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-140', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-141', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-142" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">        <tt id="link-143" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-143', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"DISTANCE"</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-144" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-144', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-145', ' [...]
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-146" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-146', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-147', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-148', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-149" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">        <tt id="link-150" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-150', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"RESOLUTION"</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-151" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-151', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-152', ' [...]
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-153" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-153', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-154', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-155', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-156" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"PHI_START"</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"PHI_END"</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">        <tt class="py-name">key3</tt> <tt class="py-op">=</tt> <tt class="py-string">"PHI_OSC"</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-157', 'header', 'link-12');">header</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="p [...]
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"PHI"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"START %s  END %s  OSC %s"</tt> <tt class="py-op">%</tt> <tt cla [...]
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"OMEGA_START"</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"OMEGA_END"</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-name">key3</tt> <tt class="py-op">=</tt> <tt class="py-string">"OMEGA_OSC"</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-163', 'header', 'link-12');">header</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="p [...]
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"OMEGA"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"START %s  END %s  OSC %s"</tt> <tt class="py-op">%</tt> <tt c [...]
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt id="link-169" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-169', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"CHI"</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-170" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-170', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-171', ' [...]
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-172" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-172', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-173', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-174', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-175" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt id="link-176" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-176', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TWOTHETA"</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-177" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-177', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-178', ' [...]
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-179" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-179', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-180', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-181', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-182" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"CENTER_X"</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"CENTER_Y"</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-183', 'header', 'link-12');">header</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="p [...]
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"CENTER"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"X %s  Y %s"</tt> <tt class="py-op">%</tt> <tt class="py-op"> [...]
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt id="link-187" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-187', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"MODE"</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-188" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-188', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-189', ' [...]
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-190" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-190', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-191', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-192', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-193" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">        <tt id="link-194" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-194', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TIME"</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-195" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-195', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-196', ' [...]
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-197" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-197', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-198', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-199', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-200" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"COUNTS_START"</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"COUNTS_END"</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-name">key3</tt> <tt class="py-op">=</tt> <tt class="py-string">"COUNTS_NMEAS"</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-201', 'header', 'link-12');">header</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">key2</tt> <tt class="py-keyword">in</tt> [...]
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"COUNTS"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"START %s  END %s  NMEAS %s"</tt> <tt class="py-op">%</tt> <t [...]
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"COUNTS_MIN"</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"COUNTS_MAX"</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-207', 'header', 'link-12');">header</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">key2</tt> <tt class="py-keyword">in</tt> [...]
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"COUNTS"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"MIN %s  MAX %s"</tt> <tt class="py-op">%</tt> <tt class="py- [...]
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"COUNTS_AVE"</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"COUNTS_SIG"</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-211', 'header', 'link-12');">header</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">key2</tt> <tt class="py-keyword">in</tt> [...]
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"COUNTS"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"AVE %s  SIG %s"</tt> <tt class="py-op">%</tt> <tt class="py- [...]
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"INTENSITY_MIN"</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"INTENSITY_MAX"</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">        <tt class="py-name">key3</tt> <tt class="py-op">=</tt> <tt class="py-string">"INTENSITY_AVE"</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">        <tt class="py-name">key4</tt> <tt class="py-op">=</tt> <tt class="py-string">"INTENSITY_SIG"</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-215', 'header', 'link-12');">header</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">key2</tt> <tt class="py-keyword">in</tt> [...]
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"INTENSITY"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"MIN %s  MAX %s  AVE %s  SIG %s"</tt> <tt class="py-op">%< [...]
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"HISTOGRAM_START"</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"HISTOGRAM_END"</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">        <tt class="py-name">key3</tt> <tt class="py-op">=</tt> <tt class="py-string">"HISTOGRAM_MAX"</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-223', 'header', 'link-12');">header</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">key2</tt> <tt class="py-keyword">in</tt> [...]
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"HISTOGRAM"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"START %s  END %s  MAX %s"</tt> <tt class="py-op">%</tt> < [...]
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">        <tt id="link-229" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-229', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"GENERATOR"</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-230" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-230', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-231', ' [...]
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-232" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-232', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-233', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-234', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-235" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt id="link-236" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-236', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"MONOCHROMATOR"</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-237" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-237', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-238', ' [...]
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-239" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-239', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-240', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-241', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-242" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">        <tt class="py-name">key1</tt> <tt class="py-op">=</tt> <tt class="py-string">"COLLIMATOR_WIDTH"</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">        <tt class="py-name">key2</tt> <tt class="py-op">=</tt> <tt class="py-string">"COLLIMATOR_HEIGHT"</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">key1</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-243', 'header', 'link-12');">header</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">key2</tt> <tt class="py-keyword">in</tt> [...]
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"COLLIMATOR"</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-string">"WIDTH %s  HEIGHT %s"</tt> <tt class="py-op">%</tt> <tt c [...]
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt id="link-247" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-247', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"REMARK"</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-248" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-248', 'key', 'link-92');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-249" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-249', ' [...]
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-250" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-250', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt> <tt clas [...]
+str" class="py-name" href="#" onclick="return doclink('link-251', 'str', 'link-37');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-252', 'header', 'link-12');">header</a></tt><tt class="py-op">[</tt><tt id="link-253" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('li [...]
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">            <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-254" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-254', 'key', 'link-92');">key</a></tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt class="py-number">64</tt> <tt class="py-op">-</tt> <tt cla [...]
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">        <tt id="link-255" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-255', 'key', 'link-92');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"END OF HEADER"</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">        <tt class="py-name">lstout</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-256" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-256', 'key', 'link-92');">key</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">linesep</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">lstout</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">ljust</tt><tt class="py-op">(</tt><tt id="link-257" class="py-name" targets="Variable fabio.fabioutils.BZ2File.size=fabio.fabioutils.BZ2File-class.html#size,Variable fabi [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-257', 'size', 'link-257');">size</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"> </tt>
+<a name="mar345image._high_intensity_pixel_records"></a><div id="mar345image._high_intensity_pixel_records-def"><a name="L298"></a><tt class="py-lineno">298</tt> <a class="py-toggle" href="#" id="mar345image._high_intensity_pixel_records-toggle" onclick="return toggle('mar345image._high_intensity_pixel_records');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.mar345image.mar345image-class.html#_high_intensity_pixel_records">_high_intensit [...]
+</div><div id="mar345image._high_intensity_pixel_records-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="mar345image._high_intensity_pixel_records-expanded"><a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">        <tt class="py-name">flt_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-258" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-258', 'data', 'link-13');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">        <tt class="py-name">pix_location</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">where</tt><tt class="py-op">(</tt><tt class="py-name">flt_data</tt> <tt class="py-op">></tt> <tt class="py-number">65535</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">        <tt class="py-name">nb_pix</tt> <tt class="py-op">=</tt> <tt class="py-name">pix_location</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-259', 'size', 'link-257');">size</a></tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">nb_pix</tt> <tt class="py-op">%</tt> <tt class="py-number">8</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">            <tt class="py-name">tmp</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">nb_pix</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">"int32"</tt><t [...]
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">            <tt class="py-name">tmp</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">nb_pix</tt> <tt class="py-op">//</tt> <tt class="py-number">8</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class [...]
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">        <tt class="py-name">tmp</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">nb_pix</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">pix_location</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">        <tt class="py-name">tmp</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">nb_pix</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">flt_data</tt><tt class="py-op">[</tt><tt class="py-name">pix_location</tt><tt class="py-op">]</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">tmp</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-260', 'tostring', 'link-86');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line"> </tt>
+<a name="mar345image.nb_overflow_pixels"></a><div id="mar345image.nb_overflow_pixels-def"><a name="L310"></a><tt class="py-lineno">310</tt> <a class="py-toggle" href="#" id="mar345image.nb_overflow_pixels-toggle" onclick="return toggle('mar345image.nb_overflow_pixels');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.mar345image.mar345image-class.html#nb_overflow_pixels">nb_overflow_pixels</a><tt class="py-op">(</tt><tt class="py-param">se [...]
+</div><div id="mar345image.nb_overflow_pixels-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="mar345image.nb_overflow_pixels-expanded"><a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-261', 'data', 'link-13');">data</a></tt> <tt class="py-op">></tt> <tt class="py-number">65535</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="mar345image.checkData"></a><div id="mar345image.checkData-def"><a name="L314"></a><tt class="py-lineno">314</tt> <a class="py-toggle" href="#" id="mar345image.checkData-toggle" onclick="return toggle('mar345image.checkData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.mar345image.mar345image-class.html#checkData">checkData</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">Non [...]
+</div><div id="mar345image.checkData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="mar345image.checkData-expanded"><a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-262" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-262', 'data', 'link-13');">data</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"><tt class="py-comment">#            enforce square image </tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">            <tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt id="link-263" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-263', 'data', 'link-13');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">            <tt class="py-keyword">assert</tt> <tt id="link-264" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-264', 'len', 'link-53');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">shape</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-string">"image has 2 dimension [...]
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">            <tt class="py-name">mshape</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">shape</tt><tt class="py-op">)</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">            <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">mshape</tt><tt class="py-op">,</tt> <tt class="py-name">mshape</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">int</tt><tt cla [...]
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">            <tt class="py-name">z</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">shape</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-name">shape</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-265" class= [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-265', 'data', 'link-13');">data</a></tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">z</tt> </tt>
+</div></div><a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.mar345image.mar345image-class.html b/epydoc/fabio.mar345image.mar345image-class.html
new file mode 100644
index 0000000..fc06c4c
--- /dev/null
+++ b/epydoc/fabio.mar345image.mar345image-class.html
@@ -0,0 +1,571 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.mar345image.mar345image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.mar345image-module.html">Module mar345image</a> ::
+        Class mar345image
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.mar345image.mar345image-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class mar345image</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">mar345image</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.mar345image.mar345image-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">*args</span>,
+        <span class="summary-sig-arg">**kwargs</span>)</span><br />
+      Set up initial values</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.mar345image.mar345image-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read a mar345 image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.mar345image.mar345image-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Read a mar345 image header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.mar345image.mar345image-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      Try to write mar345 file.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.mar345image.mar345image-class.html#_writeheader" class="summary-sig-name" onclick="show_private();">_writeheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">linesep</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">\n</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">size</span>=<span class="summary-sig-default">4096</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image._writeheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_high_intensity_pixel_records"></a><span class="summary-sig-name">_high_intensity_pixel_records</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image._high_intensity_pixel_records">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="nb_overflow_pixels"></a><span class="summary-sig-name">nb_overflow_pixels</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image.nb_overflow_pixels">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.mar345image.mar345image-class.html#checkData" class="summary-sig-name">checkData</a>(<span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Empty for fabioimage but may be populated by others classes, 
+      especially for format accepting only integers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image.checkData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="_need_a_real_file"></a><span class="summary-name">_need_a_real_file</span> = <code title="True">True</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">*args</span>,
+        <span class="sig-arg">**kwargs</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Set up initial values</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read a mar345 image</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read a mar345 image header</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Try to write mar345 file. This is still in beta version. It uses CCP4 
+  (LGPL) PCK1 algo from JPA</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_writeheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_writeheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">linesep</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">\n</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">size</span>=<span class="sig-default">4096</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image._writeheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>linesep</code></strong> - end of line separator @return string/bytes containing the mar345 
+          header</li>
+    </ul></dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="checkData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">checkData</span>(<span class="sig-arg">data</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.mar345image-pysrc.html#mar345image.checkData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Empty for fabioimage but may be populated by others classes, 
+  especially for format accepting only integers</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#checkData">fabioimage.fabioimage.checkData</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.marccdimage-module.html b/epydoc/fabio.marccdimage-module.html
new file mode 100644
index 0000000..396bc49
--- /dev/null
+++ b/epydoc/fabio.marccdimage-module.html
@@ -0,0 +1,420 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.marccdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module marccdimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.marccdimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module marccdimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.marccdimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+         
+marccdimage can read MarCCD and MarMosaic images including header info.
+
+JPW : Use a parser in case of typos (sorry?)
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.marccdimage.marccdimage-class.html" class="summary-name">marccdimage</a><br />
+      Read in data in mar ccd format, also MarMosaic images, including 
+        header info
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="make_format"></a><span class="summary-sig-name">make_format</span>(<span class="summary-sig-arg">c_def_string</span>)</span><br />
+      Reads the header definition in c and makes the format string to pass 
+      to struct.unpack</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.marccdimage-pysrc.html#make_format">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="interpret_header"></a><span class="summary-sig-name">interpret_header</span>(<span class="summary-sig-arg">header</span>,
+        <span class="summary-sig-arg">fmt</span>,
+        <span class="summary-sig-arg">names</span>)</span><br />
+      given a format and header interpret it</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.marccdimage-pysrc.html#interpret_header">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("marccdimage")">logging.getLogger("marccdimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.marccdimage-module.html#CDEFINITION" class="summary-name">CDEFINITION</a> = <code title="'''
+typedef struct frame_header_type {
+         /* File/header format parameters (256 bytes) */
+         UINT32        header_type;  /* flag for header type  
+                                           (can be  used as magic numb\
+er) */
+         char header_name[16];           /* header name (MMX) */
+         UINT32        header_major_version;   /* header_major_version\
+..."><code class="variable-quote">'</code><code class="variable-string">\ntypedef struct frame_header_type {\n         </code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.marccdimage-module.html#C_TO_STRUCT" class="summary-name">C_TO_STRUCT</a> = <code title="{'INT32': 'i', 'UINT16': 'H', 'UINT32': 'I', 'char': 'c'}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">INT32</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">i</code><code class="variable-quote">'</code><code class="variable [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="C_SIZES"></a><span class="summary-name">C_SIZES</span> = <code title="{'INT32': 4, 'UINT16': 2, 'UINT32': 4, 'char': 1}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">INT32</code><code class="variable-quote">'</code><code class="variable-op">: </code>4<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">UINT16</code><code class="variable-quote">'</code><code class=" [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="MAXIMAGES"></a><span class="summary-name">MAXIMAGES</span> = <code title="9">9</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.marccdimage-module.html#HEADER_FORMAT" class="summary-name">HEADER_FORMAT</a> = <code title="'IccccccccccccccccIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIccccccccccccc\
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccIII\
+IIIIIIIIIIIIIIIIIIIccccccccccccccccccccccccccccccccccccccccHHHHHHHHHHH\
+HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\
+HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiii\
+iiiiicccccccccccccccciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiccccccc\
+ccccccccciiiiiiiiiiccccccccccccccccccccccccccccccccccccccccccccccccccc\
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
+..."><code class="variable-quote">'</code><code class="variable-string">IccccccccccccccccIIIIIIIIIIIIIIIIIIIIIIIIIIII</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.marccdimage-module.html#HEADER_NAMES" class="summary-name">HEADER_NAMES</a> = <code title="['header_type',
+ 'header_name[16]',
+ 'header_name[16]',
+ 'header_name[16]',
+ 'header_name[16]',
+ 'header_name[16]',
+ 'header_name[16]',
+ 'header_name[16]',
+..."><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">header_type</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">header_name[16]</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">header_name</code><code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="CDEFINITION"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">CDEFINITION</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'''</code><code class="variable-string"></code>
+<code class="variable-string">typedef struct frame_header_type {</code>
+<code class="variable-string">         /* File/header format parameters (256 bytes) */</code>
+<code class="variable-string">         UINT32        header_type;  /* flag for header type  </code>
+<code class="variable-string">                                           (can be  used as magic numb</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">er) */</code>
+<code class="variable-string">         char header_name[16];           /* header name (MMX) */</code>
+<code class="variable-string">         UINT32        header_major_version;   /* header_major_version</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="C_TO_STRUCT"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">C_TO_STRUCT</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">INT32</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">i</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">UINT16</code><code class="variable-quote">'</code><code class="variable-op">: </code><code [...]
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="HEADER_FORMAT"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">HEADER_FORMAT</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">IccccccccccccccccIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIccccccccccccc</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccIII</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">IIIIIIIIIIIIIIIIIIIccccccccccccccccccccccccccccccccccccccccHHHHHHHHHHH</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiii</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">iiiiicccccccccccccccciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiccccccc</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">ccccccccciiiiiiiiiiccccccccccccccccccccccccccccccccccccccccccccccccccc</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="HEADER_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">HEADER_NAMES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">header_type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">header_name[16]</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">header_name[16]</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">header_name[16]</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">header_name[16]</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">header_name[16]</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">header_name[16]</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">header_name[16]</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.marccdimage-pysrc.html b/epydoc/fabio.marccdimage-pysrc.html
new file mode 100644
index 0000000..af79f7f
--- /dev/null
+++ b/epydoc/fabio.marccdimage-pysrc.html
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.marccdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module marccdimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.marccdimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.marccdimage-module.html">Module fabio.marccdimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">Authors:</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">........</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">* Henning O. Sorensen & Erik Knudsen:</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">  Center for Fundamental Research: Metal Structures in Four Dimensions;</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">  Risoe National Laboratory;</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">  Frederiksborgvej 399;</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">  DK-4000 Roskilde;</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring">  email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">* Jon Wright:</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-docstring">  European Synchrotron Radiation Facility;</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">  Grenoble (France)</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-docstring">         </tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring">marccdimage can read MarCCD and MarMosaic images including header info.</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring">JPW : Use a parser in case of typos (sorry?)</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-comment"># Base this on the tifimage (as marccd seems to be tiff with a </tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-comment"># special header </tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module fabio.tifimage=fabio.tifimage-module.html,Class fabio.tifimage.tifimage=fabio.tifimage.tifimage-class.html"><a title="fabio.tifimage
+fabio.tifimage.tifimage" class="py-name" href="#" onclick="return doclink('link-0', 'tifimage', 'link-0');">tifimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name"><a title="fabio.tifimage
+fabio.tifimage.tifimage" class="py-name" href="#" onclick="return doclink('link-1', 'tifimage', 'link-0');">tifimage</a></tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-2', 'logger', 'link-2');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"marccdimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-comment"># Now for the c definition (found on mar webpage)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-comment"># The following string is therefore copyrighted by Mar I guess</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable fabio.marccdimage.CDEFINITION=fabio.marccdimage-module.html#CDEFINITION"><a title="fabio.marccdimage.CDEFINITION" class="py-name" href="#" onclick="return doclink('link-3', 'CDEFINITION', 'link-3');">CDEFINITION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"""</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-string">typedef struct frame_header_type {</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-string">         /* File/header format parameters (256 bytes) */</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-string">         UINT32        header_type;  /* flag for header type  </tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-string">                                           (can be  used as magic number) */</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-string">         char header_name[16];           /* header name (MMX) */</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-string">         UINT32        header_major_version;   /* header_major_version  (n.) */</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-string">         UINT32        header_minor_version;   /* header_minor_version  (.n) */</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-string">         UINT32        header_byte_order;/* BIG_ENDIAN (Motorola,MIPS);  </tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-string">                                            LITTLE_ENDIAN (DEC, Intel) */</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-string">         UINT32        data_byte_order;  /* BIG_ENDIAN (Motorola,MIPS);  </tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-string">                                            LITTLE_ENDIAN (DEC, Intel) */</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-string">         UINT32        header_size;      /* in bytes                     */</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-string">         UINT32        frame_type;       /* flag for frame type */</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-string">         UINT32        magic_number;     /* to be used as a flag - </tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-string">                                            usually  to indicate new file */</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-string">         UINT32        compression_type; /* type of image compression    */</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-string">         UINT32        compression1;     /* compression parameter 1 */</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"><tt class="py-string">         UINT32        compression2;     /* compression parameter 2 */</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-string">         UINT32        compression3;     /* compression parameter 3 */</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-string">         UINT32        compression4;     /* compression parameter 4 */</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-string">         UINT32        compression5;     /* compression parameter 4 */</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-string">         UINT32        compression6;     /* compression parameter 4 */</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-string">         UINT32        nheaders;         /* total number of headers      */</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-string">         UINT32        nfast;            /* number of pixels in one line */</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-string">         UINT32        nslow;            /* number of lines in image     */</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-string">         UINT32        depth;            /* number of bytes per pixel    */</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-string">         UINT32        record_length;    /* number of pixels between </tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-string">                                            succesive rows */</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-string">         UINT32        signif_bits;      /* true depth of data, in bits  */</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-string">         UINT32        data_type;        /* (signed,unsigned,float...) */</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-string">         UINT32        saturated_value;  /* value marks pixel as saturated */</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-string">         UINT32        sequence;         /* TRUE or FALSE */</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-string">         UINT32        nimages;          /* total number of images - size of </tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-string">                                            each is nfast*(nslow/nimages) */</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-string">         UINT32        origin;           /* corner of origin             */</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-string">         UINT32        orientation;      /* direction of fast axis       */</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-string">         UINT32        view_direction;   /* direction to view frame      */</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-string">         UINT32        overflow_location;/* FOLLOWING_HEADER,  FOLLOWING_DATA */</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-string">         UINT32        over_8_bits;      /* # of pixels with counts  255 */</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"><tt class="py-string">         UINT32        over_16_bits;     /* # of pixels with count  65535 */</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-string">         UINT32        multiplexed;      /* multiplex flag */</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-string">         UINT32        nfastimages;      /* # of images in fast direction */</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-string">         UINT32        nslowimages;      /* # of images in slow direction */</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-string">         UINT32        background_applied;/* flags correction has been applied </tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-string">                                              hold magic number ? */</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt class="py-string">         UINT32        bias_applied;     /* flags correction has been applied</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt class="py-string">                                             hold magic number ? */</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"><tt class="py-string">         UINT32        flatfield_applied;/* flags correction has been applied -</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"><tt class="py-string">                                              hold magic number ? */</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt class="py-string">         UINT32        distortion_applied;/*flags correction has been applied - </tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-string">                                              hold magic number ? */</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-string">         UINT32        original_header_type;    /* Header/frame type from  file </tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-string">                                                    that frame is read from */</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-string">         UINT32        file_saved;         /* Flag that file has been  saved, </tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-string">                                              should be zeroed if modified */</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-string">         char reserve1[(64-40)*sizeof(INT32)-16];</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-string">         /* Data statistics (128) */</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-string">         UINT32        total_counts[2];  /* 64 bit integer range = 1.85E19*/</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-string">         UINT32        special_counts1[2];</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-string">         UINT32        special_counts2[2];</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-string">         UINT32        min;</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-string">         UINT32        max;</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-string">         UINT32        mean;</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-string">         UINT32        rms;</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"><tt class="py-string">         UINT32        p10;</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-string">         UINT32        p90;</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-string">         UINT32        stats_uptodate;</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-string">         UINT32        pixel_noise[MAXIMAGES]; /*1000*base noise value (ADUs) */</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-string">         char reserve2[(32-13-MAXIMAGES)*sizeof(INT32)];</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-string">         /* More statistics (256) */</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-string">         UINT16 percentile[128];</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-string">         /* Goniostat parameters (128 bytes) */</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-string">         INT32 xtal_to_detector;  /* 1000*distance in millimeters */</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt class="py-string">         INT32 beam_x;            /* 1000*x beam position (pixels) */</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-string">         INT32 beam_y;            /* 1000*y beam position (pixels) */</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-string">         INT32 integration_time;  /* integration time in  milliseconds */</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-string">         INT32 exposure_time;     /* exposure time in milliseconds */</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-string">         INT32 readout_time;      /* readout time in milliseconds */</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-string">         INT32 nreads;            /* number of readouts to get this  image */</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-string">         INT32 start_twotheta;    /* 1000*two_theta angle */</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-string">         INT32 start_omega;       /* 1000*omega angle */</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-string">         INT32 start_chi;         /* 1000*chi angle */</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-string">         INT32 start_kappa;       /* 1000*kappa angle */</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-string">         INT32 start_phi;         /* 1000*phi angle */</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-string">         INT32 start_delta;       /* 1000*delta angle */</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-string">         INT32 start_gamma;       /* 1000*gamma angle */</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-string">         INT32 start_xtal_to_detector; /* 1000*distance in mm (dist in um)*/</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-string">         INT32 end_twotheta;           /* 1000*two_theta angle */</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-string">         INT32 end_omega;              /* 1000*omega angle */</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-string">         INT32 end_chi;                /* 1000*chi angle */</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-string">         INT32 end_kappa;              /* 1000*kappa angle */</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-string">         INT32 end_phi;                /* 1000*phi angle */</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-string">         INT32 end_delta;              /* 1000*delta angle */</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-string">         INT32 end_gamma;              /* 1000*gamma angle */</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-string">         INT32 end_xtal_to_detector;   /* 1000*distance in mm (dist in um)*/</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-string">         INT32 rotation_axis;          /* active rotation axis */</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-string">         INT32 rotation_range;         /* 1000*rotation angle */</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-string">         INT32 detector_rotx;          /* 1000*rotation of detector  around X */</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-string">         INT32 detector_roty;          /* 1000*rotation of detector  around Y */</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-string">         INT32 detector_rotz;          /* 1000*rotation of detector  around Z */</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-string">         char reserve3[(32-28)*sizeof(INT32)];</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-string">         /* Detector parameters (128 bytes) */</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-string">         INT32 detector_type;            /* detector type */</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-string">         INT32 pixelsize_x;              /* pixel size (nanometers) */</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-string">         INT32 pixelsize_y;              /* pixel size (nanometers) */</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-string">         INT32 mean_bias;                        /* 1000*mean bias value */</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-string">         INT32 photons_per_100adu;       /* photons / 100 ADUs */</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-string">         INT32 measured_bias[MAXIMAGES];/* 1000*mean bias value for each image*/</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-string">         INT32 measured_temperature[MAXIMAGES];  /* Temperature of each  </tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-string">                                                    detector in milliKelvins */</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-string">         INT32 measured_pressure[MAXIMAGES]; /* Pressure of each  chamber </tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-string">                                               in microTorr */</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-string">         /* Retired reserve4 when MAXIMAGES set to 9 from 16 and </tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-string">            two fields removed, and temp and pressure added</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-string">          char reserve4[(32-(5+3*MAXIMAGES))*sizeof(INT32)]</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-string">         */</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-string">         /* X-ray source and optics parameters (128 bytes) */</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-string">         /* X-ray source parameters (8*4 bytes) */</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_type;              /* (code) - target, synch. etc */</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_dx;                /* Optics param. - (size  microns) */</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_dy;                /* Optics param. - (size  microns) */</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_wavelength;        /* wavelength  (femtoMeters) */</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_power;             /* (Watts) */</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_voltage;           /* (Volts) */</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_current;           /* (microAmps) */</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_bias;              /* (Volts) */</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_polarization_x;    /* () */</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"><tt class="py-string">         INT32 source_polarization_y;    /* () */</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-string">         char reserve_source[4*sizeof(INT32)];</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-string">         /* X-ray optics_parameters (8*4 bytes) */</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_type;              /* Optics type (code)*/</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_dx;                /* Optics param. - (size  microns) */</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_dy;                /* Optics param. - (size  microns) */</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_wavelength;        /* Optics param. - (size  microns) */</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_dispersion;        /* Optics param. - (*10E6) */</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_crossfire_x;       /* Optics param. - (microRadians) */</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_crossfire_y;       /* Optics param. - (microRadians) */</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_angle;             /* Optics param. - (monoch.  </tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-string">                                                    2theta - microradians) */</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_polarization_x;    /* () */</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line"><tt class="py-string">         INT32 optics_polarization_y;    /* () */</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"><tt class="py-string">         char reserve_optics[4*sizeof(INT32)];</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"><tt class="py-string">         char reserve5[((32-28)*sizeof(INT32))];</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-string">         /* File parameters (1024 bytes) */</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-string">         char filetitle[128];            /*  Title                  */</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-string">         char filepath[128];             /* path name for data  file  */</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-string">         char filename[64];              /* name of data  file  */</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"><tt class="py-string">         char acquire_timestamp[32];     /* date and time of  acquisition */</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-string">         char header_timestamp[32];      /* date and time of header  update  */</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-string">         char save_timestamp[32];        /* date and time file  saved */</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"><tt class="py-string">         char file_comments[512];        /* comments, use as desired   */</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt class="py-string">         char reserve6[1024-(128+128+64+(3*32)+512)];</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"><tt class="py-string">         /* Dataset parameters (512 bytes) */</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"><tt class="py-string">         char dataset_comments[512];     /* comments, used as desired   */</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"><tt class="py-string">         /* pad out to  3072 bytes */</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"><tt class="py-string">         char pad[3072-(256+128+256+(3*128)+1024+512)];     </tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"><tt class="py-string">         } frame_header;</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"><tt class="py-string">"""</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">struct</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line"> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"><tt class="py-comment"># Convert mar c header file types to python struct module types</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable fabio.marccdimage.C_TO_STRUCT=fabio.marccdimage-module.html#C_TO_STRUCT"><a title="fabio.marccdimage.C_TO_STRUCT" class="py-name" href="#" onclick="return doclink('link-4', 'C_TO_STRUCT', 'link-4');">C_TO_STRUCT</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">    <tt class="py-string">"INT32"</tt>  <tt class="py-op">:</tt> <tt class="py-string">"i"</tt><tt class="py-op">,</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">    <tt class="py-string">"UINT32"</tt> <tt class="py-op">:</tt> <tt class="py-string">"I"</tt><tt class="py-op">,</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">    <tt class="py-string">"char"</tt>   <tt class="py-op">:</tt> <tt class="py-string">"c"</tt><tt class="py-op">,</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt class="py-string">"UINT16"</tt> <tt class="py-op">:</tt> <tt class="py-string">"H"</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"><tt class="py-comment"># Sizes (bytes) of mar c header objects</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable fabio.marccdimage.C_SIZES=fabio.marccdimage-module.html#C_SIZES"><a title="fabio.marccdimage.C_SIZES" class="py-name" href="#" onclick="return doclink('link-5', 'C_SIZES', 'link-5');">C_SIZES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">    <tt class="py-string">"INT32"</tt>  <tt class="py-op">:</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">    <tt class="py-string">"UINT32"</tt> <tt class="py-op">:</tt> <tt class="py-number">4</tt><tt class="py-op">,</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">    <tt class="py-string">"char"</tt>   <tt class="py-op">:</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">    <tt class="py-string">"UINT16"</tt> <tt class="py-op">:</tt> <tt class="py-number">2</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"><tt class="py-comment"># This was worked out by trial and error from a trial image I think</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable fabio.marccdimage.MAXIMAGES=fabio.marccdimage-module.html#MAXIMAGES"><a title="fabio.marccdimage.MAXIMAGES" class="py-name" href="#" onclick="return doclink('link-6', 'MAXIMAGES', 'link-6');">MAXIMAGES</a></tt> <tt class="py-op">=</tt> <tt class="py-number">9</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"> </tt>
+<a name="make_format"></a><div id="make_format-def"><a name="L226"></a><tt class="py-lineno">226</tt> <a class="py-toggle" href="#" id="make_format-toggle" onclick="return toggle('make_format');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.marccdimage-module.html#make_format">make_format</a><tt class="py-op">(</tt><tt class="py-param">c_def_string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="make_format-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="make_format-expanded"><a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line"><tt class="py-docstring">    Reads the header definition in c and makes the format </tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"><tt class="py-docstring">    string to pass to struct.unpack</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">    <tt id="link-7" class="py-name" targets="Variable fabio.fabioutils.lines=fabio.fabioutils-module.html#lines"><a title="fabio.fabioutils.lines" class="py-name" href="#" onclick="return doclink('link-7', 'lines', 'link-7');">lines</a></tt> <tt class="py-op">=</tt> <tt class="py-name">c_def_string</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt clas [...]
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">    <tt class="py-name">fmt</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">    <tt class="py-name">names</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">    <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt id="link-8" class="py-name"><a title="fabio.fabioutils.lines" class="py-name" href="#" onclick="return doclink('link-8', 'lines', 'link-7');">lines</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">";"</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">            <tt class="py-keyword">continue</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-name">decl</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">";"</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">lstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op"> [...]
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">decl</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">            <tt id="link-9" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-9', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"skipping: %s"</tt> <tt class="py-op">,</tt> <tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">            <tt class="py-keyword">continue</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">name</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"["</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">            <tt class="py-comment"># repeated ... times</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">                <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">name</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"["</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"]"</tt><tt cl [...]
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">                <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">num</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">"MAXIMAGES"</tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabi [...]
+str" class="py-name" href="#" onclick="return doclink('link-10', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="fabio.marccdimage.MAXIMAGES" class="py-name" href="#" onclick="return doclink('link-11', 'MAXIMAGES', 'link-6');">MAXIMAGES</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">                <tt class="py-name">num</tt> <tt class="py-op">=</tt> <tt class="py-name">num</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">"sizeof(INT32)"</tt><tt class="py-op">,</tt> <tt class="py-string">"4"</tt><tt class="py-op">)</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">                <tt class="py-name">times</tt> <tt class="py-op">=</tt> <tt class="py-name">eval</tt><tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">)</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">                <tt id="link-12" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-12', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"%s Please decode %s"</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">,</tt> <tt class="py-name">decl</tt><tt class="py-op">)</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">error</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">            <tt class="py-name">times</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">            <tt class="py-name">fmt</tt> <tt class="py-op">+=</tt> <tt id="link-13" class="py-name"><a title="fabio.marccdimage.C_TO_STRUCT" class="py-name" href="#" onclick="return doclink('link-13', 'C_TO_STRUCT', 'link-4');">C_TO_STRUCT</a></tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-name">times</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">            <tt class="py-name">names</tt> <tt class="py-op">+=</tt> <tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-name">times</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">            <tt class="py-name">expected</tt> <tt class="py-op">+=</tt> <tt id="link-14" class="py-name"><a title="fabio.marccdimage.C_SIZES" class="py-name" href="#" onclick="return doclink('link-14', 'C_SIZES', 'link-5');">C_SIZES</a></tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-name">times</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">            <tt class="py-keyword">continue</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">names</tt><tt class="py-op">,</tt> <tt class="py-name">fmt</tt> </tt>
+</div><a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-comment"># Make these be compiled on loading module</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"><tt id="link-15" class="py-name" targets="Variable fabio.marccdimage.HEADER_NAMES=fabio.marccdimage-module.html#HEADER_NAMES"><a title="fabio.marccdimage.HEADER_NAMES" class="py-name" href="#" onclick="return doclink('link-15', 'HEADER_NAMES', 'link-15');">HEADER_NAMES</a></tt><tt class="py-op">,</tt> <tt id="link-16" class="py-name" targets="Variable fabio.marccdimage.HEADER_FORMAT=fabio.marccdimage-module.html#HEADE [...]
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"> </tt>
+<a name="interpret_header"></a><div id="interpret_header-def"><a name="L268"></a><tt class="py-lineno">268</tt> <a class="py-toggle" href="#" id="interpret_header-toggle" onclick="return toggle('interpret_header');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.marccdimage-module.html#interpret_header">interpret_header</a><tt class="py-op">(</tt><tt class="py-param">header</tt><tt class="py-op">,</tt> <tt class="py-param">fmt</tt><tt class="p [...]
+</div><div id="interpret_header-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="interpret_header-expanded"><a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"><tt class="py-docstring">    given a format and header interpret it</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">    <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method fabio.edfimage.edfimage.unpack()=fabio.edfimage.edfimage-class.html#unpack,Method fabio.tifimage.Image_File_Directory.unpack()=fabio.tifimage.Image_File_Directory-class.html#unpack,Method fabio.tifimage.Image_File_Directory_entry.unpack()=fabio.tifimage.Im [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-19', 'unpack', 'link-19');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">fmt</tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-20', 'header', 'link-20');">header</a></tt><t [...]
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">    <tt class="py-name">hdr</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">    <tt id="link-21" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-21', 'i', 'link-21');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">names</tt><tt class="py-op">:</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hdr</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">values</tt><tt class="py-op">[</tt><tt id="link-22" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-22', 'i', 'link-21');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-o [...]
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">                <tt class="py-name">hdr</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">hdr</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">values</tt><tt class="py-op">[</tt><tt id="link-23" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#"  [...]
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">                    <tt class="py-name">hdr</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">values</tt><tt class="py-op">[</tt><tt id="link-24" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-24', 'i', 'link-21');">i</a></tt><tt class=" [...]
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">                    <tt class="py-name">hdr</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">hdr</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">values</tt><tt class="py-op">[</tt><tt id="link-25" class="py-name"><a title="fabio.fabioutils.i [...]
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">            <tt class="py-name">hdr</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">values</tt><tt class="py-op">[</tt><tt id="link-26" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-26', 'i', 'link-21');">i</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">        <tt id="link-27" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-27', 'i', 'link-21');">i</a></tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-28', 'i', 'link-21');">i</a></tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">hdr</tt> </tt>
+</div><a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line"> </tt>
+<a name="marccdimage"></a><div id="marccdimage-def"><a name="L291"></a><tt class="py-lineno">291</tt> <a class="py-toggle" href="#" id="marccdimage-toggle" onclick="return toggle('marccdimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.marccdimage.marccdimage-class.html">marccdimage</a><tt class="py-op">(</tt><tt class="py-base-class">tifimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="marccdimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="marccdimage-expanded"><a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">    <tt class="py-docstring">""" Read in data in mar ccd format, also </tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"><tt class="py-docstring">        MarMosaic images, including header info """</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line"> </tt>
+<a name="marccdimage._readheader"></a><div id="marccdimage._readheader-def"><a name="L296"></a><tt class="py-lineno">296</tt> <a class="py-toggle" href="#" id="marccdimage._readheader-toggle" onclick="return toggle('marccdimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.marccdimage.marccdimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class= [...]
+</div><div id="marccdimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="marccdimage._readheader-expanded"><a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"><tt class="py-docstring">        Parser based approach</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"><tt class="py-docstring">        Gets all entries</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-29', 'seek', 'link-29');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">1024</tt><tt class="py-op">)</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-name">hstr</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDima [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-30', 'read', 'link-30');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">3072</tt><tt class="py-op">)</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-31', 'header', 'link-20');">header</a></tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name" targets="Function fabio.marccdimage.interpret_header()=fabio.marccdimage-module.html#interpret_header"><a title="fabio.marccdima [...]
+</div><a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line"> </tt>
+<a name="marccdimage._read"></a><div id="marccdimage._read-def"><a name="L307"></a><tt class="py-lineno">307</tt> <a class="py-toggle" href="#" id="marccdimage._read-toggle" onclick="return toggle('marccdimage._read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.marccdimage.marccdimage-class.html#_read">_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-o [...]
+</div><div id="marccdimage._read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="marccdimage._read-expanded"><a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line"><tt class="py-docstring">        inherited from tifimage</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line"><tt class="py-docstring">        ... a marccd image *is a* tif image</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line"><tt class="py-docstring">        just with a header</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-35" class="py-name"><a title="fabio.tifimage
+fabio.tifimage.tifimage" class="py-name" href="#" onclick="return doclink('link-35', 'tifimage', 'link-0');">tifimage</a></tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-36', 'read', 'link-30');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.marccdimage.marccdimage-class.html b/epydoc/fabio.marccdimage.marccdimage-class.html
new file mode 100644
index 0000000..871c0ce
--- /dev/null
+++ b/epydoc/fabio.marccdimage.marccdimage-class.html
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.marccdimage.marccdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.marccdimage-module.html">Module marccdimage</a> ::
+        Class marccdimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.marccdimage.marccdimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class marccdimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.marccdimage-pysrc.html#marccdimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+        
+                    |        
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+    
+                        |    
+        <a href="fabio.tifimage.tifimage-class.html">tifimage.tifimage</a> --+
+                            |
+                           <strong class="uidshort">marccdimage</strong>
+</pre>
+
+<hr />
+<p>Read in data in mar ccd format, also MarMosaic images, including 
+  header info</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.marccdimage.marccdimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Parser based approach Gets all entries</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.marccdimage-pysrc.html#marccdimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.marccdimage.marccdimage-class.html#_read" class="summary-sig-name" onclick="show_private();">_read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      inherited from tifimage ...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.marccdimage-pysrc.html#marccdimage._read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.tifimage.tifimage-class.html">tifimage.tifimage</a></code></b>:
+      <code><a href="fabio.tifimage.tifimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.tifimage.tifimage-class.html#read">read</a></code>,
+      <code><a href="fabio.tifimage.tifimage-class.html#write">write</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.tifimage.tifimage-class.html">tifimage.tifimage</a></code></b> (private):
+      <code><a href="fabio.tifimage.tifimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.marccdimage-pysrc.html#marccdimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Parser based approach Gets all entries</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_read"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.marccdimage-pysrc.html#marccdimage._read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>inherited from tifimage ... a marccd image *is a* tif image just with 
+  a header</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.mytest-module.html b/epydoc/fabio.mytest-module.html
new file mode 100644
index 0000000..09b01c1
--- /dev/null
+++ b/epydoc/fabio.mytest-module.html
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.mytest</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module mytest
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.mytest-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module mytest</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.mytest-pysrc.html">source code</a></span></p>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 14 18:43:09 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.mytest-pysrc.html b/epydoc/fabio.mytest-pysrc.html
new file mode 100644
index 0000000..52f47e8
--- /dev/null
+++ b/epydoc/fabio.mytest-pysrc.html
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.mytest</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module mytest
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.mytest-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.mytest-module.html">Module fabio.mytest</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">1</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Module fabio.fabioutils=fabio.fabioutils-module.html"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-0', 'fabioutils', 'link-0');">fabioutils</a></tt> </tt>
+<a name="L2"></a><tt class="py-lineno">2</tt>  <tt class="py-line"><tt id="link-1" class="py-name"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-1', 'fabioutils', 'link-0');">fabioutils</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Function fabio.fabioutils.deconstruct_filename()=fabio.fabioutils-module.html#deconstruct_filename"><a title="fabio.fabioutils.deconstruct_filename" class="py-name" href="#" onclick="return doclin [...]
+<a name="L3"></a><tt class="py-lineno">3</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Thu Mar 14 18:43:10 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.openimage-module.html b/epydoc/fabio.openimage-module.html
new file mode 100644
index 0000000..94710af
--- /dev/null
+++ b/epydoc/fabio.openimage-module.html
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.openimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module openimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.openimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module openimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.openimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:henning.sorensen at risoe.dk
+
+mods for fabio by JPW
+
+</pre>
+
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="do_magic"></a><span class="summary-sig-name">do_magic</span>(<span class="summary-sig-arg">byts</span>)</span><br />
+      Try to interpret the bytes starting the file as a magic number</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.openimage-pysrc.html#do_magic">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="openimage"></a><span class="summary-sig-name">openimage</span>(<span class="summary-sig-arg">filename</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Try to open an image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.openimage-pysrc.html#openimage">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="openheader"></a><span class="summary-sig-name">openheader</span>(<span class="summary-sig-arg">filename</span>)</span><br />
+      return only the header</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.openimage-pysrc.html#openheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_openimage"></a><span class="summary-sig-name">_openimage</span>(<span class="summary-sig-arg">filename</span>)</span><br />
+      determine which format for a filename and return appropriate class 
+      which can be used for opening the image</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.openimage-pysrc.html#_openimage">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("openimage")">logging.getLogger("openimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.openimage-module.html#MAGIC_NUMBERS" class="summary-name">MAGIC_NUMBERS</a> = <code title="[('FORMAT :        86', 'bruker'),
+ ('MM\x00*', 'tif'),
+ ('II*\x00\x08\x00', 'marccd'),
+ ('II*\x00\x82\x00', 'pilatus'),
+ ('II*\x00', 'tif'),
+ ('{\nHEA', 'adsc'),
+ ('{', 'edf'),
+ ('\r{', 'edf'),
+..."><code class="variable-group">[</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">FORMAT :        86</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">bruker</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code><code class="variable-q [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="MAGIC_NUMBERS"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">MAGIC_NUMBERS</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">FORMAT :        86</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">bruker</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">MM\x00*</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">tif</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">II*\x00\x08\x00</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">marccd</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">II*\x00\x82\x00</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">pilatus</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">II*\x00</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">tif</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">{\nHEA</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">adsc</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">{</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">edf</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">\r{</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">edf</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.openimage-pysrc.html b/epydoc/fabio.openimage-pysrc.html
new file mode 100644
index 0000000..277e360
--- /dev/null
+++ b/epydoc/fabio.openimage-pysrc.html
@@ -0,0 +1,665 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.openimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module openimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.openimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.openimage-module.html">Module fabio.openimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">         Center for Fundamental Research: Metal Structures in Four Dimensions</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">         Risoe National Laboratory</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">         Frederiksborgvej 399</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">         DK-4000 Roskilde</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">         email:henning.sorensen at risoe.dk</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">mods for fabio by JPW</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"openimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioutils=fabio.fabioutils-module.html"><a title="fabio.fabioutils" class="py-name" href="#" onclick="return doclink('link-1', 'fabioutils', 'link-1');">fabioutils</a></tt>  <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class fabio.fabioutils.FilenameObject=fabio.fabioutils.FilenameObject-class.html"><a [...]
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-3', 'fabioimage', 'link-3');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-4', 'fabioimage', 'link-3');">fabioimage</a></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Module fabio.edfimage=fabio.edfimage-module.html,Class fabio.edfimage.edfimage=fabio.edfimage.edfimage-class.html"><a title="fabio.edfimage
+fabio.edfimage.edfimage" class="py-name" href="#" onclick="return doclink('link-5', 'edfimage', 'link-5');">edfimage</a></tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Module fabio.adscimage=fabio.adscimage-module.html,Class fabio.adscimage.adscimage=fabio.adscimage.adscimage-class.html"><a title="fabio.adscimage
+fabio.adscimage.adscimage" class="py-name" href="#" onclick="return doclink('link-6', 'adscimage', 'link-6');">adscimage</a></tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Module fabio.tifimage=fabio.tifimage-module.html,Class fabio.tifimage.tifimage=fabio.tifimage.tifimage-class.html"><a title="fabio.tifimage
+fabio.tifimage.tifimage" class="py-name" href="#" onclick="return doclink('link-7', 'tifimage', 'link-7');">tifimage</a></tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-8" class="py-name" targets="Module fabio.marccdimage=fabio.marccdimage-module.html,Class fabio.marccdimage.marccdimage=fabio.marccdimage.marccdimage-class.html"><a title="fabio.marccdimage
+fabio.marccdimage.marccdimage" class="py-name" href="#" onclick="return doclink('link-8', 'marccdimage', 'link-8');">marccdimage</a></tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Module fabio.mar345image=fabio.mar345image-module.html,Class fabio.mar345image.mar345image=fabio.mar345image.mar345image-class.html"><a title="fabio.mar345image
+fabio.mar345image.mar345image" class="py-name" href="#" onclick="return doclink('link-9', 'mar345image', 'link-9');">mar345image</a></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Module fabio.fit2dmaskimage=fabio.fit2dmaskimage-module.html,Class fabio.fit2dmaskimage.fit2dmaskimage=fabio.fit2dmaskimage.fit2dmaskimage-class.html"><a title="fabio.fit2dmaskimage
+fabio.fit2dmaskimage.fit2dmaskimage" class="py-name" href="#" onclick="return doclink('link-10', 'fit2dmaskimage', 'link-10');">fit2dmaskimage</a></tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-11" class="py-name" targets="Module fabio.brukerimage=fabio.brukerimage-module.html,Class fabio.brukerimage.brukerimage=fabio.brukerimage.brukerimage-class.html"><a title="fabio.brukerimage
+fabio.brukerimage.brukerimage" class="py-name" href="#" onclick="return doclink('link-11', 'brukerimage', 'link-11');">brukerimage</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Module fabio.bruker100image=fabio.bruker100image-module.html,Class fabio.bruker100image.bruker100image=fabio.bruker100image.bruker100image-class.html"><a title="fabio.bruker100image
+fabio.bruker100image.bruker100image" class="py-name" href="#" onclick="return doclink('link-12', 'bruker100image', 'link-12');">bruker100image</a></tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-13" class="py-name" targets="Module fabio.pnmimage=fabio.pnmimage-module.html,Class fabio.pnmimage.pnmimage=fabio.pnmimage.pnmimage-class.html"><a title="fabio.pnmimage
+fabio.pnmimage.pnmimage" class="py-name" href="#" onclick="return doclink('link-13', 'pnmimage', 'link-13');">pnmimage</a></tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-14" class="py-name" targets="Module fabio.GEimage=fabio.GEimage-module.html,Class fabio.GEimage.GEimage=fabio.GEimage.GEimage-class.html,Class fabio.GEimage_old.GEimage=fabio.GEimage_old.GEimage-class.html"><a title="fabio.GEimage
+fabio.GEimage.GEimage
+fabio.GEimage_old.GEimage" class="py-name" href="#" onclick="return doclink('link-14', 'GEimage', 'link-14');">GEimage</a></tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Module fabio.OXDimage=fabio.OXDimage-module.html,Class fabio.OXDimage.OXDimage=fabio.OXDimage.OXDimage-class.html"><a title="fabio.OXDimage
+fabio.OXDimage.OXDimage" class="py-name" href="#" onclick="return doclink('link-15', 'OXDimage', 'link-15');">OXDimage</a></tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-16" class="py-name" targets="Module fabio.dm3image=fabio.dm3image-module.html,Class fabio.dm3image.dm3image=fabio.dm3image.dm3image-class.html"><a title="fabio.dm3image
+fabio.dm3image.dm3image" class="py-name" href="#" onclick="return doclink('link-16', 'dm3image', 'link-16');">dm3image</a></tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-17" class="py-name" targets="Module fabio.HiPiCimage=fabio.HiPiCimage-module.html,Class fabio.HiPiCimage.HiPiCimage=fabio.HiPiCimage.HiPiCimage-class.html"><a title="fabio.HiPiCimage
+fabio.HiPiCimage.HiPiCimage" class="py-name" href="#" onclick="return doclink('link-17', 'HiPiCimage', 'link-17');">HiPiCimage</a></tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-18" class="py-name" targets="Module fabio.pilatusimage=fabio.pilatusimage-module.html,Class fabio.pilatusimage.pilatusimage=fabio.pilatusimage.pilatusimage-class.html"><a title="fabio.pilatusimage
+fabio.pilatusimage.pilatusimage" class="py-name" href="#" onclick="return doclink('link-18', 'pilatusimage', 'link-18');">pilatusimage</a></tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-19" class="py-name" targets="Module fabio.fit2dspreadsheetimage=fabio.fit2dspreadsheetimage-module.html,Class fabio.fit2dspreadsheetimage.fit2dspreadsheetimage=fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html"><a title="fabio.fit2dspreadsheetimage
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage" class="py-name" href="#" onclick="return doclink('link-19', 'fit2dspreadsheetimage', 'link-19');">fit2dspreadsheetimage</a></tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-20" class="py-name" targets="Module fabio.kcdimage=fabio.kcdimage-module.html,Class fabio.kcdimage.kcdimage=fabio.kcdimage.kcdimage-class.html"><a title="fabio.kcdimage
+fabio.kcdimage.kcdimage" class="py-name" href="#" onclick="return doclink('link-20', 'kcdimage', 'link-20');">kcdimage</a></tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-21" class="py-name" targets="Module fabio.cbfimage=fabio.cbfimage-module.html,Class fabio.cbfimage.cbfimage=fabio.cbfimage.cbfimage-class.html"><a title="fabio.cbfimage
+fabio.cbfimage.cbfimage" class="py-name" href="#" onclick="return doclink('link-21', 'cbfimage', 'link-21');">cbfimage</a></tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-22" class="py-name" targets="Module fabio.xsdimage=fabio.xsdimage-module.html,Class fabio.xsdimage.xsdimage=fabio.xsdimage.xsdimage-class.html"><a title="fabio.xsdimage
+fabio.xsdimage.xsdimage" class="py-name" href="#" onclick="return doclink('link-22', 'xsdimage', 'link-22');">xsdimage</a></tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-23" class="py-name" targets="Module fabio.binaryimage=fabio.binaryimage-module.html,Class fabio.binaryimage.binaryimage=fabio.binaryimage.binaryimage-class.html"><a title="fabio.binaryimage
+fabio.binaryimage.binaryimage" class="py-name" href="#" onclick="return doclink('link-23', 'binaryimage', 'link-23');">binaryimage</a></tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable fabio.openimage.MAGIC_NUMBERS=fabio.openimage-module.html#MAGIC_NUMBERS"><a title="fabio.openimage.MAGIC_NUMBERS" class="py-name" href="#" onclick="return doclink('link-24', 'MAGIC_NUMBERS', 'link-24');">MAGIC_NUMBERS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">    <tt class="py-comment"># "\42\5a" : 'bzipped'</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">    <tt class="py-comment"># "\1f\8b" : 'gzipped'</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"FORMAT :        86"</tt> <tt class="py-op">,</tt> <tt class="py-string">'bruker'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"\x4d\x4d\x00\x2a"</tt>   <tt class="py-op">,</tt> <tt class="py-string">'tif'</tt><tt class="py-op">)</tt> <tt class="py-op">,</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt class="py-comment"># The marCCD and Pilatus formats are both standard tif with a header</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt class="py-comment"># hopefully these byte patterns are unique for the formats</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">    <tt class="py-comment"># If not the image will be read, but the is missing </tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"\x49\x49\x2a\x00\x08\x00"</tt>   <tt class="py-op">,</tt> <tt class="py-string">'marccd'</tt><tt class="py-op">)</tt> <tt class="py-op">,</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"\x49\x49\x2a\x00\x82\x00"</tt>   <tt class="py-op">,</tt> <tt class="py-string">'pilatus'</tt><tt class="py-op">)</tt> <tt class="py-op">,</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"\x49\x49\x2a\x00"</tt>   <tt class="py-op">,</tt> <tt class="py-string">'tif'</tt><tt class="py-op">)</tt> <tt class="py-op">,</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">    <tt class="py-comment"># ADSC must come before edf</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"{\nHEA"</tt>             <tt class="py-op">,</tt> <tt class="py-string">'adsc'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"{"</tt>                  <tt class="py-op">,</tt> <tt class="py-string">'edf'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"\r{"</tt>                <tt class="py-op">,</tt> <tt class="py-string">'edf'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"\n{"</tt>                <tt class="py-op">,</tt> <tt class="py-string">'edf'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"ADEPT"</tt>              <tt class="py-op">,</tt> <tt class="py-string">'GE'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"OD"</tt>                 <tt class="py-op">,</tt> <tt class="py-string">'OXD'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"IM"</tt>                 <tt class="py-op">,</tt> <tt class="py-string">'HiPiC'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'\x2d\x04'</tt>           <tt class="py-op">,</tt> <tt class="py-string">'mar345'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'\xd2\x04'</tt>           <tt class="py-op">,</tt> <tt class="py-string">'mar345'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'\x04\x2d'</tt>           <tt class="py-op">,</tt> <tt class="py-string">'mar345'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-comment">#some machines may need byteswapping</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'\x04\xd2'</tt>           <tt class="py-op">,</tt> <tt class="py-string">'mar345'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">    <tt class="py-comment"># hint : MASK in 32 bit</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'M\x00\x00\x00A\x00\x00\x00S\x00\x00\x00K\x00\x00\x00'</tt> <tt class="py-op">,</tt> <tt class="py-string">'fit2dmask'</tt><tt class="py-op">)</tt> <tt class="py-op">,</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'\x00\x00\x00\x03'</tt>   <tt class="py-op">,</tt> <tt class="py-string">'dm3'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"No"</tt>                 <tt class="py-op">,</tt> <tt class="py-string">"kcd"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"<"</tt>                  <tt class="py-op">,</tt> <tt class="py-string">"xsd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt class="py-op">]</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"> </tt>
+<a name="do_magic"></a><div id="do_magic-def"><a name="L67"></a><tt class="py-lineno"> 67</tt> <a class="py-toggle" href="#" id="do_magic-toggle" onclick="return toggle('do_magic');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.openimage-module.html#do_magic">do_magic</a><tt class="py-op">(</tt><tt class="py-param">byts</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="do_magic-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="do_magic-expanded"><a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">    <tt class="py-docstring">""" Try to interpret the bytes starting the file as a magic number """</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">magic</tt><tt class="py-op">,</tt> <tt class="py-name">format_type</tt> <tt class="py-keyword">in</tt> <tt id="link-25" class="py-name"><a title="fabio.openimage.MAGIC_NUMBERS" class="py-name" href="#" onclick="return doclink('link-25', 'MAGIC_NUMBERS', 'link-24');">MAGIC_NUMBERS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">byts</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-name">magic</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">format_type</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> <tt class="py-comment"># debugging - bruker needed 18 bytes below</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">            <tt id="link-26" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-26', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"m: %s f: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">magic</tt><tt class="py-op">,</tt> <tt class="py-name">format_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">            <tt id="link-27" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-27', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"bytes: %s len(bytes) %s"</tt><tt class="py-op">,</tt> <tt class="py-name">magic</tt><tt class="py-op">,</tt> <tt id="link-28" class="py-name" targets="Method fabio.file_series.file_series.len()=fabio.file_series.file_series-class.html#len"><a title="fabio.file_series.fil [...]
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">            <tt id="link-29" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-29', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"found: %s"</tt><tt class="py-op">,</tt> <tt class="py-name">byts</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-name">magic</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-30" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-30', 'i', 'link-30');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="fabio.file_series.file_series [...]
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                <tt id="link-32" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-32', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"%s %s %s %s "</tt><tt class="py-op">,</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">magic</tt><tt class="py-op">[</tt><tt id="link-33" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-33', [...]
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Could not interpret magic string"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
+<a name="openimage"></a><div id="openimage-def"><a name="L81"></a><tt class="py-lineno"> 81</tt> <a class="py-toggle" href="#" id="openimage-toggle" onclick="return toggle('openimage');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.openimage-module.html#openimage">openimage</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">frame</tt><tt class="py-op">=</tt><tt class="py-name">None</tt> [...]
+</div><div id="openimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="openimage-expanded"><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-docstring">""" Try to open an image """</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt id="link-37" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-37', 'FilenameObject', 'link-2');">FilenameObject</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt id="link-38" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-38', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Attempting to open %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabiou [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-39', 'tostring', 'link-39');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">            <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt id="link-40" class="py-name" targets="Function fabio.openimage._openimage()=fabio.openimage-module.html#_openimage"><a title="fabio.openimage._openimage" class="py-name" href="#" onclick="return doclink('link-40', '_openimage', 'link-40');">_openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">.</tt><tt id="lin [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-41', 'tostring', 'link-39');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">            <tt id="link-42" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-42', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Attempting to read frame %s from %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">frame</tt><tt class="py-op">,</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">                <tt class="py-name">filename</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-43', 'tostring', 'link-39');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">            <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimag [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-44', 'read', 'link-44');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-45', 'tostring', 'link-39');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">frame</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">            <tt class="py-comment"># multiframe file</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">            <tt class="py-comment">#logger.debug( "DEBUG: multiframe file, start # %d"%(</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">            <tt class="py-comment">#    filename.num)</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt id="link-46" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-46', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Exception %s, trying name %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">ex</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">.</tt><tt class="py-name">stem</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">            <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="fabio.openimage._openimage" class="py-name" href="#" onclick="return doclink('link-47', '_openimage', 'link-40');">_openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">.</tt><tt class="py-name">stem</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">            <tt id="link-48" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-48', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Reading frame %s from %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">.</tt><tt class="py-name">num</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">.</tt><tt class="py-name">stem [...]
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">            <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-49', 'read', 'link-44');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">.</tt><tt class="py-name">stem</tt><tt class="py-op">,</tt> <tt class="py-name">frame</tt><tt class="py-op">=</tt><tt class="py-name">filename</tt><tt class="py-op">.</tt><tt class="py-name">num</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt id="link-50" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-50', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Attempting to open %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name"><a title="fabio.openimage._openimage" class="py-name" href="#" onclick="return doclink('link-51', '_openimage', 'link-40');">_openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt id="link-52" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-52', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Attempting to read frame %s from %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">frame</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-53', 'read', 'link-44');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">frame</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">obj</tt> </tt>
+</div><a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"> </tt>
+<a name="openheader"></a><div id="openheader-def"><a name="L106"></a><tt class="py-lineno">106</tt> <a class="py-toggle" href="#" id="openheader-toggle" onclick="return toggle('openheader');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.openimage-module.html#openheader">openheader</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="openheader-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="openheader-expanded"><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">    <tt class="py-docstring">""" return only the header"""</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">    <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="fabio.openimage._openimage" class="py-name" href="#" onclick="return doclink('link-54', '_openimage', 'link-40');">_openimage</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">    <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Method fabio.fabioimage.fabioimage.readheader()=fabio.fabioimage.fabioimage-class.html#readheader"><a title="fabio.fabioimage.fabioimage.readheader" class="py-name" href="#" onclick="return doclink('link-55', 'readheader', 'link-55');">readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class=" [...]
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">obj</tt> </tt>
+</div><a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="_openimage"></a><div id="_openimage-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="_openimage-toggle" onclick="return toggle('_openimage');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.openimage-module.html#_openimage">_openimage</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_openimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_openimage-expanded"><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-docstring">""" </tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">    determine which format for a filename</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">    and return appropriate class which can be used for opening the image</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-name">imo</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-56', 'fabioimage', 'link-3');">fabioimage</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">byts</tt> <tt class="py-op">=</tt> <tt class="py-name">imo</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-57', '_open', 'link-57');">_open</a></tt><tt class="py-op">(</tt><tt class= [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-58', 'read', 'link-44');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">18</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-name">filetype</tt> <tt class="py-op">=</tt> <tt id="link-59" class="py-name" targets="Function fabio.openimage.do_magic()=fabio.openimage-module.html#do_magic"><a title="fabio.openimage.do_magic" class="py-name" href="#" onclick="return doclink('link-59', 'do_magic', 'link-59');">do_magic</a></tt><tt class="py-op">(</tt><tt class="py-name">byts</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">filetype</tt> <tt class="py-op">==</tt> <tt class="py-string">"marccd"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">filename</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"mccd"</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt clas [...]
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">            <tt class="py-comment"># Cannot see a way around this. Need to find something</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">            <tt class="py-comment"># to distinguish mccd from regular tif...</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">            <tt class="py-name">filetype</tt> <tt class="py-op">=</tt> <tt class="py-string">"tif"</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt id="link-60" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-60', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"%s: File probably does not exist"</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">error</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-name">file_obj</tt> <tt class="py-op">=</tt> <tt id="link-61" class="py-name"><a title="fabio.fabioutils.FilenameObject" class="py-name" href="#" onclick="return doclink('link-61', 'FilenameObject', 'link-2');">FilenameObject</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">=</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">file_obj</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to deconstruct filename"</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">file_obj</tt><tt class="py-op">.</tt><tt class="py-name">format</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt>\ </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">                <tt id="link-62" class="py-name"><a title="fabio.file_series.file_series.len" class="py-name" href="#" onclick="return doclink('link-62', 'len', 'link-28');">len</a></tt><tt class="py-op">(</tt><tt class="py-name">file_obj</tt><tt class="py-op">.</tt><tt class="py-name">format</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">                <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">file_obj</tt><tt class="py-op">.</tt><tt class="py-name">format</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"list"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">                <tt class="py-comment"># one of OXD/ ADSC - should have got in previous</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"openimage failed on magic bytes & name guess"</tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">            <tt class="py-name">filetype</tt> <tt class="py-op">=</tt> <tt class="py-name">file_obj</tt><tt class="py-op">.</tt><tt class="py-name">format</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt class="py-comment">#UNUSED filenumber = file_obj.num</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">            <tt id="link-63" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-63', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">            <tt class="py-keyword">import</tt> <tt class="py-name">traceback</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">            <tt class="py-name">traceback</tt><tt class="py-op">.</tt><tt class="py-name">print_exc</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Fabio could not identify "</tt> <tt class="py-op">+</tt> <tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">    <tt class="py-name">klass_name</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">filetype</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'image'</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">    <tt class="py-name">module</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">modules</tt><tt class="py-op">.</tt><tt class="py-name">get</tt><tt class="py-op">(</tt><tt class="py-string">"fabio."</tt> <tt class="py-op">+</tt> <tt class="py-name">klass_name</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">module</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">module</tt><tt class="py-op">,</tt> <tt class="py-name">klass_name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">            <tt class="py-name">klass</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">module</tt><tt class="py-op">,</tt> <tt class="py-name">klass_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Module %s has no image class"</tt> <tt class="py-op">%</tt> <tt class="py-name">module</tt><tt class="py-op">)</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Filetype not known %s %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">klass_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">    <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">klass</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">    <tt class="py-comment"># skip the read for read header</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">obj</tt> </tt>
+</div><a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:42 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.pdf b/epydoc/fabio.pdf
new file mode 100644
index 0000000..b222eea
Binary files /dev/null and b/epydoc/fabio.pdf differ
diff --git a/epydoc/fabio.pilatusimage-module.html b/epydoc/fabio.pilatusimage-module.html
new file mode 100644
index 0000000..bfd40c2
--- /dev/null
+++ b/epydoc/fabio.pilatusimage-module.html
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.pilatusimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module pilatusimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.pilatusimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module pilatusimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.pilatusimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.pilatusimage.pilatusimage-class.html" class="summary-name">pilatusimage</a><br />
+      Read in Pilatus format, also pilatus images, including header info
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.pilatusimage-pysrc.html b/epydoc/fabio.pilatusimage-pysrc.html
new file mode 100644
index 0000000..72f88bc
--- /dev/null
+++ b/epydoc/fabio.pilatusimage-pysrc.html
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.pilatusimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module pilatusimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.pilatusimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.pilatusimage-module.html">Module fabio.pilatusimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-docstring">Authors:</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-docstring">........</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-docstring">* Henning O. Sorensen & Erik Knudsen:</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-docstring">  Center for Fundamental Research: Metal Structures in Four Dimensions;</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-docstring">  Risoe National Laboratory;</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-docstring">  Frederiksborgvej 399;</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-docstring">  DK-4000 Roskilde;</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-docstring">  email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-docstring">* Jon Wright:</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-docstring">  European Synchrotron Radiation Facility;</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-docstring">  Grenoble (France)</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-comment"># Base this on the tifimage (as Pilatus is tiff with a</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-comment"># tiff header</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package fabio=fabio-module.html"><a title="fabio" class="py-name" href="#" onclick="return doclink('link-0', 'fabio', 'link-0');">fabio</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module fabio.tifimage=fabio.tifimage-module.html,Class fabio.tifimage.tifimage=fabio.tifimage.tifimage-class.html"><a title="fabio.tifimage
+fabio.tifimage.tifimage" class="py-name" href="#" onclick="return doclink('link-1', 'tifimage', 'link-1');">tifimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.tifimage
+fabio.tifimage.tifimage" class="py-name" href="#" onclick="return doclink('link-2', 'tifimage', 'link-1');">tifimage</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="pilatusimage"></a><div id="pilatusimage-def"><a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="pilatusimage-toggle" onclick="return toggle('pilatusimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.pilatusimage.pilatusimage-class.html">pilatusimage</a><tt class="py-op">(</tt><tt class="py-base-class">tifimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="pilatusimage-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="pilatusimage-expanded"><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">    <tt class="py-docstring">""" Read in Pilatus format, also </tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"><tt class="py-docstring">        pilatus images, including header info """</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"> </tt>
+<a name="pilatusimage._readheader"></a><div id="pilatusimage._readheader-def"><a name="L31"></a><tt class="py-lineno">31</tt> <a class="py-toggle" href="#" id="pilatusimage._readheader-toggle" onclick="return toggle('pilatusimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pilatusimage.pilatusimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt cl [...]
+</div><div id="pilatusimage._readheader-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="pilatusimage._readheader-expanded"><a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"><tt class="py-docstring">        Parser based approach</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"><tt class="py-docstring">        Gets all entries</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line"> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-3', 'header', 'link-3');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"><tt class="py-comment">#        infile = open(infile)</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-name">hstr</tt> <tt class="py-op">=</tt> <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage. [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-4', 'read', 'link-4');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">4096</tt><tt class="py-op">)</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">        <tt class="py-comment"># well not very pretty - but seems to find start of</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">        <tt class="py-comment"># header information</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">hstr</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'# '</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-5', 'header', 'link-3');">header</a></tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">        <tt class="py-name">hstr</tt> <tt class="py-op">=</tt> <tt class="py-name">hstr</tt><tt class="py-op">[</tt><tt class="py-name">hstr</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-string">'# '</tt><tt class="py-op">)</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-name">hstr</tt> <tt class="py-op">=</tt> <tt class="py-name">hstr</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">hstr</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-string">'\x00'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">        <tt class="py-name">hstr</tt> <tt class="py-op">=</tt> <tt class="py-name">hstr</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'#'</tt><tt class="py-op">)</tt> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-name">go_on</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">go_on</tt><tt class="py-op">:</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line">                <tt class="py-name">hstr</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">                <tt class="py-name">go_on</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">hstr</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">            <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">                <tt class="py-name">dump</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-6', 'header', 'link-3');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">dump</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt c [...]
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">                <tt class="py-name">dump</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-7', 'header', 'link-3');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">dump</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt c [...]
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">                <tt id="link-8" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-8', 'i', 'link-8');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-9', 'header', 'link-3');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt id="link-10" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href [...]
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">                <tt class="py-name">dump</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-12', 'header', 'link-3');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">dump</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt [...]
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-13', 'header', 'link-3');">header</a></tt> </tt>
+</div><a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line"> </tt>
+<a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line"> </tt>
+<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line"> </tt>
+<a name="pilatusimage._read"></a><div id="pilatusimage._read-def"><a name="L75"></a><tt class="py-lineno">75</tt> <a class="py-toggle" href="#" id="pilatusimage._read-toggle" onclick="return toggle('pilatusimage._read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pilatusimage.pilatusimage-class.html#_read">_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class=" [...]
+</div><div id="pilatusimage._read-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="pilatusimage._read-expanded"><a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line"><tt class="py-docstring">        inherited from tifimage</tt> </tt>
+<a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line"><tt class="py-docstring">        ... a Pilatus image *is a* tif image</tt> </tt>
+<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line"><tt class="py-docstring">        just with a header</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-14" class="py-name"><a title="fabio.tifimage
+fabio.tifimage.tifimage" class="py-name" href="#" onclick="return doclink('link-14', 'tifimage', 'link-1');">tifimage</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="fabio.GEimage.GEimage.read
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-15', 'read', 'link-4');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.pilatusimage.pilatusimage-class.html b/epydoc/fabio.pilatusimage.pilatusimage-class.html
new file mode 100644
index 0000000..5eda4f0
--- /dev/null
+++ b/epydoc/fabio.pilatusimage.pilatusimage-class.html
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.pilatusimage.pilatusimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.pilatusimage-module.html">Module pilatusimage</a> ::
+        Class pilatusimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.pilatusimage.pilatusimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class pilatusimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.pilatusimage-pysrc.html#pilatusimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+        
+                    |        
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+    
+                        |    
+        <a href="fabio.tifimage.tifimage-class.html">tifimage.tifimage</a> --+
+                            |
+                           <strong class="uidshort">pilatusimage</strong>
+</pre>
+
+<hr />
+<p>Read in Pilatus format, also pilatus images, including header info</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.pilatusimage.pilatusimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Parser based approach Gets all entries</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pilatusimage-pysrc.html#pilatusimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.pilatusimage.pilatusimage-class.html#_read" class="summary-sig-name" onclick="show_private();">_read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      inherited from tifimage ...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pilatusimage-pysrc.html#pilatusimage._read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.tifimage.tifimage-class.html">tifimage.tifimage</a></code></b>:
+      <code><a href="fabio.tifimage.tifimage-class.html#__init__">__init__</a></code>,
+      <code><a href="fabio.tifimage.tifimage-class.html#read">read</a></code>,
+      <code><a href="fabio.tifimage.tifimage-class.html#write">write</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.tifimage.tifimage-class.html">tifimage.tifimage</a></code></b> (private):
+      <code><a href="fabio.tifimage.tifimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.pilatusimage-pysrc.html#pilatusimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Parser based approach Gets all entries</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_read"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.pilatusimage-pysrc.html#pilatusimage._read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>inherited from tifimage ... a Pilatus image *is a* tif image just with
+  a header</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.pnmimage-module.html b/epydoc/fabio.pnmimage-module.html
new file mode 100644
index 0000000..df9cf8f
--- /dev/null
+++ b/epydoc/fabio.pnmimage-module.html
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.pnmimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module pnmimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.pnmimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module pnmimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.pnmimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:henning.sorensen at risoe.dk
+
+</pre>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.pnmimage.pnmimage-class.html" class="summary-name">pnmimage</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("pnmimage")">logging.getLogger("pnmimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="SUBFORMATS"></a><span class="summary-name">SUBFORMATS</span> = <code title="['P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">P1</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">P2</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable- [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="HEADERITEMS"></a><span class="summary-name">HEADERITEMS</span> = <code title="['SUBFORMAT', 'DIMENSIONS', 'MAXVAL']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">SUBFORMAT</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">DIMENSIONS</code><code class="variable-quote">'</code><code class="variable-op">, </code><code clas [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.pnmimage-module.html#P7HEADERITEMS" class="summary-name">P7HEADERITEMS</a> = <code title="['WIDTH', 'HEIGHT', 'DEPTH', 'MAXVAL', 'TUPLTYPE', 'ENDHDR']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">WIDTH</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">HEIGHT</code><code class="variable-quote">'</code><code class= [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="P7HEADERITEMS"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">P7HEADERITEMS</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">WIDTH</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">HEIGHT</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">DEPTH</code><code class="variable-quote">'</code><code class="variable-op">, </code>< [...]
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.pnmimage-pysrc.html b/epydoc/fabio.pnmimage-pysrc.html
new file mode 100644
index 0000000..3bf9309
--- /dev/null
+++ b/epydoc/fabio.pnmimage-pysrc.html
@@ -0,0 +1,499 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.pnmimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module pnmimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.pnmimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.pnmimage-module.html">Module fabio.pnmimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring">         Center for Fundamental Research: Metal Structures in Four Dimensions</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">         Risoe National Laboratory</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">         Frederiksborgvej 399</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">         DK-4000 Roskilde</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">         email:henning.sorensen at risoe.dk</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"pnmimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-1');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-1');">fabioimage</a></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable fabio.pnmimage.SUBFORMATS=fabio.pnmimage-module.html#SUBFORMATS"><a title="fabio.pnmimage.SUBFORMATS" class="py-name" href="#" onclick="return doclink('link-3', 'SUBFORMATS', 'link-3');">SUBFORMATS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'P1'</tt><tt class="py-op">,</tt> <tt class="py-string">'P2'</tt><tt class="py-op">,</tt> <tt  [...]
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable fabio.pnmimage.HEADERITEMS=fabio.pnmimage-module.html#HEADERITEMS"><a title="fabio.pnmimage.HEADERITEMS" class="py-name" href="#" onclick="return doclink('link-4', 'HEADERITEMS', 'link-4');">HEADERITEMS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'SUBFORMAT'</tt><tt class="py-op">,</tt> <tt class="py-string">'DIMENSIONS'</tt><tt class [...]
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable fabio.pnmimage.P7HEADERITEMS=fabio.pnmimage-module.html#P7HEADERITEMS"><a title="fabio.pnmimage.P7HEADERITEMS" class="py-name" href="#" onclick="return doclink('link-5', 'P7HEADERITEMS', 'link-5');">P7HEADERITEMS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'WIDTH'</tt><tt class="py-op">,</tt> <tt class="py-string">'HEIGHT'</tt><tt cla [...]
+<a name="pnmimage"></a><div id="pnmimage-def"><a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <a class="py-toggle" href="#" id="pnmimage-toggle" onclick="return toggle('pnmimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html">pnmimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="pnmimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="pnmimage-expanded"><a name="pnmimage.__init__"></a><div id="pnmimage.__init__-def"><a name="L24"></a><tt class="py-lineno"> 24</tt> <a class="py-toggle" href="#" id="pnmimage.__init__-toggle" onclick="return toggle('pnmimage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#__init__">__init__</a><tt class=" [...]
+</div><div id="pnmimage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.__init__-expanded"><a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">        <tt id="link-6" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-6', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fabio.adscimage.adscimage-class.html#__init__,Method fabio.binaryimage.binaryimage.__ini [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-7', '__init__', 'link-7');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">        <tt class="py-name">fun</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt id="link-8" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-8', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">,</tt> <tt class="py-string">'__init__'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">        <tt class="py-name">fun</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-9', 'data', 'link-9');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-10', 'header', 'link-10');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'Subformat'</tt><tt clas [...]
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-11', 'dim1', 'link-11');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py- [...]
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">maxval</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stddev</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">minval</tt> <tt  [...]
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Variable fabio.edfimage.edfimage.header_keys=fabio.edfimage.edfimage-class.html#header_keys"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-13', 'header_keys', 'link-13');">header_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op [...]
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-15', 'bytecode', 'link-15');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
+<a name="pnmimage._readheader"></a><div id="pnmimage._readheader-def"><a name="L35"></a><tt class="py-lineno"> 35</tt> <a class="py-toggle" href="#" id="pnmimage._readheader-toggle" onclick="return toggle('pnmimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">f</tt><t [...]
+</div><div id="pnmimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage._readheader-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-comment">#pnm images have a 3-line header but ignore lines starting with '#'</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-comment">#1st line contains the pnm image sub format</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-comment">#2nd line contains the image pixel dimension</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-comment">#3rd line contains the maximum pixel value (at least for grayscale - check this)</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-16', 'header_keys', 'link-13');">header_keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'SUBFORMAT'</tt><tt class="py-op">,</tt> <tt class="py-string">'DIMENSIONS'</tt><tt class="py-op">,</ [...]
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">l</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-17" class="py-name"><a title="fabio.pnmimage.SUBFORMATS" class="py-name" href="#" onclick="return doclink('link-17', 'SUBFORMATS', 'link-3');">SUBFORMATS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'unknown subformat of pnm: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">l</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-18', 'header', 'link-10');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'SUBFORMAT'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">l</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-19', 'header', 'link-10');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'SUBFORMAT'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'P7'</tt><tt class="py [...]
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-20', 'header_keys', 'link-13');">header_keys</a></tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name"><a title="fabio.pnmimage.P7HEADERITEMS" class="py-name" href="#" onclick="return doclink('link-21', 'P7HEADERI [...]
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">            <tt class="py-comment">#this one has a special header</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">            <tt class="py-keyword">while</tt> <tt class="py-string">'ENDHDR'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">l</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">                <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">                <tt class="py-keyword">while</tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'#'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt cl [...]
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">                <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">lsplit</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-22" class="py-name"><a title="fabio.pnmimage.P7HEADERITEMS" class="py-name" href="#" onclick="return doclink('link-22', 'P7HEADERITEMS', 'link-5');">P7HEADERITEMS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'Illegal pam (netpnm p7) headeritem %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-23', 'header', 'link-10');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt  [...]
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-24', 'header_keys', 'link-13');">header_keys</a></tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="fabio.pnmimage.HEADERITEMS" class="py-name" href="#" onclick="return doclink('link-25', 'HEADERITEMS [...]
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.edfimage.header_keys" class="py-name" href="#" onclick="return doclink('link-26', 'header_keys', 'link-13');">header_keys</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt [...]
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">                <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">                <tt class="py-keyword">while</tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'#'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt cl [...]
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-27', 'header', 'link-10');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt> [...]
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">        <tt class="py-comment">#set the dimensions</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt id="link-28" class="py-name" targets="Variable fabio.edfimage.edfimage.dims=fabio.edfimage.edfimage-class.html#dims"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-28', 'dims', 'link-28');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="fabio.edfimag [...]
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-30', 'dim1', 'link-11');">dim1</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return do [...]
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-comment">#figure out how many bytes are used to store the data</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-comment">#case construct here!</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-34', 'header', 'link-10');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'MAXVAL'</tt><tt class="py-op">]</tt>< [...]
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">m</tt> <tt class="py-op"><</tt> <tt class="py-number">256</tt><tt class="py-op">:</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-35', 'bytecode', 'link-15');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">m</tt> <tt class="py-op"><</tt> <tt class="py-number">65536</tt><tt class="py-op">:</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-36', 'bytecode', 'link-15');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">m</tt> <tt class="py-op"><</tt> <tt class="py-number">2147483648L</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-37', 'bytecode', 'link-15');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">            <tt id="link-38" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-38', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'32-bit pixels are not really supported by the netpgm standard'</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-string">'could not figure out what kind of pixels you have'</tt> </tt>
+</div><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
+<a name="pnmimage.read"></a><div id="pnmimage.read-def"><a name="L81"></a><tt class="py-lineno"> 81</tt> <a class="py-toggle" href="#" id="pnmimage.read-toggle" onclick="return toggle('pnmimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py-p [...]
+</div><div id="pnmimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.read-expanded"><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt class="py-docstring">        try to read PNM images</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-docstring">        @param fname: name of the file</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-docstring">        @param frame: not relevant here! PNM is always single framed</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-39', 'header', 'link-10');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-40', 'resetvals', 'link-40');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-41', '_open', 'link-41');">_open</a></tt><tt class="py-op">(</tt><tt clas [...]
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._rea [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-42', '_readheader', 'link-42');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-comment">#read the image data</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">decoder_name</tt> <tt class="py-op">=</tt> <tt class="py-string">"%sdec"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-43', 'header', 'link-10');">header</a></tt><tt class="py-op">[</tt><tt class="py-string">'SUBFORMAT'</tt><tt [...]
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">decoder_name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dir</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name" targets="Module fabio.pnmimage=fabio.pnmimage-module.html,Class fabio.pnmimage.pnmimage=fabio.pnmimage.pnmimage-class.html"><a title="fabio.pnmimage
+fabio.pnmimage.pnmimage" class="py-name" href="#" onclick="return doclink('link-44', 'pnmimage', 'link-44');">pnmimage</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">            <tt class="py-name">decoder</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt id="link-45" class="py-name"><a title="fabio.pnmimage
+fabio.pnmimage.pnmimage" class="py-name" href="#" onclick="return doclink('link-45', 'pnmimage', 'link-44');">pnmimage</a></tt><tt class="py-op">,</tt> <tt class="py-name">decoder_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-46', 'data', 'link-9');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">decoder</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-47', 'bytecode', 'link-15');">bytecode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">"No decoder named %s for file %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">decoder_name</tt><tt class="py-op">,</tt> <tt class="py-name">fname</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-48', 'resetvals', 'link-40');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="pnmimage.P1dec"></a><div id="pnmimage.P1dec-def"><a name="L103"></a><tt class="py-lineno">103</tt> <a class="py-toggle" href="#" id="pnmimage.P1dec-toggle" onclick="return toggle('pnmimage.P1dec');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#P1dec">P1dec</a><tt class="py-op">(</tt><tt class="py-param">buf</tt><tt class="py-op">,</tt> <tt class="py-param">bytecode</tt><tt class="py-op">)</tt><tt cla [...]
+</div><div id="pnmimage.P1dec-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.P1dec-expanded"><a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt id="link-49" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-49', 'data', 'link-9');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-50', 'dim2', 'link-12');">dim2 [...]
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt id="link-52" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-52', 'i', 'link-52');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt class="py-name">buf</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">                <tt id="link-53" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-53', 'data', 'link-9');">data</a></tt><tt class="py-op">[</tt><tt id="link-54" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-54', 'i', 'link-52');">i</a></tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class=" [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-55', 'bytecode', 'link-15');">bytecode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-string">'Size spec in pnm-header does not match size of image data field'</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-56" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-56', 'data', 'link-9');">data</a></tt> </tt>
+</div><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="pnmimage.P4dec"></a><div id="pnmimage.P4dec-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="pnmimage.P4dec-toggle" onclick="return toggle('pnmimage.P4dec');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#P4dec">P4dec</a><tt class="py-op">(</tt><tt class="py-param">buf</tt><tt class="py-op">,</tt> <tt class="py-param">bytecode</tt><tt class="py-op">)</tt><tt cla [...]
+</div><div id="pnmimage.P4dec-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.P4dec-expanded"><a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-string">'single bit (pbm) images are not supported - yet'</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt id="link-57" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-57', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="pnmimage.P2dec"></a><div id="pnmimage.P2dec-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="pnmimage.P2dec-toggle" onclick="return toggle('pnmimage.P2dec');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#P2dec">P2dec</a><tt class="py-op">(</tt><tt class="py-param">buf</tt><tt class="py-op">,</tt> <tt class="py-param">bytecode</tt><tt class="py-op">)</tt><tt cla [...]
+</div><div id="pnmimage.P2dec-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.P2dec-expanded"><a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt id="link-58" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-58', 'data', 'link-9');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-59', 'dim2', 'link-12');">dim2 [...]
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt id="link-61" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-61', 'i', 'link-52');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt class="py-name">buf</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">                <tt id="link-62" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-62', 'data', 'link-9');">data</a></tt><tt class="py-op">[</tt><tt id="link-63" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-63', 'i', 'link-52');">i</a></tt><tt class="py-op">,</tt> <tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class=" [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-64', 'bytecode', 'link-15');">bytecode</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-string">'Size spec in pnm-header does not match size of image data field'</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-65" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-65', 'data', 'link-9');">data</a></tt> </tt>
+</div><a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="pnmimage.P5dec"></a><div id="pnmimage.P5dec-def"><a name="L131"></a><tt class="py-lineno">131</tt> <a class="py-toggle" href="#" id="pnmimage.P5dec-toggle" onclick="return toggle('pnmimage.P5dec');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#P5dec">P5dec</a><tt class="py-op">(</tt><tt class="py-param">buf</tt><tt class="py-op">,</tt> <tt class="py-param">bytecode</tt><tt class="py-op">)</tt><tt cla [...]
+</div><div id="pnmimage.P5dec-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.P5dec-expanded"><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEim [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-66', 'read', 'link-66');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt id="link-67" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-67', 'data', 'link-9');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">,</tt> <tt id="link-68" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-68', 'bytecode', 'link-15');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-69', 'dim2', 'link-12');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class [...]
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-string">'Size spec in pnm-header does not match size of image data field'</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-71" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-71', 'data', 'link-9');">data</a></tt> </tt>
+</div><a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="pnmimage.P3dec"></a><div id="pnmimage.P3dec-def"><a name="L140"></a><tt class="py-lineno">140</tt> <a class="py-toggle" href="#" id="pnmimage.P3dec-toggle" onclick="return toggle('pnmimage.P3dec');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#P3dec">P3dec</a><tt class="py-op">(</tt><tt class="py-param">buf</tt><tt class="py-op">,</tt> <tt class="py-param">bytecode</tt><tt class="py-op">)</tt><tt cla [...]
+</div><div id="pnmimage.P3dec-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.P3dec-expanded"><a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-string">'(plain-ppm) RGB images are not supported - yet'</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt id="link-72" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-72', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="pnmimage.P6dec"></a><div id="pnmimage.P6dec-def"><a name="L146"></a><tt class="py-lineno">146</tt> <a class="py-toggle" href="#" id="pnmimage.P6dec-toggle" onclick="return toggle('pnmimage.P6dec');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#P6dec">P6dec</a><tt class="py-op">(</tt><tt class="py-param">buf</tt><tt class="py-op">,</tt> <tt class="py-param">bytecode</tt><tt class="py-op">)</tt><tt cla [...]
+</div><div id="pnmimage.P6dec-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.P6dec-expanded"><a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-string">'(ppm) RGB images are not supported - yet'</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt id="link-73" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-73', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="pnmimage.P7dec"></a><div id="pnmimage.P7dec-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="pnmimage.P7dec-toggle" onclick="return toggle('pnmimage.P7dec');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#P7dec">P7dec</a><tt class="py-op">(</tt><tt class="py-param">buf</tt><tt class="py-op">,</tt> <tt class="py-param">bytecode</tt><tt class="py-op">)</tt><tt cla [...]
+</div><div id="pnmimage.P7dec-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.P7dec-expanded"><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-string">'(pam) images are not supported - yet'</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt id="link-74" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-74', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-name">err</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"> </tt>
+<a name="pnmimage.write"></a><div id="pnmimage.write-def"><a name="L157"></a><tt class="py-lineno">157</tt> <a class="py-toggle" href="#" id="pnmimage.write-toggle" onclick="return toggle('pnmimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt cl [...]
+</div><div id="pnmimage.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.write-expanded"><a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-string">'write pnm images is not implemented yet.'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="pnmimage.checkData"></a><div id="pnmimage.checkData-def"><a name="L161"></a><tt class="py-lineno">161</tt> <a class="py-toggle" href="#" id="pnmimage.checkData-toggle" onclick="return toggle('pnmimage.checkData');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.pnmimage.pnmimage-class.html#checkData">checkData</a><tt class="py-op">(</tt><tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="p [...]
+</div><div id="pnmimage.checkData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="pnmimage.checkData-expanded"><a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-75" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-75', 'data', 'link-9');">data</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-76" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-76', 'data', 'link-9');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">astype</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.pnmimage.pnmimage-class.html b/epydoc/fabio.pnmimage.pnmimage-class.html
new file mode 100644
index 0000000..35884d6
--- /dev/null
+++ b/epydoc/fabio.pnmimage.pnmimage-class.html
@@ -0,0 +1,614 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.pnmimage.pnmimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.pnmimage-module.html">Module pnmimage</a> ::
+        Class pnmimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.pnmimage.pnmimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class pnmimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">pnmimage</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.pnmimage.pnmimage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">*arg</span>,
+        <span class="summary-sig-arg">**kwargs</span>)</span><br />
+      Set up initial values</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.pnmimage.pnmimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">f</span>)</span><br />
+      Must be overridden in classes</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.pnmimage.pnmimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      try to read PNM images</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.pnmimage.pnmimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">filename</span>)</span><br />
+      To be overwritten - write the file</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="P1dec"></a><span class="summary-sig-name">P1dec</span>(<span class="summary-sig-arg">buf</span>,
+        <span class="summary-sig-arg">bytecode</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.P1dec">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="P4dec"></a><span class="summary-sig-name">P4dec</span>(<span class="summary-sig-arg">buf</span>,
+        <span class="summary-sig-arg">bytecode</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.P4dec">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="P2dec"></a><span class="summary-sig-name">P2dec</span>(<span class="summary-sig-arg">buf</span>,
+        <span class="summary-sig-arg">bytecode</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.P2dec">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="P5dec"></a><span class="summary-sig-name">P5dec</span>(<span class="summary-sig-arg">buf</span>,
+        <span class="summary-sig-arg">bytecode</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.P5dec">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="P3dec"></a><span class="summary-sig-name">P3dec</span>(<span class="summary-sig-arg">buf</span>,
+        <span class="summary-sig-arg">bytecode</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.P3dec">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="P6dec"></a><span class="summary-sig-name">P6dec</span>(<span class="summary-sig-arg">buf</span>,
+        <span class="summary-sig-arg">bytecode</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.P6dec">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="P7dec"></a><span class="summary-sig-name">P7dec</span>(<span class="summary-sig-arg">buf</span>,
+        <span class="summary-sig-arg">bytecode</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.P7dec">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.pnmimage.pnmimage-class.html#checkData" class="summary-sig-name">checkData</a>(<span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Empty for fabioimage but may be populated by others classes, 
+      especially for format accepting only integers</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.checkData">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">*arg</span>,
+        <span class="sig-arg">**kwargs</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Set up initial values</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">f</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Must be overridden in classes</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>try to read PNM images</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>fname</code></strong> - name of the file</li>
+        <li><strong class="pname"><code>frame</code></strong> - not relevant here! PNM is always single framed</li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">filename</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>To be overwritten - write the file</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="checkData"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">checkData</span>(<span class="sig-arg">data</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">Static Method</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.pnmimage-pysrc.html#pnmimage.checkData">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Empty for fabioimage but may be populated by others classes, 
+  especially for format accepting only integers</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#checkData">fabioimage.fabioimage.checkData</a>
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.readbytestream-module.html b/epydoc/fabio.readbytestream-module.html
new file mode 100644
index 0000000..eeed0ba
--- /dev/null
+++ b/epydoc/fabio.readbytestream-module.html
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.readbytestream</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module readbytestream
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.readbytestream-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module readbytestream</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.readbytestream-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Reads a bytestream
+
+Authors: Jon Wright    Henning O. Sorensen & Erik Knudsen
+         ESRF          Risoe National Laboratory
+
+</pre>
+
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.readbytestream-module.html#readbytestream" class="summary-sig-name">readbytestream</a>(<span class="summary-sig-arg">fil</span>,
+        <span class="summary-sig-arg">offset</span>,
+        <span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>,
+        <span class="summary-sig-arg">nbytespp</span>,
+        <span class="summary-sig-arg">datatype</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">signed</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">n</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">swap</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">n</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">typeout</span>=<span class="summary-sig-default"><type 'numpy.uint16'></span>)</span><br />
+      Reads in a bytestream from a file (which may be a string indicating a
+      filename, or an already opened file (should be "rb")) 
+      offset is the position (in bytes) where the pixel data start nbytespp
+      = number of bytes per pixel type can be int or float (4 bytes pp) or 
+      double (8 bytes pp) signed: normally signed data 'y', but 'n' to try 
+      to get back the right numbers when unsigned data are converted to 
+      signed (python once had no unsigned numeric types.) swap, normally do
+      not bother, but 'y' to swap bytes typeout is the numpy type to 
+      output, normally uint16, but more if overflows occurred x and y are 
+      the pixel dimensions</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.readbytestream-pysrc.html#readbytestream">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("readbytestream")">logging.getLogger("readbytestream")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.readbytestream-module.html#DATATYPES" class="summary-name">DATATYPES</a> = <code title="{('double', 'y', 4): <type 'numpy.float64'>,
+ ('float', 'y', 4): <type 'numpy.float32'>,
+ ('int', 'n', 1): <type 'numpy.uint8'>,
+ ('int', 'n', 2): <type 'numpy.uint16'>,
+ ('int', 'n', 4): <type 'numpy.uint32'>,
+ ('int', 'y', 1): <type 'numpy.int8'>,
+ ('int', 'y', 2): <type 'numpy.int16'>,
+ ('int', 'y', 4): <type 'numpy.int32'>}"><code class="variable-group">{</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">double</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">y</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-group">)</code><code class="variable-op">: </code [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Function Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-FunctionDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="readbytestream"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">readbytestream</span>(<span class="sig-arg">fil</span>,
+        <span class="sig-arg">offset</span>,
+        <span class="sig-arg">x</span>,
+        <span class="sig-arg">y</span>,
+        <span class="sig-arg">nbytespp</span>,
+        <span class="sig-arg">datatype</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">signed</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">n</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">swap</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">n</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">typeout</span>=<span class="sig-default"><type 'numpy.uint16'></span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.readbytestream-pysrc.html#readbytestream">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Reads in a bytestream from a file (which may be a string indicating a 
+  filename, or an already opened file (should be "rb")) offset is
+  the position (in bytes) where the pixel data start nbytespp = number of 
+  bytes per pixel type can be int or float (4 bytes pp) or double (8 bytes 
+  pp) signed: normally signed data 'y', but 'n' to try to get back the 
+  right numbers when unsigned data are converted to signed (python once had
+  no unsigned numeric types.) swap, normally do not bother, but 'y' to swap
+  bytes typeout is the numpy type to output, normally uint16, but more if 
+  overflows occurred x and y are the pixel dimensions</p>
+  <p>TODO : Read in regions of interest</p>
+  <p>PLEASE LEAVE THE STRANGE INTERFACE ALONE - IT IS USEFUL FOR THE BRUKER
+  FORMAT</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="DATATYPES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">DATATYPES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">double</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">y</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-group">)</code><code class="variable-op">: </code><type 'numpy.float64'><code class="varia [...]
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">float</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">y</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-group">)</code><code class="variable-op">: </code><type 'numpy.float32'><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">n</code><code class="variable-quote">'</code><code class="variable-op">, </code>1<code class="variable-group">)</code><code class="variable-op">: </code><type 'numpy.uint8'><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">n</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-group">)</code><code class="variable-op">: </code><type 'numpy.uint16'><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">n</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-group">)</code><code class="variable-op">: </code><type 'numpy.uint32'><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">y</code><code class="variable-quote">'</code><code class="variable-op">, </code>1<code class="variable-group">)</code><code class="variable-op">: </code><type 'numpy.int8'><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">y</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-group">)</code><code class="variable-op">: </code><type 'numpy.int16'><code class="variable-op">,</code>
+ <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">y</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-group">)</code><code class="variable-op">: </code><type 'numpy.int32'><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.readbytestream-pysrc.html b/epydoc/fabio.readbytestream-pysrc.html
new file mode 100644
index 0000000..1a5b800
--- /dev/null
+++ b/epydoc/fabio.readbytestream-pysrc.html
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.readbytestream</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module readbytestream
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.readbytestream-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.readbytestream-module.html">Module fabio.readbytestream</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt>  <tt class="py-line"><tt class="py-comment">#coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt>  <tt class="py-line"> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-docstring">Reads a bytestream</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Jon Wright    Henning O. Sorensen & Erik Knudsen</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-docstring">         ESRF          Risoe National Laboratory</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"> </tt>
+<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bruk [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"readbytestream"</tt><tt class="py-op">)</tt> </tt>
+<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable fabio.readbytestream.DATATYPES=fabio.readbytestream-module.html#DATATYPES"><a title="fabio.readbytestream.DATATYPES" class="py-name" href="#" onclick="return doclink('link-1', 'DATATYPES', 'link-1');">DATATYPES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line">    <tt class="py-comment"># type  sign bytes</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt> <tt class="py-string">'n'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">,</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt> <tt class="py-string">'n'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">,</tt> </tt>
+<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt> <tt class="py-string">'n'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint32</tt><tt class="py-op">,</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int8</tt><tt class="py-op">,</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int16</tt><tt class="py-op">,</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">"int"</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'float'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> <tt class="py-comment"># does this occur in bruker?</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-string">'double'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float64</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"> </tt>
+<a name="readbytestream"></a><div id="readbytestream-def"><a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="readbytestream-toggle" onclick="return toggle('readbytestream');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.readbytestream-module.html#readbytestream">readbytestream</a><tt class="py-op">(</tt><tt class="py-param">fil</tt><tt class="py-op">,</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line">                   <tt class="py-param">offset</tt><tt class="py-op">,</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">                   <tt class="py-param">x</tt><tt class="py-op">,</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">                   <tt class="py-param">y</tt><tt class="py-op">,</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">                   <tt class="py-param">nbytespp</tt><tt class="py-op">,</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line">                   <tt class="py-param">datatype</tt><tt class="py-op">=</tt><tt class="py-string">'int'</tt><tt class="py-op">,</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">                   <tt class="py-param">signed</tt><tt class="py-op">=</tt><tt class="py-string">'n'</tt><tt class="py-op">,</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line">                   <tt class="py-param">swap</tt><tt class="py-op">=</tt><tt class="py-string">'n'</tt><tt class="py-op">,</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">                   <tt class="py-param">typeout</tt><tt class="py-op">=</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="readbytestream-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="readbytestream-expanded"><a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line"><tt class="py-docstring">    Reads in a bytestream from a file (which may be a string indicating</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"><tt class="py-docstring">    a filename, or an already opened file (should be "rb"))</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"><tt class="py-docstring">    offset is the position (in bytes) where the pixel data start</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"><tt class="py-docstring">    nbytespp = number of bytes per pixel</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"><tt class="py-docstring">    type can be int or float (4 bytes pp) or double (8 bytes pp)</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"><tt class="py-docstring">    signed: normally signed data 'y', but 'n' to try to get back the </tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line"><tt class="py-docstring">    right numbers when unsigned data are converted to signed </tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line"><tt class="py-docstring">    (python once had no unsigned numeric types.)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"><tt class="py-docstring">    swap, normally do not bother, but 'y' to swap bytes</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"><tt class="py-docstring">    typeout is the numpy type to output, normally uint16, </tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"><tt class="py-docstring">    but more if overflows occurred</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line"><tt class="py-docstring">    x and y are the pixel dimensions</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
+<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line"><tt class="py-docstring">    TODO : Read in regions of interest</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt class="py-docstring">    </tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-docstring">    PLEASE LEAVE THE STRANGE INTERFACE ALONE - </tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"><tt class="py-docstring">    IT IS USEFUL FOR THE BRUKER FORMAT</tt> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">    <tt class="py-name">tin</tt> <tt class="py-op">=</tt> <tt class="py-string">"dunno"</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">    <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">nbytespp</tt> <tt class="py-op">*</tt> <tt class="py-name">x</tt> <tt class="py-op">*</tt> <tt class="py-name">y</tt> <tt class="py-comment"># bytes per pixel times number of pixels</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">datatype</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'float'</tt><tt class="py-op">,</tt> <tt class="py-string">'double'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">        <tt class="py-name">signed</tt> <tt class="py-op">=</tt> <tt class="py-string">'y'</tt> </tt>
+<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line"> </tt>
+<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">    <tt id="link-2" class="py-name" targets="Variable fabio.fabioutils.key=fabio.fabioutils-module.html#key"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-2', 'key', 'link-2');">key</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">datatype</tt><tt class="py-op">,</tt> <tt class="py-name">signed</tt><tt class="py-op">,</tt> <tt class="py-name">nbytespp [...]
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">        <tt class="py-name">tin</tt> <tt class="py-op">=</tt> <tt id="link-3" class="py-name"><a title="fabio.readbytestream.DATATYPES" class="py-name" href="#" onclick="return doclink('link-3', 'DATATYPES', 'link-1');">DATATYPES</a></tt><tt class="py-op">[</tt><tt id="link-4" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-4', 'key', 'link-2');">key</a></tt><tt cla [...]
+<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"datatype,signed,nbytespp "</tt> <tt class="py-op">+</tt> <tt id="link-5" class="py-name" targets="Method fabio.fabioutils.FilenameObject.str()=fabio.fabioutils.FilenameObject-class.html#str,Class str=str-class.html"><a title="fabio.fabioutils.FilenameObject.str
+str" class="py-name" href="#" onclick="return doclink('link-5', 'str', 'link-5');">str</a></tt><tt class="py-op">(</tt><tt id="link-6" class="py-name"><a title="fabio.fabioutils.key" class="py-name" href="#" onclick="return doclink('link-6', 'key', 'link-2');">key</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown combination of types to readbytestream"</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line"> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">    <tt class="py-comment"># Did we get a string (filename) or a readable stream object?</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">fil</tt><tt class="py-op">,</tt> <tt class="py-string">"read"</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">fil</tt><tt class="py-op">,</tt> <tt class="py-string">"seek"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">fil</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">        <tt class="py-name">opened</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">fil</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">        <tt class="py-name">opened</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line"> </tt>
+<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line">    <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-7', 'seek', 'link-7');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line"> </tt>
+<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line">    <tt class="py-name">arr</tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt> </tt>
+<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line">            <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt> </tt>
+<a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line">                <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.OXDimage.read()=fabio.OXDimage.OXDimage-class.h [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-8', 'read', 'link-8');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">tin</tt><tt class="py-op">)</tt> <tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py- [...]
+<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line"> </tt>
+<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">swap</tt> <tt class="py-op">==</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line">        <tt class="py-name">arr</tt> <tt class="py-op">=</tt> <tt class="py-name">arr</tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line"> </tt>
+<a name="L83"></a><tt class="py-lineno">83</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">opened</tt><tt class="py-op">:</tt> </tt>
+<a name="L84"></a><tt class="py-lineno">84</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno">85</tt>  <tt class="py-line"> </tt>
+<a name="L86"></a><tt class="py-lineno">86</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">arr</tt> </tt>
+</div><a name="L87"></a><tt class="py-lineno">87</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.tifimage-module.html b/epydoc/fabio.tifimage-module.html
new file mode 100644
index 0000000..9021dbb
--- /dev/null
+++ b/epydoc/fabio.tifimage-module.html
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.tifimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module tifimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.tifimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module tifimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.tifimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+FabIO class for dealing with TIFF images. 
+In facts wraps TiffIO from V. Armando Solé (available in PyMca) or falls back to PIL
+
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jérôme Kieffer:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+   
+License: GPLv3+        
+
+</pre>
+
+<hr />
+<div class="fields">      <p><strong>Date:</strong>
+        11/07/2011
+      </p>
+      <dl><dt>Authors:</dt>
+        <dd>
+          J\xc3\xa9r\xc3\xb4me Kieffer,
+          Henning O. Sorensen,
+          Erik Knudsen
+        </dd>
+      </dl>
+      <p><strong>Copyright:</strong>
+        ESRF, Grenoble & Risoe National Laboratory
+      </p>
+      <p><strong>License:</strong>
+        GPLv3+
+      </p>
+</div><!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.tifimage.tifimage-class.html" class="summary-name">tifimage</a><br />
+      Images in TIF format Wraps TiffIO
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.tifimage.Tiff_header-class.html" class="summary-name">Tiff_header</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.tifimage.Image_File_Directory-class.html" class="summary-name">Image_File_Directory</a>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.tifimage.Image_File_Directory_entry-class.html" class="summary-name">Image_File_Directory_entry</a>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__status__"></a><span class="summary-name">__status__</span> = <code title="'stable'"><code class="variable-quote">'</code><code class="variable-string">stable</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("tifimage")">logging.getLogger("tifimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.tifimage-module.html#PIL_TO_NUMPY" class="summary-name">PIL_TO_NUMPY</a> = <code title="{'1': <type 'bool'>,
+ 'F': <type 'numpy.float32'>,
+ 'I': <type 'numpy.int32'>,
+ 'I;16': <type 'numpy.uint16'>,
+ 'L': <type 'numpy.uint8'>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">1</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'bool'><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">F</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float32'<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="LITTLE_ENDIAN"></a><span class="summary-name">LITTLE_ENDIAN</span> = <code title="1234">1234</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="BIG_ENDIAN"></a><span class="summary-name">BIG_ENDIAN</span> = <code title="3412">3412</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.tifimage-module.html#TYPES" class="summary-name">TYPES</a> = <code title="{0: 'invalid',
+ 1: 'byte',
+ 2: 'ascii',
+ 3: 'short',
+ 4: 'long',
+ 5: 'rational',
+ 6: 'sbyte',
+ 7: 'undefined',
+..."><code class="variable-group">{</code>0<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">invalid</code><code class="variable-quote">'</code><code class="variable-op">, </code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">byte</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><c [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.tifimage-module.html#TYPESIZES" class="summary-name">TYPESIZES</a> = <code title="{0: 0,
+ 1: 1,
+ 2: 1,
+ 3: 2,
+ 4: 4,
+ 5: 8,
+ 6: 1,
+ 7: 1,
+..."><code class="variable-group">{</code>0<code class="variable-op">: </code>0<code class="variable-op">, </code>1<code class="variable-op">: </code>1<code class="variable-op">, </code>2<code class="variable-op">: </code>1<code class="variable-op">, </code>3<code class="variable-op">: </code>2<code class="variable-op">, </code>4<code class="variable-op">: </code>4<code class="variable-op">, </code>5<code class="variable-op">: </code>8<code class="variable-op">, </code>6<code class="vari [...]
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.tifimage-module.html#baseline_tiff_tags" class="summary-name">baseline_tiff_tags</a> = <code title="{256: 'ImageWidth',
+ 257: 'ImageLength',
+ 258: 'BitsPerSample',
+ 259: 'Compression',
+ 262: 'PhotometricInterpretation',
+ 264: 'CellWidth',
+ 265: 'CellLength',
+ 270: 'ImageDescription',
+..."><code class="variable-group">{</code>256<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ImageWidth</code><code class="variable-quote">'</code><code class="variable-op">, </code>257<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ImageLength</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-ellipsis">...</code></code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-VariablesDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="PIL_TO_NUMPY"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">PIL_TO_NUMPY</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">1</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'bool'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">F</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.float32'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">I</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.int32'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">I;16</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.uint16'><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">L</code><code class="variable-quote">'</code><code class="variable-op">: </code><type 'numpy.uint8'><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="TYPES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">TYPES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>0<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">invalid</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">byte</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ascii</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">short</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">long</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">rational</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">sbyte</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">undefined</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="TYPESIZES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">TYPESIZES</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>0<code class="variable-op">: </code>0<code class="variable-op">,</code>
+ 1<code class="variable-op">: </code>1<code class="variable-op">,</code>
+ 2<code class="variable-op">: </code>1<code class="variable-op">,</code>
+ 3<code class="variable-op">: </code>2<code class="variable-op">,</code>
+ 4<code class="variable-op">: </code>4<code class="variable-op">,</code>
+ 5<code class="variable-op">: </code>8<code class="variable-op">,</code>
+ 6<code class="variable-op">: </code>1<code class="variable-op">,</code>
+ 7<code class="variable-op">: </code>1<code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<a name="baseline_tiff_tags"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <h3 class="epydoc">baseline_tiff_tags</h3>
+  
+  <dl class="fields">
+  </dl>
+  <dl class="fields">
+    <dt>Value:</dt>
+      <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>256<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ImageWidth</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 257<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ImageLength</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 258<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">BitsPerSample</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 259<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Compression</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 262<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">PhotometricInterpretation</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 264<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">CellWidth</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 265<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">CellLength</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 270<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ImageDescription</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.tifimage-pysrc.html b/epydoc/fabio.tifimage-pysrc.html
new file mode 100644
index 0000000..e197730
--- /dev/null
+++ b/epydoc/fabio.tifimage-pysrc.html
@@ -0,0 +1,721 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.tifimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module tifimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.tifimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.tifimage-module.html">Module fabio.tifimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#-*- coding: utf8 -*-</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">FabIO class for dealing with TIFF images. </tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">In facts wraps TiffIO from V. Armando Solé (available in PyMca) or falls back to PIL</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">Authors:</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">........</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">* Henning O. Sorensen & Erik Knudsen:</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-docstring">  Center for Fundamental Research: Metal Structures in Four Dimensions;</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-docstring">  Risoe National Laboratory;</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-docstring">  Frederiksborgvej 399;</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-docstring">  DK-4000 Roskilde;</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-docstring">  email:erik.knudsen at risoe.dk</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-docstring">* Jérôme Kieffer:</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring">  European Synchrotron Radiation Facility;</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring">  Grenoble (France)</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring">   </tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring">License: GPLv3+        </tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-name">__authors__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"Jérôme Kieffer"</tt><tt class="py-op">,</tt> <tt class="py-string">"Henning O. Sorensen"</tt><tt class="py-op">,</tt> <tt class="py-string">"Erik Knudsen"</tt><tt class="py-op">]</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-name">__date__</tt> <tt class="py-op">=</tt> <tt class="py-string">"11/07/2011"</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> <tt class="py-string">"GPLv3+"</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-name">__copyright__</tt> <tt class="py-op">=</tt> <tt class="py-string">"ESRF, Grenoble & Risoe National Laboratory"</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.__status__=fabio-module.html#__status__,Variable fabio.tifimage.__status__=fabio.tifimage-module.html#__status__"><a title="fabio.__status__
+fabio.tifimage.__status__" class="py-name" href="#" onclick="return doclink('link-0', '__status__', 'link-0');">__status__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"stable"</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt><tt class="py-op">,</tt> <tt class="py-name">logging</tt><tt class="py-op">,</tt> <tt class="py-name">struct</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-1', 'logger', 'link-1');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"tifimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt class="py-name">Image</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">    <tt id="link-2" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-2', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"PIL is not installed ... trying to do without"</tt><tt class="py-op">)</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-name">Image</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-3', 'fabioimage', 'link-3');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-4', 'fabioimage', 'link-3');">fabioimage</a></tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name" targets="Module fabio.TiffIO=fabio.TiffIO-module.html,Class fabio.TiffIO.TiffIO=fabio.TiffIO.TiffIO-class.html"><a title="fabio.TiffIO
+fabio.TiffIO.TiffIO" class="py-name" href="#" onclick="return doclink('link-5', 'TiffIO', 'link-5');">TiffIO</a></tt>     <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name"><a title="fabio.TiffIO
+fabio.TiffIO.TiffIO" class="py-name" href="#" onclick="return doclink('link-6', 'TiffIO', 'link-5');">TiffIO</a></tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable fabio.tifimage.PIL_TO_NUMPY=fabio.tifimage-module.html#PIL_TO_NUMPY"><a title="fabio.tifimage.PIL_TO_NUMPY" class="py-name" href="#" onclick="return doclink('link-7', 'PIL_TO_NUMPY', 'link-7');">PIL_TO_NUMPY</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-string">"I;16"</tt><tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op" [...]
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                   <tt class="py-string">"F"</tt><tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">                   <tt class="py-string">"1"</tt><tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">bool</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">                   <tt class="py-string">"I"</tt><tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt><tt class="py-op">,</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">                   <tt class="py-string">"L"</tt><tt class="py-op">:</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint8</tt><tt class="py-op">,</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">                    <tt class="py-op">}</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable fabio.tifimage.LITTLE_ENDIAN=fabio.tifimage-module.html#LITTLE_ENDIAN"><a title="fabio.tifimage.LITTLE_ENDIAN" class="py-name" href="#" onclick="return doclink('link-8', 'LITTLE_ENDIAN', 'link-8');">LITTLE_ENDIAN</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1234</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable fabio.tifimage.BIG_ENDIAN=fabio.tifimage-module.html#BIG_ENDIAN"><a title="fabio.tifimage.BIG_ENDIAN" class="py-name" href="#" onclick="return doclink('link-9', 'BIG_ENDIAN', 'link-9');">BIG_ENDIAN</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3412</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt id="link-10" class="py-name" targets="Variable fabio.tifimage.TYPES=fabio.tifimage-module.html#TYPES"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-10', 'TYPES', 'link-10');">TYPES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-string">'invalid'</tt><tt class="py-op">,</tt> <tt class="py-number">1</ [...]
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt id="link-11" class="py-name" targets="Variable fabio.tifimage.TYPESIZES=fabio.tifimage-module.html#TYPESIZES"><a title="fabio.tifimage.TYPESIZES" class="py-name" href="#" onclick="return doclink('link-11', 'TYPESIZES', 'link-11');">TYPESIZES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py [...]
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt id="link-12" class="py-name" targets="Variable fabio.tifimage.baseline_tiff_tags=fabio.tifimage-module.html#baseline_tiff_tags"><a title="fabio.tifimage.baseline_tiff_tags" class="py-name" href="#" onclick="return doclink('link-12', 'baseline_tiff_tags', 'link-12');">baseline_tiff_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">  <tt class="py-number">256</tt><tt class="py-op">:</tt><tt class="py-string">'ImageWidth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">  <tt class="py-number">257</tt><tt class="py-op">:</tt><tt class="py-string">'ImageLength'</tt><tt class="py-op">,</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">  <tt class="py-number">306</tt><tt class="py-op">:</tt><tt class="py-string">'DateTime'</tt><tt class="py-op">,</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">  <tt class="py-number">315</tt><tt class="py-op">:</tt><tt class="py-string">'Artist'</tt><tt class="py-op">,</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">  <tt class="py-number">258</tt><tt class="py-op">:</tt><tt class="py-string">'BitsPerSample'</tt><tt class="py-op">,</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">  <tt class="py-number">265</tt><tt class="py-op">:</tt><tt class="py-string">'CellLength'</tt><tt class="py-op">,</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">  <tt class="py-number">264</tt><tt class="py-op">:</tt><tt class="py-string">'CellWidth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">  <tt class="py-number">259</tt><tt class="py-op">:</tt><tt class="py-string">'Compression'</tt><tt class="py-op">,</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">  <tt class="py-number">262</tt><tt class="py-op">:</tt><tt class="py-string">'PhotometricInterpretation'</tt><tt class="py-op">,</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">  <tt class="py-number">296</tt><tt class="py-op">:</tt><tt class="py-string">'ResolutionUnit'</tt><tt class="py-op">,</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">  <tt class="py-number">282</tt><tt class="py-op">:</tt><tt class="py-string">'XResolution'</tt><tt class="py-op">,</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">  <tt class="py-number">283</tt><tt class="py-op">:</tt><tt class="py-string">'YResolution'</tt><tt class="py-op">,</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">  <tt class="py-number">278</tt><tt class="py-op">:</tt><tt class="py-string">'RowsPerStrip'</tt><tt class="py-op">,</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">  <tt class="py-number">273</tt><tt class="py-op">:</tt><tt class="py-string">'StripOffset'</tt><tt class="py-op">,</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">  <tt class="py-number">279</tt><tt class="py-op">:</tt><tt class="py-string">'StripByteCounts'</tt><tt class="py-op">,</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">  <tt class="py-number">270</tt><tt class="py-op">:</tt><tt class="py-string">'ImageDescription'</tt><tt class="py-op">,</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">  <tt class="py-number">271</tt><tt class="py-op">:</tt><tt class="py-string">'Make'</tt><tt class="py-op">,</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">  <tt class="py-number">272</tt><tt class="py-op">:</tt><tt class="py-string">'Model'</tt><tt class="py-op">,</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">  <tt class="py-number">320</tt><tt class="py-op">:</tt><tt class="py-string">'ColorMap'</tt><tt class="py-op">,</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">  <tt class="py-number">305</tt><tt class="py-op">:</tt><tt class="py-string">'Software'</tt><tt class="py-op">,</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">  <tt class="py-number">339</tt><tt class="py-op">:</tt><tt class="py-string">'SampleFormat'</tt><tt class="py-op">,</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">  <tt class="py-number">33432</tt><tt class="py-op">:</tt><tt class="py-string">'Copyright'</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">  <tt class="py-op">}</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
+<a name="tifimage"></a><div id="tifimage-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="tifimage-toggle" onclick="return toggle('tifimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.tifimage.tifimage-class.html">tifimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tifimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="tifimage-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"><tt class="py-docstring">    Images in TIF format</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt class="py-docstring">    Wraps TiffIO</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">    <tt id="link-13" class="py-name" targets="Variable fabio.GEimage.GEimage._need_a_seek_to_read=fabio.GEimage.GEimage-class.html#_need_a_seek_to_read,Variable fabio.fabioimage.fabioimage._need_a_seek_to_read=fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read,Variable fabio.tifimage.tifimage._need_a_seek_to_read=fabio.tifimage.tifimage-class.html#_need_a_seek_to_read"><a title="fabio.GEimage.GEimage._need_a_s [...]
+fabio.fabioimage.fabioimage._need_a_seek_to_read
+fabio.tifimage.tifimage._need_a_seek_to_read" class="py-name" href="#" onclick="return doclink('link-13', '_need_a_seek_to_read', 'link-13');">_need_a_seek_to_read</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"> </tt>
+<a name="tifimage.__init__"></a><div id="tifimage.__init__-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="tifimage.__init__-toggle" onclick="return toggle('tifimage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.tifimage.tifimage-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">ar [...]
+</div><div id="tifimage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tifimage.__init__-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-docstring">""" Tifimage constructor adds an nbits member attribute """</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nbits</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt id="link-14" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-14', 'fabioimage', 'link-3');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fabio.adscimage.adscimage-class.html#__init__,Method fabio.binaryimage.binaryimage.__i [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-15', '__init__', 'link-15');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwds</tt><tt class="py-op">)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lib</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"> </tt>
+<a name="tifimage._readheader"></a><div id="tifimage._readheader-def"><a name="L93"></a><tt class="py-lineno"> 93</tt> <a class="py-toggle" href="#" id="tifimage._readheader-toggle" onclick="return toggle('tifimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.tifimage.tifimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">infile</ [...]
+</div><div id="tifimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tifimage._readheader-expanded"><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-docstring">        Try to read Tiff images header...</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-comment">#        try:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-comment">#            self.header = { "filename" : infile.name }</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"><tt class="py-comment">#        except AttributeError:</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-comment">#            self.header = {}</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-comment">#        t = Tiff_header(infile.read())</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-comment">#        self.header = t.header</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-comment">#        try:</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-comment">#            self.dim1 = int(self.header['ImageWidth'])</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-comment">#            self.dim2 = int(self.header['ImageLength'])</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-comment">#        except (KeyError):</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-comment">#            logger.warning("image dimensions could not be determined from header tags, trying to go on anyway")</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-comment">#         read the first 32 bytes to determine size</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt id="link-16" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-16', 'header', 'link-16');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-17', 'read', 'link-17');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">64</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">uint16</tt><tt class="py-op">)</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-18', 'dim1', 'link-18');">dim1</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-19" class="py- [...]
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Variable fabio.edfimage.edfimage.dim2=fabio.edfimage.edfimage-class.html#dim2"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-20', 'dim2', 'link-20');">dim2</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-21" class="py- [...]
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-comment">#         nbits is not a fabioimage attribute...</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nbits</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-22" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-22', 'header', 'link-16');">header</a></tt><tt class="py-op">[</tt><tt class="py-number">21</tt><tt class="py-op">]</tt><t [...]
+</div><a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"> </tt>
+<a name="tifimage.read"></a><div id="tifimage.read-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="tifimage.read-toggle" onclick="return toggle('tifimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.tifimage.tifimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py- [...]
+</div><div id="tifimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tifimage.read-expanded"><a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">        Wrapper for TiffIO.</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-23', '_open', 'link-23');">_open</a></tt><tt class="py-op">(</tt><tt cla [...]
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._re [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-24', '_readheader', 'link-24');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method fabio.fabioutils.GzipFile.seek()=fabio.fabioutils.GzipFile-class.html#seek"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-25', 'seek', 'link-25');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lib</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">            <tt class="py-name">tiffIO</tt> <tt class="py-op">=</tt> <tt id="link-26" class="py-name"><a title="fabio.TiffIO
+fabio.TiffIO.TiffIO" class="py-name" href="#" onclick="return doclink('link-26', 'TiffIO', 'link-5');">TiffIO</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tiffIO</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method fabio.TiffIO.TiffIO.getNumberOfImages()=fabio.TiffIO.TiffIO-class.html#getNumberOfImages"><a title="fabio.TiffIO.TiffIO.getNumberOfImages" class="py-name" href="#" onclick="return doclink('link-27', 'getNumberOfImages', 'link-27');">getNumberOfImages</a></tt><tt class="py-o [...]
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">                <tt class="py-comment">#No support for now of multi-frame tiff images</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-28', 'data', 'link-28');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tiffIO</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method fabio.TiffIO.TiffIO.getImage()=fabio.TiffIO.TiffIO-class.html#getImage"><a title="fabio.TiffIO.TiffIO.getImage" class="py-name" href="#" onclick="return doclink('link-29', 'getImage', 'link-29');">getImage</a></tt><tt class="py-op">(</tt> [...]
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-30', 'header', 'link-16');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tiffIO</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method fabio.TiffIO.TiffIO.getInfo()=fabio.TiffIO.TiffIO [...]
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt id="link-32" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-32', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to read %s with TiffIO due to %s, trying PIL"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-33', 'data', 'link-28');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">ndim</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-34', 'dim2', 'link-20');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick=" [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-36', 'data', 'link-28');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-37', 'data', 'link-28');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">ndim</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-38', 'dim2', 'link-20');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick=" [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-40', 'data', 'link-28');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">                <tt id="link-41" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-41', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Third dimension is the color"</tt><tt class="py-op">)</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">                <tt id="link-42" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-42', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"dataset has %s dimensions (%s), check for errors !!!!"</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-43', 'data', 'link-28');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">ndim</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-44', 'data', 'link-28');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lib</tt> <tt class="py-op">=</tt> <tt class="py-string">"TiffIO"</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lib</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">Image</tt><tt class="py-op">:</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">                    <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-45', 'seek', 'link-25');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">Image</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">                    <tt id="link-46" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-46', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Error in opening %s  with PIL"</tt> <tt class="py-op">%</tt> <tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lib</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">                    <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-47', 'seek', 'link-25');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lib</tt> <tt class="py-op">=</tt> <tt class="py-string">"PIL"</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-48', 'dim1', 'link-18');">dim1</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" oncli [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-50', 'size', 'link-50');">size</a></tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt><tt class="py-op">.</tt><tt class="py-name">mode</tt> <tt class="py-keyword">in</tt> <tt id="link-51" class="py-name"><a title="fabio.tifimage.PIL_TO_NUMPY" class="py-name" href="#" onclick="return doclink('link-51', 'PIL_TO_NUMPY', 'link-7');">PIL_TO_NUMPY</a></tt><tt class="py-op"> [...]
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-52', 'data', 'link-28');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,M [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-53', 'tostring', 'link-53');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-54" class="py-name"><a title="fabio.tifimage.PIL_TO_NUMPY" class="py-name" href="#" onclick="return doclink('link-54', 'PIL_TO_NUMPY', 'link-7');">PIL_TO_NUMPY</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-nam [...]
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> <tt class="py-comment">#probably RGB or RGBA images: rely on PIL to convert it to greyscale float.</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-55', 'data', 'link-28');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method fabio.fabioimage.fabioimage.convert()=fabio.fabioimage.fabioimage-clas [...]
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-57', 'tostring', 'link-53');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">float32</tt><tt class="py-op">)</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-58', 'data', 'link-28');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">shape</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="fabio.edfimage.edfimage.dim2" class="py-name" href="#" onclick="return doclink('link-59', 'dim2', 'link-20');">dim2</a></tt><tt class="py-op">,</tt> <tt class="py-name" [...]
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">                <tt id="link-61" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-61', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Error in opening %s: no tiff reader managed to read the file."</tt><tt class="py-op">,</tt> <tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">lib</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">                <tt class="py-name">infile</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="fabio.fabioutils.GzipFile.seek" class="py-name" href="#" onclick="return doclink('link-62', 'seek', 'link-25');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-63', 'bpp', 'link-63');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name" targets="Method fabio.file_series.file_series.len() [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-65', 'data', 'link-28');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-66', 'tostring', 'link-53');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-67', 'bytecode', 'link-67');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-68', 'data', 'link-28');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-69', 'resetvals', 'link-69');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"> </tt>
+<a name="tifimage.write"></a><div id="tifimage.write-def"><a name="L169"></a><tt class="py-lineno">169</tt> <a class="py-toggle" href="#" id="tifimage.write-toggle" onclick="return toggle('tifimage.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.tifimage.tifimage-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">)</tt><tt class [...]
+</div><div id="tifimage.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tifimage.write-expanded"><a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">        Overrides the fabioimage.write method and provides a simple TIFF image writer.</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring">        @param fname: name of the file to save the image to</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">        @tag_type fname: string or unicode (file?)...</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-name">tiffIO</tt> <tt class="py-op">=</tt> <tt id="link-70" class="py-name"><a title="fabio.TiffIO
+fabio.TiffIO.TiffIO" class="py-name" href="#" onclick="return doclink('link-70', 'TiffIO', 'link-5');">TiffIO</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-name">tiffIO</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name" targets="Method fabio.TiffIO.TiffIO.writeImage()=fabio.TiffIO.TiffIO-class.html#writeImage"><a title="fabio.TiffIO.TiffIO.writeImage" class="py-name" href="#" onclick="return doclink('link-71', 'writeImage', 'link-71');">writeImage</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id=" [...]
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-72', 'data', 'link-28');">data</a></tt><tt class="py-op">,</tt> <tt class="py-name">info</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-73', 'header', 'link-16');">header</a></tt><tt class="py-op">,</tt> <tt class="py-name">software</tt><tt cl [...]
+</div></div><a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-comment">#define a couple of helper classes here:         </tt> </tt>
+<a name="Tiff_header"></a><div id="Tiff_header-def"><a name="L181"></a><tt class="py-lineno">181</tt> <a class="py-toggle" href="#" id="Tiff_header-toggle" onclick="return toggle('Tiff_header');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.tifimage.Tiff_header-class.html">Tiff_header</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Tiff_header-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Tiff_header-expanded"><a name="Tiff_header.__init__"></a><div id="Tiff_header.__init__-def"><a name="L182"></a><tt class="py-lineno">182</tt> <a class="py-toggle" href="#" id="Tiff_header.__init__-toggle" onclick="return toggle('Tiff_header.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.tifimage.Tiff_header-class.html#__init__">_ [...]
+</div><div id="Tiff_header.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Tiff_header.__init__-expanded"><a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">string</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"II\x2a\x00"</tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">byteorder</tt> <tt class="py-op">=</tt> <tt id="link-74" class="py-name"><a title="fabio.tifimage.LITTLE_ENDIAN" class="py-name" href="#" onclick="return doclink('link-74', 'LITTLE_ENDIAN', 'link-8');">LITTLE_ENDIAN</a></tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">string</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'MM\x00\x2a'</tt><tt class="py-op">:</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">byteorder</tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name"><a title="fabio.tifimage.BIG_ENDIAN" class="py-name" href="#" onclick="return doclink('link-75', 'BIG_ENDIAN', 'link-9');">BIG_ENDIAN</a></tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">            <tt id="link-76" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-76', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Warning: This does not appear to be a tiff file"</tt><tt class="py-op">)</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt class="py-comment">#the next two bytes contains the offset of the oth IFD</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">        <tt class="py-name">offset_first_ifd</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"h"</tt><tt class="py-op">,</tt> <tt class="py-name">string</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</ [...]
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ifd</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-77" class="py-name" targets="Class fabio.tifimage.Image_File_Directory=fabio.tifimage.Image_File_Directory-class.html"><a title="fabio.tifimage.Image_File_Directory" class="py-name" href="#" onclick="return doclink('link-77', 'Image_File_Directory', 'link-77');">Image_ [...]
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">        <tt class="py-name">offset_next</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ifd</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method fabio.edfimage.edfimage.unpack()=fabio.edfimage.edfimage-class.html#unpack,Method fabio.tifimage.Image_File_Directory.unp [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-78', 'unpack', 'link-78');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">,</tt> <tt class="py-name">offset_first_ifd</tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">offset_next</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ifd</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-79" class="py-name"><a title="fabio.tifimage.Image_File_Directory" class="py-name" href="#" onclick="return doclink('link-79', 'Image_File_Directory', 'link-77');">Image_File_Directory</a></tt><tt class="py-op">(</tt><tt class="py-op">) [...]
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">            <tt class="py-name">offset_next</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ifd</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="fabio.edfimage.edfimage.unpack
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-80', 'unpack', 'link-78');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">,</tt> <tt class="py-name">offset_next</tt><tt class="py-op">)</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-81', 'header', 'link-16');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">        <tt class="py-comment">#read the values of the header items into a dictionary</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">entry</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ifd</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">entries</tt><tt class="py-op">:</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">entry</tt><tt class="py-op">.</tt><tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt id="link-82" class="py-name"><a title="fabio.tifimage.baseline_tiff_tags" class="py-name" href="#" onclick="return doclink('link-82', 'baseline_tiff_tags', 'link-12');">baseline_tiff_tags</a></tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class=" [...]
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-83', 'header', 'link-16');">header</a></tt><tt class="py-op">[</tt><tt id="link-84" class="py-name"><a title="fabio.tifimage.baseline_tiff_tags" class="py-name" href="#" onclick="return doclink('link-84', 'baseline_tiff_ta [...]
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-85', 'header', 'link-16');">header</a></tt><tt class="py-op">[</tt><tt class="py-name">entry</tt><tt class="py-op">.</tt><tt class="py-name">tag</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">ent [...]
+</div></div><a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"> </tt>
+<a name="Image_File_Directory"></a><div id="Image_File_Directory-def"><a name="L205"></a><tt class="py-lineno">205</tt> <a class="py-toggle" href="#" id="Image_File_Directory-toggle" onclick="return toggle('Image_File_Directory');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.tifimage.Image_File_Directory-class.html">Image_File_Directory</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-o [...]
+</div><div id="Image_File_Directory-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Image_File_Directory-expanded"><a name="Image_File_Directory.__init__"></a><div id="Image_File_Directory.__init__-def"><a name="L206"></a><tt class="py-lineno">206</tt> <a class="py-toggle" href="#" id="Image_File_Directory.__init__-toggle" onclick="return toggle('Image_File_Directory.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" h [...]
+</div><div id="Image_File_Directory.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image_File_Directory.__init__-expanded"><a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entries</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">offset</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"> </tt>
+<a name="Image_File_Directory.unpack"></a><div id="Image_File_Directory.unpack-def"><a name="L211"></a><tt class="py-lineno">211</tt> <a class="py-toggle" href="#" id="Image_File_Directory.unpack-toggle" onclick="return toggle('Image_File_Directory.unpack');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.tifimage.Image_File_Directory-class.html#unpack">unpack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt [...]
+</div><div id="Image_File_Directory.unpack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image_File_Directory.unpack-expanded"><a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">offset</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">offset</tt> <tt class= [...]
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">        <tt class="py-name">strInput</tt> <tt class="py-op">=</tt> <tt class="py-name">instring</tt><tt class="py-op">[</tt><tt class="py-name">offset</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"H"</tt><tt class="py-op">,</tt> <tt class="py-name">strInput</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt>< [...]
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">        <tt class="py-comment">#0th IFD contains count-1 entries (count includes the adress of the next IFD)</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-86" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-86', 'i', 'link-86');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">co [...]
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-87" class="py-name" targets="Class fabio.tifimage.Image_File_Directory_entry=fabio.tifimage.Image_File_Directory_entry-class.html"><a title="fabio.tifimage.Image_File_Directory_entry" class="py-name" href="#" onclick="return doclink('link-87', 'Image_File_Directory_entry', 'link-87');">Image_File_Directory_entry</a></tt><tt class="py-op">(</t [...]
+fabio.tifimage.Image_File_Directory.unpack
+fabio.tifimage.Image_File_Directory_entry.unpack" class="py-name" href="#" onclick="return doclink('link-88', 'unpack', 'link-78');">unpack</a></tt><tt class="py-op">(</tt><tt class="py-name">strInput</tt><tt class="py-op">[</tt><tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py-number">12</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt id="link-89" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-89', 'i', 'l [...]
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entries</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">            <tt class="py-comment">#extract data associated with tags</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entries</tt><tt class="py-op">:</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">                    <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name" targets="Method fabio.tifimage.Image_File_Directory_entry.extract_data()=fabio.tifimage.Image_File_Directory_entry-class.html#extract_data"><a title="fabio.tifimage.Image_File_Directory_entry.extract_data" class="py-name" href="#" onclick="return doclink('link-90', 'extract_data', 'link-90');">extract_data</a></tt><t [...]
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">        <tt class="py-comment">#do we have some more ifds in this file </tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">        <tt class="py-name">offset_next</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"L"</tt><tt class="py-op">,</tt> <tt class="py-name">instring</tt><tt class="py-op">[</tt><tt class="py-name">offset</tt> <tt class="py-op">+</tt> <tt class="py-number">2</tt> <tt class="py-op">+</tt> <tt class="py [...]
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">offset_next</tt> </tt>
+</div></div><a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line"> </tt>
+<a name="Image_File_Directory_entry"></a><div id="Image_File_Directory_entry-def"><a name="L229"></a><tt class="py-lineno">229</tt> <a class="py-toggle" href="#" id="Image_File_Directory_entry-toggle" onclick="return toggle('Image_File_Directory_entry');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.tifimage.Image_File_Directory_entry-class.html">Image_File_Directory_entry</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt [...]
+</div><div id="Image_File_Directory_entry-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Image_File_Directory_entry-expanded"><a name="Image_File_Directory_entry.__init__"></a><div id="Image_File_Directory_entry.__init__-def"><a name="L230"></a><tt class="py-lineno">230</tt> <a class="py-toggle" href="#" id="Image_File_Directory_entry.__init__-toggle" onclick="return toggle('Image_File_Directory_entry.__init__');">-</a><tt class="py-line">    <tt class="py-keywor [...]
+</div><div id="Image_File_Directory_entry.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image_File_Directory_entry.__init__-expanded"><a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_type</tt> <tt class="py-op">=</tt> <tt class="py-name">tag_type</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">count</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt> <tt class="py-op">=</tt> <tt class="py-name">offset</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line"> </tt>
+<a name="Image_File_Directory_entry.unpack"></a><div id="Image_File_Directory_entry.unpack-def"><a name="L237"></a><tt class="py-lineno">237</tt> <a class="py-toggle" href="#" id="Image_File_Directory_entry.unpack-toggle" onclick="return toggle('Image_File_Directory_entry.unpack');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.tifimage.Image_File_Directory_entry-class.html#unpack">unpack</a><tt class="py-op">(</tt><tt class="py-param">se [...]
+</div><div id="Image_File_Directory_entry.unpack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image_File_Directory_entry.unpack-expanded"><a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-name">idfentry</tt> <tt class="py-op">=</tt> <tt class="py-name">strInput</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-comment"># #        TOFIX: How is it possible that HHL (2+2+4 bytes has a size of )</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">tag_type</tt><tt class="py-op">,</tt> <tt class="py-name">count</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"HHL"</tt><tt class="py-op">,</tt> <tt class="py-name">idfent [...]
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">count</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_type</tt> <tt class="py-op">=</tt> <tt class="py-name">tag_type</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">count</tt> <tt class="py-op"><=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">            <tt id="link-91" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-91', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Tag # %s has an invalid count: %s. Tag is ignored"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">count</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-name">count</tt> <tt class="py-op">*</tt> <tt id="link-92" class="py-name"><a title="fabio.tifimage.TYPESIZES" class="py-name" href="#" onclick="return doclink('link-92', 'TYPESIZES', 'link-11');">TYPESIZES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op"><=</tt> <tt class="py-numbe [...]
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt> <tt class="py-op">=</tt> <tt class="py-number">8</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="fabio.tifimage.Image_File_Directory_entry.extract_data" class="py-name" href="#" onclick="return doclink('link-93', 'extract_data', 'link-90');">extract_data</a></tt><tt class="py-op">(</tt><tt class="py-name">idfentry</tt><tt class="py-op">)</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"L"</tt><tt class="py-op">,</tt> <tt class="py-name">idfentry</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">:</tt><tt class="py-op [...]
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line"> </tt>
+<a name="Image_File_Directory_entry.extract_data"></a><div id="Image_File_Directory_entry.extract_data-def"><a name="L258"></a><tt class="py-lineno">258</tt> <a class="py-toggle" href="#" id="Image_File_Directory_entry.extract_data-toggle" onclick="return toggle('Image_File_Directory_entry.extract_data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.tifimage.Image_File_Directory_entry-class.html#extract_data">extract_data</a><tt class=" [...]
+</div><div id="Image_File_Directory_entry.extract_data-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image_File_Directory_entry.extract_data-expanded"><a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">        <tt class="py-name">tag_type</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tag_type</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt id="link-94" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-94', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'byte'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"B"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-95', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'short'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"H"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-96" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-96', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'long'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"L"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-97" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-97', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'sbyte'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-98', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'sshort'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"h"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-99', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'slong'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"l"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-100" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-100', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt> <tt class="py-op">+</tt> <tt class="py-na [...]
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-101', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'rational'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">,</tt> <tt class="py-name">den</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"LL"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name" [...]
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">den</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-102', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'srational'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">,</tt> <tt class="py-name">den</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"ll"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name" [...]
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">num</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">den</tt><tt class="py-op">,</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-103" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-103', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'float'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"f"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name" [...]
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt id="link-104" class="py-name"><a title="fabio.tifimage.TYPES" class="py-name" href="#" onclick="return doclink('link-104', 'TYPES', 'link-10');">TYPES</a></tt><tt class="py-op">[</tt><tt class="py-name">tag_type</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'double'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt>  <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val_offset</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">struct</tt><tt class="py-op">.</tt><tt class="py-name">unpack_from</tt><tt class="py-op">(</tt><tt class="py-string">"d"</tt><tt class="py-op">,</tt> <tt class="py-name">full_string</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-n [...]
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">            <tt id="link-105" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-105', 'logger', 'link-1');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"unrecognized type of strInputentry self: %s tag: %s type: %s TYPE: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-106" class="py-name"><a title="fabio.tifimage.baseline_tiff_tags" class="py- [...]
+</div></div><a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.tifimage.Image_File_Directory-class.html b/epydoc/fabio.tifimage.Image_File_Directory-class.html
new file mode 100644
index 0000000..b00e24a
--- /dev/null
+++ b/epydoc/fabio.tifimage.Image_File_Directory-class.html
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.tifimage.Image_File_Directory</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.tifimage-module.html">Module tifimage</a> ::
+        Class Image_File_Directory
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.tifimage.Image_File_Directory-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Image_File_Directory</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.tifimage-pysrc.html#Image_File_Directory">source code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Image_File_Directory</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.tifimage.Image_File_Directory-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">instring</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">offset</span>=<span class="summary-sig-default">-1</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#Image_File_Directory.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unpack"></a><span class="summary-sig-name">unpack</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">instring</span>,
+        <span class="summary-sig-arg">offset</span>=<span class="summary-sig-default">-1</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#Image_File_Directory.unpack">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">instring</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">offset</span>=<span class="sig-default">-1</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.tifimage-pysrc.html#Image_File_Directory.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.tifimage.Image_File_Directory_entry-class.html b/epydoc/fabio.tifimage.Image_File_Directory_entry-class.html
new file mode 100644
index 0000000..545d174
--- /dev/null
+++ b/epydoc/fabio.tifimage.Image_File_Directory_entry-class.html
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.tifimage.Image_File_Directory_entry</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.tifimage-module.html">Module tifimage</a> ::
+        Class Image_File_Directory_entry
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.tifimage.Image_File_Directory_entry-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Image_File_Directory_entry</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.tifimage-pysrc.html#Image_File_Directory_entry">source code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Image_File_Directory_entry</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.tifimage.Image_File_Directory_entry-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">tag</span>=<span class="summary-sig-default">0</span>,
+        <span class="summary-sig-arg">tag_type</span>=<span class="summary-sig-default">0</span>,
+        <span class="summary-sig-arg">count</span>=<span class="summary-sig-default">0</span>,
+        <span class="summary-sig-arg">offset</span>=<span class="summary-sig-default">0</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#Image_File_Directory_entry.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="unpack"></a><span class="summary-sig-name">unpack</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">strInput</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#Image_File_Directory_entry.unpack">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="extract_data"></a><span class="summary-sig-name">extract_data</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">full_string</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#Image_File_Directory_entry.extract_data">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">tag</span>=<span class="sig-default">0</span>,
+        <span class="sig-arg">tag_type</span>=<span class="sig-default">0</span>,
+        <span class="sig-arg">count</span>=<span class="sig-default">0</span>,
+        <span class="sig-arg">offset</span>=<span class="sig-default">0</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.tifimage-pysrc.html#Image_File_Directory_entry.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.tifimage.Tiff_header-class.html b/epydoc/fabio.tifimage.Tiff_header-class.html
new file mode 100644
index 0000000..85a21f6
--- /dev/null
+++ b/epydoc/fabio.tifimage.Tiff_header-class.html
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.tifimage.Tiff_header</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.tifimage-module.html">Module tifimage</a> ::
+        Class Tiff_header
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.tifimage.Tiff_header-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Tiff_header</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.tifimage-pysrc.html#Tiff_header">source code</a></span></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">Tiff_header</strong>
+</pre>
+
+<hr />
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.tifimage.Tiff_header-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">string</span>)</span><br />
+      x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#Tiff_header.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">string</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.tifimage-pysrc.html#Tiff_header.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>x.__init__(...) initializes x; see x.__class__.__doc__ for 
+  signature</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.tifimage.tifimage-class.html b/epydoc/fabio.tifimage.tifimage-class.html
new file mode 100644
index 0000000..5634a54
--- /dev/null
+++ b/epydoc/fabio.tifimage.tifimage-class.html
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.tifimage.tifimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.tifimage-module.html">Module tifimage</a> ::
+        Class tifimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.tifimage.tifimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class tifimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.tifimage-pysrc.html#tifimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">tifimage</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="fabio.marccdimage.marccdimage-class.html">marccdimage.marccdimage</a></li><li>, <a href="fabio.pilatusimage.pilatusimage-class.html">pilatusimage.pilatusimage</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<p>Images in TIF format Wraps TiffIO</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.tifimage.tifimage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">*args</span>,
+        <span class="summary-sig-arg">**kwds</span>)</span><br />
+      Tifimage constructor adds an nbits member attribute</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#tifimage.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.tifimage.tifimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Try to read Tiff images header...</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#tifimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.tifimage.tifimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Wrapper for TiffIO.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#tifimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.tifimage.tifimage-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>)</span><br />
+      Overrides the fabioimage.write method and provides a simple TIFF 
+      image writer.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.tifimage-pysrc.html#tifimage.write">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="_need_a_seek_to_read"></a><span class="summary-name">_need_a_seek_to_read</span> = <code title="True">True</code>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">*args</span>,
+        <span class="sig-arg">**kwds</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.tifimage-pysrc.html#tifimage.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Tifimage constructor adds an nbits member attribute</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.tifimage-pysrc.html#tifimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Try to read Tiff images header...</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.tifimage-pysrc.html#tifimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Wrapper for TiffIO.</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="write"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">write</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.tifimage-pysrc.html#tifimage.write">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Overrides the fabioimage.write method and provides a simple TIFF image
+  writer.</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>fname</code></strong> - name of the file to save the image to</li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#write">fabioimage.fabioimage.write</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.xsdimage-module.html b/epydoc/fabio.xsdimage-module.html
new file mode 100644
index 0000000..34584ab
--- /dev/null
+++ b/epydoc/fabio.xsdimage-module.html
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.xsdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module xsdimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.xsdimage-module.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module xsdimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.xsdimage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+
+Authors: Jérôme Kieffer, ESRF 
+         email:jerome.kieffer at esrf.fr
+
+XSDimge are XML files containing numpy arrays 
+
+</pre>
+
+<hr />
+<div class="fields">      <p><strong>Author:</strong>
+        J\xc3\xa9r\xc3\xb4me Kieffer
+      </p>
+      <p><strong>Contact:</strong>
+        jerome.kieffer at esrf.eu
+      </p>
+      <p><strong>Copyright:</strong>
+        European Synchrotron Radiation Facility, Grenoble, France
+      </p>
+      <p><strong>License:</strong>
+        GPLv3+
+      </p>
+</div><!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a href="fabio.xsdimage.xsdimage-class.html" class="summary-name">xsdimage</a><br />
+      Read the XSDataImage XML File data format
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger("xsdimage")">logging.getLogger("xsdimage")</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'fabio'"><code class="variable-quote">'</code><code class="variable-string">fabio</code><code class="variable-quote">'</code></code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.xsdimage-pysrc.html b/epydoc/fabio.xsdimage-pysrc.html
new file mode 100644
index 0000000..abbfa21
--- /dev/null
+++ b/epydoc/fabio.xsdimage-pysrc.html
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.xsdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        Module xsdimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.xsdimage-pysrc.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="fabio.xsdimage-module.html">Module fabio.xsdimage</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"># coding: utf8</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-docstring">Authors: Jérôme Kieffer, ESRF </tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-docstring">         email:jerome.kieffer at esrf.fr</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-docstring">XSDimge are XML files containing numpy arrays </tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">"Jérôme Kieffer"</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-name">__contact__</tt> <tt class="py-op">=</tt> <tt class="py-string">"jerome.kieffer at esrf.eu"</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> <tt class="py-string">"GPLv3+"</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-name">__copyright__</tt> <tt class="py-op">=</tt> <tt class="py-string">"European Synchrotron Radiation Facility, Grenoble, France"</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt><tt class="py-op">,</tt> <tt class="py-name">numpy</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable fabio.GEimage.logger=fabio.GEimage-module.html#logger,Variable fabio.HiPiCimage.logger=fabio.HiPiCimage-module.html#logger,Variable fabio.OXDimage.logger=fabio.OXDimage-module.html#logger,Variable fabio.adscimage.logger=fabio.adscimage-module.html#logger,Variable fabio.binaryimage.logger=fabio.binaryimage-module.html#logger,Variable fabio.bruker100image.logger=fabio.bru [...]
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"xsdimage"</tt><tt class="py-op">)</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module fabio.fabioimage=fabio.fabioimage-module.html,Class fabio.fabioimage.fabioimage=fabio.fabioimage.fabioimage-class.html"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-1', 'fabioimage', 'link-1');">fabioimage</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-2', 'fabioimage', 'link-1');">fabioimage</a></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">base64</tt><tt class="py-op">,</tt> <tt class="py-name">hashlib</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">lxml</tt> <tt class="py-keyword">import</tt> <tt class="py-name">etree</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">    <tt id="link-3" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-3', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"lxml library is probably not part of your python installation: disabling xsdimage format"</tt><tt class="py-op">)</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt class="py-name">etree</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"> </tt>
+<a name="xsdimage"></a><div id="xsdimage-def"><a name="L24"></a><tt class="py-lineno"> 24</tt> <a class="py-toggle" href="#" id="xsdimage-toggle" onclick="return toggle('xsdimage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="fabio.xsdimage.xsdimage-class.html">xsdimage</a><tt class="py-op">(</tt><tt class="py-base-class">fabioimage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="xsdimage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="xsdimage-expanded"><a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">    <tt class="py-docstring">""" </tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-docstring">    Read the XSDataImage XML File data format </tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="xsdimage.__init__"></a><div id="xsdimage.__init__-def"><a name="L28"></a><tt class="py-lineno"> 28</tt> <a class="py-toggle" href="#" id="xsdimage.__init__-toggle" onclick="return toggle('xsdimage.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.xsdimage.xsdimage-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op" [...]
+</div><div id="xsdimage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="xsdimage.__init__-expanded"><a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-docstring">        Constructor of the class XSDataImage.</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-docstring">        @param _strFilename: the name of the file to open</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-docstring">        @type  _strFilename: string</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt id="link-4" class="py-name"><a title="fabio.fabioimage
+fabio.fabioimage.fabioimage" class="py-name" href="#" onclick="return doclink('link-4', 'fabioimage', 'link-1');">fabioimage</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method fabio.OXDimage.Section.__init__()=fabio.OXDimage.Section-class.html#__init__,Method fabio.TiffIO.TiffIO.__init__()=fabio.TiffIO.TiffIO-class.html#__init__,Method fabio.adscimage.adscimage.__init__()=fabio.adscimage.adscimage-class.html#__init__,Method fabio.binaryimage.binaryimage.__ini [...]
+fabio.TiffIO.TiffIO.__init__
+fabio.adscimage.adscimage.__init__
+fabio.binaryimage.binaryimage.__init__
+fabio.cbfimage.CIF.__init__
+fabio.cbfimage.cbfimage.__init__
+fabio.datIO.fabiodata.__init__
+fabio.dm3image.dm3image.__init__
+fabio.edfimage.Frame.__init__
+fabio.edfimage.edfimage.__init__
+fabio.fabioimage.fabioimage.__init__
+fabio.fabioutils.BZ2File.__init__
+fabio.fabioutils.File.__init__
+fabio.fabioutils.FilenameObject.__init__
+fabio.fabioutils.GzipFile.__init__
+fabio.fabioutils.StringIO.__init__
+fabio.fabioutils.UnknownCompressedFile.__init__
+fabio.file_series.file_series.__init__
+fabio.file_series.filename_series.__init__
+fabio.file_series.numbered_file_series.__init__
+fabio.mar345image.mar345image.__init__
+fabio.pnmimage.pnmimage.__init__
+fabio.tifimage.Image_File_Directory.__init__
+fabio.tifimage.Image_File_Directory_entry.__init__
+fabio.tifimage.Tiff_header.__init__
+fabio.tifimage.tifimage.__init__
+fabio.xsdimage.xsdimage.__init__" class="py-name" href="#" onclick="return doclink('link-5', '__init__', 'link-5');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-6" class="py-name" targets="Variable fabio.edfimage.Frame.data=fabio.edfimage.Frame-class.html#data,Variable fabio.edfimage.edfimage.data=fabio.edfimage.edfimage-class.html#data"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-6', 'data', 'link-6');">data</a></tt><tt class="py-op">=</tt><tt id="link-7" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-7', 'data', 'link-6');">data</a></tt><tt class="py-op">,</tt> <tt id="link-8" class="py-name" targets="Variable fabio.edfimage.edfimage.header=fabio.edfimage.edfimage-class.html#header"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-8', 'header', 'link-8');">header</a></tt><tt class="py-op">=</tt><tt id="link-9" class="py-name"><a title="fabio.edfimage.ed [...]
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Variable fabio.edfimage.edfimage.dims=fabio.edfimage.edfimage-class.html#dims"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-10', 'dims', 'link-10');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Variable fabio.fabioutils.BZ2File.size=fabio.fabioutils.BZ2File-class.html#size,Variable fabio.fabioutils.File.size=fabio.fabioutils.File-class.html#size,Variable fabio.fabioutils.GzipFile.size=fabio.fabioutils.GzipFile-class.html#size,Variable fabio.fabioutils.StringIO.size=fabio.fabioutils.StringIO-class.html#size"> [...]
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-11', 'size', 'link-11');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">coding</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">fname</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method fabio.GEimage.GEimage.read()=fabio.GEimage.GEimage-class.html#read,Method fabio.GEimage_old.GEimage.read()=fabio.GEimage_old.GEimage-class.html#read,Method fabio.HiPiCimage.HiPiCimage.read()=fabio.HiPiCimage.HiPiCimage-class.html#read,Method fabio.OXDimage.OXDimage.read()=fabio.OXDimage.OXDimage-class.html# [...]
+fabio.GEimage_old.GEimage.read
+fabio.HiPiCimage.HiPiCimage.read
+fabio.OXDimage.OXDimage.read
+fabio.adscimage.adscimage.read
+fabio.binaryimage.binaryimage.read
+fabio.bruker100image.bruker100image.read
+fabio.brukerimage.brukerimage.read
+fabio.cbfimage.cbfimage.read
+fabio.cf_io.read
+fabio.datIO.columnfile.read
+fabio.datIO.fabiodata.read
+fabio.dm3image.dm3image.read
+fabio.edfimage.edfimage.read
+fabio.fabioimage.fabioimage.read
+fabio.fit2dmaskimage.fit2dmaskimage.read
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage.read
+fabio.kcdimage.kcdimage.read
+fabio.mar345image.mar345image.read
+fabio.pnmimage.pnmimage.read
+fabio.tifimage.tifimage.read
+fabio.xsdimage.xsdimage.read" class="py-name" href="#" onclick="return doclink('link-12', 'read', 'link-12');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
+<a name="xsdimage.read"></a><div id="xsdimage.read-def"><a name="L46"></a><tt class="py-lineno"> 46</tt> <a class="py-toggle" href="#" id="xsdimage.read-toggle" onclick="return toggle('xsdimage.read');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.xsdimage.xsdimage-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fname</tt><tt class="py-op">,</tt> <tt class="py-p [...]
+</div><div id="xsdimage.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="xsdimage.read-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="fabio.edfimage.edfimage.header" class="py-name" href="#" onclick="return doclink('link-13', 'header', 'link-8');">header</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method fabio.fabioimage.fabioimage.resetvals()=fabio.fabioimage.fabioimage-class.html#resetvals"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-14', 'resetvals', 'link-14');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">fname</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">        <tt class="py-name">infile</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method fabio.fabioimage.fabioimage._open()=fabio.fabioimage.fabioimage-class.html#_open"><a title="fabio.fabioimage.fabioimage._open" class="py-name" href="#" onclick="return doclink('link-15', '_open', 'link-15');">_open</a></tt><tt class="py-op">(</tt><tt clas [...]
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method fabio.GEimage.GEimage._readheader()=fabio.GEimage.GEimage-class.html#_readheader,Method fabio.GEimage_old.GEimage._readheader()=fabio.GEimage_old.GEimage-class.html#_readheader,Method fabio.HiPiCimage.HiPiCimage._readheader()=fabio.HiPiCimage.HiPiCimage-class.html#_readheader,Method fabio.OXDimage.OXDimage._rea [...]
+fabio.GEimage_old.GEimage._readheader
+fabio.HiPiCimage.HiPiCimage._readheader
+fabio.OXDimage.OXDimage._readheader
+fabio.adscimage.adscimage._readheader
+fabio.brukerimage.brukerimage._readheader
+fabio.cbfimage.cbfimage._readheader
+fabio.dm3image.dm3image._readheader
+fabio.edfimage.edfimage._readheader
+fabio.fabioimage.fabioimage._readheader
+fabio.fit2dmaskimage.fit2dmaskimage._readheader
+fabio.fit2dspreadsheetimage.fit2dspreadsheetimage._readheader
+fabio.kcdimage.kcdimage._readheader
+fabio.mar345image.mar345image._readheader
+fabio.marccdimage.marccdimage._readheader
+fabio.pilatusimage.pilatusimage._readheader
+fabio.pnmimage.pnmimage._readheader
+fabio.tifimage.tifimage._readheader
+fabio.xsdimage.xsdimage._readheader" class="py-name" href="#" onclick="return doclink('link-16', '_readheader', 'link-16');">_readheader</a></tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Variable fabio.edfimage.edfimage.dim1=fabio.edfimage.edfimage-class.html#dim1"><a title="fabio.edfimage.edfimage.dim1" class="py-name" href="#" onclick="return doclink('link-17', 'dim1', 'link-17');">dim1</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class=" [...]
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">"XSD file %s is corrupt, no dimensions in it"</tt> <tt class="py-op">%</tt> <tt class="py-name">fname</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Variable fabio.edfimage.Frame.bytecode=fabio.edfimage.Frame-class.html#bytecode,Variable fabio.edfimage.edfimage.bytecode=fabio.edfimage.edfimage-class.html#bytecode"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-20', 'bytecode', 'link-20');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Variable fabio.edfimage.edfimage.bpp=fabio.edfimage.edfimage-class.html#bpp"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-21', 'bpp', 'link-21');">bpp</a></tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name" targets="Method fabio.file_series.file_series.le [...]
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-23', 'bytecode', 'link-20');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method fabio.cbfimage.CIF.tostring()=fabio.cbfimage.CIF-class.html#tostring,Method fabio.fabioutils.FilenameObject.tostring()=fabio.fabioutils.FilenameObject-class.html#tostring"><a title="fabio.cbfimage.CIF.tostring
+fabio.fabioutils.FilenameObject.tostring" class="py-name" href="#" onclick="return doclink('link-24', 'tostring', 'link-24');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">TypeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-25', 'bytecode', 'link-20');">bytecode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">int32</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="fabio.edfimage.edfimage.bpp" class="py-name" href="#" onclick="return doclink('link-26', 'bpp', 'link-21');">bpp</a></tt> <tt class="py-op">=</tt> <tt class="py-number">32</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">            <tt id="link-27" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-27', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Defaulting type to int32"</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">exp_size</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-28" class="py-name" targets="Variable fabio.fabioutils.i=fabio.fabioutils-module.html#i"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-28', 'i', 'link-28');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="fabio.edfimage.edfimage.dims" clas [...]
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">            <tt class="py-name">exp_size</tt> <tt class="py-op">*=</tt> <tt id="link-30" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-30', 'i', 'link-28');">i</a></tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">exp_size</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-31', 'size', 'link-11');">size</a></tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-name">decData</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">coding</tt> <tt class="py-op">==</tt> <tt class="py-string">"base64"</tt><tt class="py-op">:</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">            <tt class="py-name">decData</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64decode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rawData</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">coding</tt> <tt class="py-op">==</tt> <tt class="py-string">"base32"</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-name">decData</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b32decode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rawData</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">coding</tt> <tt class="py-op">==</tt> <tt class="py-string">"base16"</tt><tt class="py-op">:</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">            <tt class="py-name">decData</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b16decode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rawData</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">            <tt id="link-32" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-32', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"Unable to recognize the encoding of the data !!! got %s, expected base64, base32 or base16, I assume it is base64 "</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">coding</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">            <tt class="py-name">decData</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64decode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rawData</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt><tt class="py-op">:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">            <tt class="py-keyword">assert</tt>  <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt><tt class="py-op">(</tt><tt class="py-name">decData</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">hexdigest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">md5< [...]
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-33', 'data', 'link-6');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">decData</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="fabio.edfimage.Frame.bytecode
+fabio.edfimage.edfimage.bytecode" class="py-name" href="#" onclick="return doclink('link-34', 'bytecode', 'link-20');">bytecode</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-35', 'dims', 'lin [...]
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">numpy</tt><tt class="py-op">.</tt><tt class="py-name">little_endian</tt><tt class="py-op">:</tt> <tt class="py-comment">#by default little endian</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="fabio.edfimage.Frame.data
+fabio.edfimage.edfimage.data" class="py-name" href="#" onclick="return doclink('link-36', 'data', 'link-6');">data</a></tt><tt class="py-op">.</tt><tt class="py-name">byteswap</tt><tt class="py-op">(</tt><tt class="py-name">inplace</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="fabio.fabioimage.fabioimage.resetvals" class="py-name" href="#" onclick="return doclink('link-37', 'resetvals', 'link-14');">resetvals</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-comment">#        # ensure the PIL image is reset</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pilimage</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"> </tt>
+<a name="xsdimage._readheader"></a><div id="xsdimage._readheader-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="xsdimage._readheader-toggle" onclick="return toggle('xsdimage._readheader');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="fabio.xsdimage.xsdimage-class.html#_readheader">_readheader</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">infile</ [...]
+</div><div id="xsdimage._readheader-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="xsdimage._readheader-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">        Read all headers in a file and populate self.header</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-docstring">        data is not yet populated</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-docstring">        @type infile: file object open in read mode</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">xml</tt> <tt class="py-op">=</tt> <tt class="py-name">etree</tt><tt class="py-op">.</tt><tt class="py-name">parse</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-38', 'dims', 'link-10');">dims</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-39" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-39', 'i', 'link-28');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">xpath</tt><tt class="py-op">(</tt><tt class="py-string">"//shape"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="fabio.edfimage.edfimage.dims" class="py-name" href="#" onclick="return doclink('link-40', 'dims', 'link-10');">dims</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="fabio.fabio [...]
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">                <tt id="link-42" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-42', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"%s Shape: Unable to convert %s to integer in %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt id="link-43" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink [...]
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-45" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-45', 'i', 'link-28');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">xpath</tt><tt class="py-op">(</tt><tt class="py-string">"//size"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="fabio.fabioutils.BZ2File.size
+fabio.fabioutils.File.size
+fabio.fabioutils.GzipFile.size
+fabio.fabioutils.StringIO.size" class="py-name" href="#" onclick="return doclink('link-46', 'size', 'link-11');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-47" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-47', 'i', 'link-28');">i</a></tt><tt class="py-op">.</tt><tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt><tt class="py-comment">#IGNORE:W0703</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                <tt id="link-48" class="py-name"><a title="fabio.GEimage.logger
+fabio.HiPiCimage.logger
+fabio.OXDimage.logger
+fabio.adscimage.logger
+fabio.binaryimage.logger
+fabio.bruker100image.logger
+fabio.brukerimage.logger
+fabio.cbfimage.logger
+fabio.compression.logger
+fabio.converters.logger
+fabio.dm3image.logger
+fabio.edfimage.logger
+fabio.fabioimage.logger
+fabio.fabioutils.logger
+fabio.file_series.logger
+fabio.kcdimage.logger
+fabio.mar345image.logger
+fabio.marccdimage.logger
+fabio.openimage.logger
+fabio.pnmimage.logger
+fabio.readbytestream.logger
+fabio.tifimage.logger
+fabio.xsdimage.logger" class="py-name" href="#" onclick="return doclink('link-48', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">"%s Size: Unable to convert %s to integer in %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt id="link-49" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink( [...]
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-51" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-51', 'i', 'link-28');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">xpath</tt><tt class="py-op">(</tt><tt class="py-string">"//dtype"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dtype</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-52', 'i', 'link-28');">i</a></tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">coding</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-53" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-53', 'i', 'link-28');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">xpath</tt><tt class="py-op">(</tt><tt class="py-string">"//coding"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">            <tt class="py-name">j</tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-54', 'i', 'link-28');">i</a></tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">j</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">coding</tt> <tt class="py-op">=</tt> <tt class="py-name">j</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-55" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-55', 'i', 'link-28');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">xpath</tt><tt class="py-op">(</tt><tt class="py-string">"//data"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rawData</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-56', 'i', 'link-28');">i</a></tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-57" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-57', 'i', 'link-28');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">xpath</tt><tt class="py-op">(</tt><tt class="py-string">"//md5sum"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">            <tt class="py-name">j</tt> <tt class="py-op">=</tt> <tt id="link-58" class="py-name"><a title="fabio.fabioutils.i" class="py-name" href="#" onclick="return doclink('link-58', 'i', 'link-28');">i</a></tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">j</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt> <tt class="py-op">=</tt> <tt class="py-name">j</tt><tt class="py-op">.</tt><tt class="py-name">text</tt> </tt>
+</div></div><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">etree</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt id="link-59" class="py-name" targets="Module fabio.xsdimage=fabio.xsdimage-module.html,Class fabio.xsdimage.xsdimage=fabio.xsdimage.xsdimage-class.html"><a title="fabio.xsdimage
+fabio.xsdimage.xsdimage" class="py-name" href="#" onclick="return doclink('link-59', 'xsdimage', 'link-59');">xsdimage</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:41 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/fabio.xsdimage.xsdimage-class.html b/epydoc/fabio.xsdimage.xsdimage-class.html
new file mode 100644
index 0000000..8635205
--- /dev/null
+++ b/epydoc/fabio.xsdimage.xsdimage-class.html
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio.xsdimage.xsdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="fabio-module.html">Package fabio</a> ::
+        <a href="fabio.xsdimage-module.html">Module xsdimage</a> ::
+        Class xsdimage
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="fabio.xsdimage.xsdimage-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class xsdimage</h1><p class="nomargin-top"><span class="codelink"><a href="fabio.xsdimage-pysrc.html#xsdimage">source code</a></span></p>
+<pre class="base-tree">
+           object --+    
+                    |    
+<a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a> --+
+                        |
+                       <strong class="uidshort">xsdimage</strong>
+</pre>
+
+<hr />
+<p>Read the XSDataImage XML File data format</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.xsdimage.xsdimage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">header</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">fname</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Constructor of the class XSDataImage.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.xsdimage-pysrc.html#xsdimage.__init__">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.xsdimage.xsdimage-class.html#_readheader" class="summary-sig-name" onclick="show_private();">_readheader</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">infile</span>)</span><br />
+      Read all headers in a file and populate self.header data is not yet 
+      populated</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.xsdimage-pysrc.html#xsdimage._readheader">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="fabio.xsdimage.xsdimage-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">fname</span>,
+        <span class="summary-sig-arg">frame</span>=<span class="summary-sig-default">None</span>)</span><br />
+      To be overridden - fill in self.header and self.data</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="fabio.xsdimage-pysrc.html#xsdimage.read">source code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#add">add</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#convert">convert</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#load">load</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#next">next</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#previous">previous</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#save">save</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#write">write</a></code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream" onclick="show_private();">_compressed_stream</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_open" onclick="show_private();">_open</a></code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Class Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-ClassVariables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b> (private):
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file" onclick="show_private();">_need_a_real_file</a></code>,
+      <code><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read" onclick="show_private();">_need_a_seek_to_read</a></code>
+      </p></div>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="fabio.fabioimage.fabioimage-class.html">fabioimage.fabioimage</a></code></b>:
+      <code><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a></code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">header</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">fname</span>=<span class="sig-default">None</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.xsdimage-pysrc.html#xsdimage.__init__">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Constructor of the class XSDataImage.</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>_strFilename</code></strong> (string) - the name of the file to open</li>
+    </ul></dd>
+    <dt>Overrides:
+        object.__init__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="_readheader"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">_readheader</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">infile</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.xsdimage-pysrc.html#xsdimage._readheader">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>Read all headers in a file and populate self.header data is not yet 
+  populated</p>
+  <dl class="fields">
+    <dt>Parameters:</dt>
+    <dd><ul class="nomargin-top">
+        <li><strong class="pname"><code>infile</code></strong> (file object open in read mode)</li>
+    </ul></dd>
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#_readheader" onclick="show_private();">fabioimage.fabioimage._readheader</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="read"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">fname</span>,
+        <span class="sig-arg">frame</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="fabio.xsdimage-pysrc.html#xsdimage.read">source code</a></span> 
+    </td>
+  </tr></table>
+  
+  <p>To be overridden - fill in self.header and self.data</p>
+  <dl class="fields">
+    <dt>Overrides:
+        <a href="fabio.fabioimage.fabioimage-class.html#read">fabioimage.fabioimage.read</a>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/frames.html b/epydoc/frames.html
new file mode 100644
index 0000000..f80bd72
--- /dev/null
+++ b/epydoc/frames.html
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+          "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title> API Documentation </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="toc.html" name="moduleListFrame"
+           id="moduleListFrame" />
+    <frame src="toc-everything.html" name="moduleFrame"
+           id="moduleFrame" />
+  </frameset>
+  <frame src="fabio-module.html" name="mainFrame" id="mainFrame" />
+</frameset>
+</html>
diff --git a/epydoc/help.html b/epydoc/help.html
new file mode 100644
index 0000000..82034dd
--- /dev/null
+++ b/epydoc/help.html
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Help</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Help   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%"> </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="help.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+
+<h1 class="epydoc"> API Documentation </h1>
+
+<p> This document contains the API (Application Programming Interface)
+documentation for this project.  Documentation for the Python
+objects defined by the project is divided into separate pages for each
+package, module, and class.  The API documentation also includes two
+pages containing information about the project as a whole: a trees
+page, and an index page.  </p>
+
+<h2> Object Documentation </h2>
+
+  <p>Each <strong>Package Documentation</strong> page contains: </p>
+  <ul>
+    <li> A description of the package. </li>
+    <li> A list of the modules and sub-packages contained by the
+    package.  </li>
+    <li> A summary of the classes defined by the package. </li>
+    <li> A summary of the functions defined by the package. </li>
+    <li> A summary of the variables defined by the package. </li>
+    <li> A detailed description of each function defined by the
+    package. </li>
+    <li> A detailed description of each variable defined by the
+    package. </li>
+  </ul>
+  
+  <p>Each <strong>Module Documentation</strong> page contains:</p>
+  <ul>
+    <li> A description of the module. </li>
+    <li> A summary of the classes defined by the module. </li>
+    <li> A summary of the functions defined by the module. </li>
+    <li> A summary of the variables defined by the module. </li>
+    <li> A detailed description of each function defined by the
+    module. </li>
+    <li> A detailed description of each variable defined by the
+    module. </li>
+  </ul>
+  
+  <p>Each <strong>Class Documentation</strong> page contains: </p>
+  <ul>
+    <li> A class inheritance diagram. </li>
+    <li> A list of known subclasses. </li>
+    <li> A description of the class. </li>
+    <li> A summary of the methods defined by the class. </li>
+    <li> A summary of the instance variables defined by the class. </li>
+    <li> A summary of the class (static) variables defined by the
+    class. </li> 
+    <li> A detailed description of each method defined by the
+    class. </li>
+    <li> A detailed description of each instance variable defined by the
+    class. </li> 
+    <li> A detailed description of each class (static) variable defined
+    by the class. </li> 
+  </ul>
+
+<h2> Project Documentation </h2>
+
+  <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>
+  <ul>
+    <li> The <em>module hierarchy</em> lists every package and module, with
+    modules grouped into packages.  At the top level, and within each
+    package, modules and sub-packages are listed alphabetically. </li>
+    <li> The <em>class hierarchy</em> lists every class, grouped by base
+    class.  If a class has more than one base class, then it will be
+    listed under each base class.  At the top level, and under each base
+    class, classes are listed alphabetically. </li>
+  </ul>
+  
+  <p> The <strong>Index</strong> page contains indices of terms and
+  identifiers: </p>
+  <ul>
+    <li> The <em>term index</em> lists every term indexed by any object's
+    documentation.  For each term, the index provides links to each
+    place where the term is indexed. </li>
+    <li> The <em>identifier index</em> lists the (short) name of every package,
+    module, class, method, function, variable, and parameter.  For each
+    identifier, the index provides a short description, and a link to
+    its documentation. </li>
+  </ul>
+
+<h2> The Table of Contents </h2>
+
+<p> The table of contents occupies the two frames on the left side of
+the window.  The upper-left frame displays the <em>project
+contents</em>, and the lower-left frame displays the <em>module
+contents</em>: </p>
+
+<table class="help summary" border="1" cellspacing="0" cellpadding="3">
+  <tr style="height: 30%">
+    <td align="center" style="font-size: small">
+       Project<br />Contents<hr />...</td>
+    <td align="center" style="font-size: small" rowspan="2" width="70%">
+      API<br />Documentation<br />Frame<br /><br /><br />
+    </td>
+  </tr>
+  <tr>
+    <td align="center" style="font-size: small">
+      Module<br />Contents<hr /> <br />...<br /> 
+    </td>
+  </tr>
+</table><br />
+
+<p> The <strong>project contents frame</strong> contains a list of all packages
+and modules that are defined by the project.  Clicking on an entry
+will display its contents in the module contents frame.  Clicking on a
+special entry, labeled "Everything," will display the contents of
+the entire project. </p>
+
+<p> The <strong>module contents frame</strong> contains a list of every
+submodule, class, type, exception, function, and variable defined by a
+module or package.  Clicking on an entry will display its
+documentation in the API documentation frame.  Clicking on the name of
+the module, at the top of the frame, will display the documentation
+for the module itself. </p>
+
+<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top
+navigation bar can be used to control whether the table of contents is
+displayed or not. </p>
+
+<h2> The Navigation Bar </h2>
+
+<p> A navigation bar is located at the top and bottom of every page.
+It indicates what type of page you are currently viewing, and allows
+you to go to related pages.  The following table describes the labels
+on the navigation bar.  Note that not some labels (such as
+[Parent]) are not displayed on all pages. </p>
+
+<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
+<tr class="summary">
+  <th>Label</th>
+  <th>Highlighted when...</th>
+  <th>Links to...</th>
+</tr>
+  <tr><td valign="top"><strong>[Parent]</strong></td>
+      <td valign="top"><em>(never highlighted)</em></td>
+      <td valign="top"> the parent of the current package </td></tr>
+  <tr><td valign="top"><strong>[Package]</strong></td>
+      <td valign="top">viewing a package</td>
+      <td valign="top">the package containing the current object
+      </td></tr>
+  <tr><td valign="top"><strong>[Module]</strong></td>
+      <td valign="top">viewing a module</td>
+      <td valign="top">the module containing the current object
+      </td></tr> 
+  <tr><td valign="top"><strong>[Class]</strong></td>
+      <td valign="top">viewing a class </td>
+      <td valign="top">the class containing the current object</td></tr>
+  <tr><td valign="top"><strong>[Trees]</strong></td>
+      <td valign="top">viewing the trees page</td>
+      <td valign="top"> the trees page </td></tr>
+  <tr><td valign="top"><strong>[Index]</strong></td>
+      <td valign="top">viewing the index page</td>
+      <td valign="top"> the index page </td></tr>
+  <tr><td valign="top"><strong>[Help]</strong></td>
+      <td valign="top">viewing the help page</td>
+      <td valign="top"> the help page </td></tr>
+</table>
+
+<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below
+the top navigation bar can be used to control whether documentation
+for private objects is displayed.  Private objects are usually defined
+as objects whose (short) names begin with a single underscore, but do
+not end with an underscore.  For example, "<code>_x</code>",
+"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
+are private objects; but "<code>re.sub</code>",
+"<code>__init__</code>", and "<code>type_</code>" are not.  However,
+if a module defines the "<code>__all__</code>" variable, then its
+contents are used to decide which objects are private. </p>
+
+<p> A timestamp below the bottom navigation bar indicates when each
+page was last updated. </p>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Help   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/identifier-index.html b/epydoc/identifier-index.html
new file mode 100644
index 0000000..1228b94
--- /dev/null
+++ b/epydoc/identifier-index.html
@@ -0,0 +1,1731 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Identifier Index</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Indices   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%"> </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="identifier-index.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table border="0" width="100%">
+<tr valign="bottom"><td>
+<h1 class="epydoc">Identifier Index</h1>
+</td><td>
+[
+ <a href="#A">A</a>
+ <a href="#B">B</a>
+ <a href="#C">C</a>
+ <a href="#D">D</a>
+ <a href="#E">E</a>
+ <a href="#F">F</a>
+ <a href="#G">G</a>
+ <a href="#H">H</a>
+ <a href="#I">I</a>
+ <a href="#J">J</a>
+ <a href="#K">K</a>
+ <a href="#L">L</a>
+ <a href="#M">M</a>
+ <a href="#N">N</a>
+ <a href="#O">O</a>
+ <a href="#P">P</a>
+  Q
+ <a href="#R">R</a>
+ <a href="#S">S</a>
+ <a href="#T">T</a>
+ <a href="#U">U</a>
+ <a href="#V">V</a>
+ <a href="#W">W</a>
+ <a href="#X">X</a>
+  Y
+  Z
+ <a href="#_">_</a>
+]
+</td></table>
+<table border="0" width="100%">
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="A">A</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#add">add()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.adscimage.adscimage-class.html">adscimage</a><br />
+<span class="index-where">(in <a href="fabio.adscimage-module.html">fabio.adscimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#appendFrame">appendFrame()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.adscimage-module.html">adscimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#ALLOW_MULTIPLE_STRIPS">ALLOW_MULTIPLE_STRIPS</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="B">B</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html#baseline_tiff_tags">baseline_tiff_tags</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage-module.html#BLOCKSIZE">BLOCKSIZE</a><br />
+<span class="index-where">(in <a href="fabio.edfimage-module.html">fabio.edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.byte_offset-module.html">byte_offset</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html#BIG_ENDIAN">BIG_ENDIAN</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#bpp">bpp</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#bytecode">bytecode</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#BINARY_MARKER">BINARY_MARKER</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.bruker100image-module.html">bruker100image</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#bytecode">bytecode</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.binaryimage-module.html">binaryimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.bruker100image.bruker100image-class.html">bruker100image</a><br />
+<span class="index-where">(in <a href="fabio.bruker100image-module.html">fabio.bruker100image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.BZ2File-class.html">BZ2File</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.binaryimage.binaryimage-class.html">binaryimage</a><br />
+<span class="index-where">(in <a href="fabio.binaryimage-module.html">fabio.binaryimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.brukerimage-module.html">brukerimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#BLANK">BLANK</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.brukerimage.brukerimage-class.html">brukerimage</a><br />
+<span class="index-where">(in <a href="fabio.brukerimage-module.html">fabio.brukerimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="C">C</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#C_SIZES">C_SIZES</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#checkData">checkData()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.converters-module.html#CONVERSION_DATA">CONVERSION_DATA</a><br />
+<span class="index-where">(in <a href="fabio.converters-module.html">fabio.converters</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#C_TO_STRUCT">C_TO_STRUCT</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#checkHeader">checkHeader()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.converters-module.html#CONVERSION_HEADER">CONVERSION_HEADER</a><br />
+<span class="index-where">(in <a href="fabio.converters-module.html">fabio.converters</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#capsHeader">capsHeader</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#checkHeader">checkHeader()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#convert">convert()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage-module.html">cbfimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html">CIF</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage-module.html">fabio.cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.converters-module.html#convert_data">convert_data()</a><br />
+<span class="index-where">(in <a href="fabio.converters-module.html">fabio.converters</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.cbfimage-class.html">cbfimage</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage-module.html">fabio.cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#classname">classname</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.converters-module.html#convert_data_integer">convert_data_integer()</a><br />
+<span class="index-where">(in <a href="fabio.converters-module.html">fabio.converters</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#CDEFINITION">CDEFINITION</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.GzipFile-class.html#closed">closed</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.GzipFile-class.html">GzipFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.converters-module.html#convert_header">convert_header()</a><br />
+<span class="index-where">(in <a href="fabio.converters-module.html">fabio.converters</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cf_io-module.html">cf_io</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.datIO.columnfile-class.html">columnfile</a><br />
+<span class="index-where">(in <a href="fabio.datIO-module.html">fabio.datIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.converters-module.html">converters</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.OXDimage-class.html#checkData">checkData()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.OXDimage-class.html">OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#compByteOffet_numpy">compByteOffet_numpy()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#current">current()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.cbfimage-class.html#checkData">checkData()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.cbfimage-class.html">cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#compPCK">compPCK()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#current">current()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#checkData">checkData()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html">compression</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#current_image">current_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#checkData">checkData()</a><br />
+<span class="index-where">(in <a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html">fit2dmaskimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#COMPRESSORS">COMPRESSORS</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#current_image">current_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.kcdimage.kcdimage-class.html#checkData">checkData()</a><br />
+<span class="index-where">(in <a href="fabio.kcdimage.kcdimage-class.html">kcdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#compTY1">compTY1()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#current_object">current_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html#checkData">checkData()</a><br />
+<span class="index-where">(in <a href="fabio.mar345image.mar345image-class.html">mar345image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#construct_filename">construct_filename()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#current_object">current_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="D">D</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#data">data</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#decBzip2">decBzip2()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#delHeader">delHeader()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#data">data</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#decGzip">decGzip()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#delHeaderKeys">delHeaderKeys()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.dm3image-module.html#DATA_BYTES">DATA_BYTES</a><br />
+<span class="index-where">(in <a href="fabio.dm3image-module.html">fabio.dm3image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.FilenameObject-class.html#deconstruct_filename">deconstruct_filename()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.FilenameObject-class.html">FilenameObject</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.GEimage-module.html#demo">demo()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage-module.html">fabio.GEimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage-module.html#DATA_TYPES">DATA_TYPES</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage-module.html">fabio.cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#deconstruct_filename">deconstruct_filename()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#deprecated">deprecated()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.dm3image-module.html#DATA_TYPES">DATA_TYPES</a><br />
+<span class="index-where">(in <a href="fabio.dm3image-module.html">fabio.dm3image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#decPCK">decPCK()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage-module.html#DETECTOR_TYPES">DETECTOR_TYPES</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage-module.html">fabio.OXDimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage-module.html#DATA_TYPES">DATA_TYPES</a><br />
+<span class="index-where">(in <a href="fabio.edfimage-module.html">fabio.edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#decTY1">decTY1()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#dictAscii">dictAscii</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.kcdimage-module.html#DATA_TYPES">DATA_TYPES</a><br />
+<span class="index-where">(in <a href="fabio.kcdimage-module.html">fabio.kcdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#decZlib">decZlib()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#dim1">dim1</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.readbytestream-module.html#DATATYPES">DATATYPES</a><br />
+<span class="index-where">(in <a href="fabio.readbytestream-module.html">fabio.readbytestream</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage-module.html#DEFAULT_HEADERS">DEFAULT_HEADERS</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage-module.html">fabio.OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#dim2">dim2</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.datIO-module.html">datIO</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage-module.html#DEFAULT_VALUES">DEFAULT_VALUES</a><br />
+<span class="index-where">(in <a href="fabio.edfimage-module.html">fabio.edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#dims">dims</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#DEBUG">DEBUG</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.kcdimage-module.html#DEFAULT_VALUES">DEFAULT_VALUES</a><br />
+<span class="index-where">(in <a href="fabio.kcdimage-module.html">fabio.kcdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image-module.html">dm3image</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#decByteOffet_cython">decByteOffet_cython()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage-module.html#deg2rad">deg2rad</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage-module.html">fabio.OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image.dm3image-class.html">dm3image</a><br />
+<span class="index-where">(in <a href="fabio.dm3image-module.html">fabio.dm3image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#decByteOffet_numpy">decByteOffet_numpy()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#delCapsHeader">delCapsHeader()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.openimage-module.html#do_magic">do_magic()</a><br />
+<span class="index-where">(in <a href="fabio.openimage-module.html">fabio.openimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#decByteOffet_python">decByteOffet_python()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#delData">delData()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#decByteOffet_weave">decByteOffet_weave()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#deleteFrame">deleteFrame()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="E">E</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage-module.html">edfimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#EOL">EOL</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#existsInLoop">existsInLoop()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html">edfimage</a><br />
+<span class="index-where">(in <a href="fabio.edfimage-module.html">fabio.edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.binaryimage.binaryimage-class.html#estimate_offset_value">estimate_offset_value()</a><br />
+<span class="index-where">(in <a href="fabio.binaryimage.binaryimage-class.html">binaryimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage.Image_File_Directory_entry-class.html#extract_data">extract_data()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.Image_File_Directory_entry-class.html">Image_File_Directory_entry</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#endianness">endianness()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#exists">exists()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#extract_filenumber">extract_filenumber()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="F">F</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio-module.html">fabio</a></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#FIELD_TYPE_OUT">FIELD_TYPE_OUT</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#first_image">first_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.datIO.fabiodata-class.html">fabiodata</a><br />
+<span class="index-where">(in <a href="fabio.datIO-module.html">fabio.datIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.File-class.html">File</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#first_object">first_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage-module.html">fabioimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series-module.html">file_series</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dmaskimage-module.html">fit2dmaskimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage-module.html">fabio.fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html">file_series</a><br />
+<span class="index-where">(in <a href="fabio.file_series-module.html">fabio.file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html">fit2dmaskimage</a><br />
+<span class="index-where">(in <a href="fabio.fit2dmaskimage-module.html">fabio.fit2dmaskimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html">fabioutils</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html">filename_series</a><br />
+<span class="index-where">(in <a href="fabio.file_series-module.html">fabio.file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dspreadsheetimage-module.html">fit2dspreadsheetimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#fastReadData">fastReadData()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.FilenameObject-class.html">FilenameObject</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html">fit2dspreadsheetimage</a><br />
+<span class="index-where">(in <a href="fabio.fit2dspreadsheetimage-module.html">fabio.fit2dspreadsheetimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#fastReadROI">fastReadROI()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#FILETYPES">FILETYPES</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html">Frame</a><br />
+<span class="index-where">(in <a href="fabio.edfimage-module.html">fabio.edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#FIELD_TYPE">FIELD_TYPE</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#first">first()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="G">G</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage-module.html#GE_HEADER_INFO">GE_HEADER_INFO</a><br />
+<span class="index-where">(in <a href="fabio.GEimage-module.html">fabio.GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getDim1">getDim1()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#getmean">getmean()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage-module.html">GEimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getDim2">getDim2()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#getmin">getmin()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html">GEimage</a><br />
+<span class="index-where">(in <a href="fabio.GEimage-module.html">fabio.GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getDims">getDims()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getNbFrames">getNbFrames()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage_old.GEimage-class.html">GEimage</a><br />
+<span class="index-where">(in <a href="fabio.GEimage_old-module.html">fabio.GEimage_old</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#getEdfBlock">getEdfBlock()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#getnum">getnum()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage_old-module.html">GEimage_old</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html#getframe">getframe()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage.GEimage-class.html">GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#getNumberOfImages">getNumberOfImages()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getBpp">getBpp()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getframe">getframe()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.Section-class.html#getSize">getSize()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.Section-class.html">Section</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#getByteCode">getByteCode()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#getframe">getframe()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.BZ2File-class.html#getSize">getSize()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.BZ2File-class.html">BZ2File</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getByteCode">getByteCode()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getHeader">getHeader()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.File-class.html#getSize">getSize()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.File-class.html">File</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getCapsHeader">getCapsHeader()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#getheader">getheader()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.GzipFile-class.html#getSize">getSize()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.GzipFile-class.html">GzipFile</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#getclassname">getclassname()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getHeaderKeys">getHeaderKeys()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.StringIO-class.html#getSize">getSize()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.StringIO-class.html">StringIO</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.OXDimage-class.html#getCompressionRatio">getCompressionRatio()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.OXDimage-class.html">OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#getImage">getImage()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#getstddev">getstddev()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#getData">getData()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#getImageFileDirectories">getImageFileDirectories()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.GzipFile-class.html">GzipFile</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#getData">getData()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#getInfo">getInfo()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#getData">getData()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#getmax">getmax()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="H">H</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#header">header</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#HEADER_NAMES">HEADER_NAMES</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.HiPiCimage.HiPiCimage-class.html">HiPiCimage</a><br />
+<span class="index-where">(in <a href="fabio.HiPiCimage-module.html">fabio.HiPiCimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#HEADER_FORMAT">HEADER_FORMAT</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage-module.html#HEADERITEMS">HEADERITEMS</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage-module.html">fabio.pnmimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#header_keys">header_keys</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.HiPiCimage-module.html">HiPiCimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="I">I</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#i">i</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#integrate_area">integrate_area()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#isAscii">isAscii()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.tifimage.Image_File_Directory-class.html">Image_File_Directory</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#interpret_header">interpret_header()</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.tifimage.Image_File_Directory_entry-class.html">Image_File_Directory_entry</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#isAscii">isAscii()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="J">J</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#jump">jump()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#jump_image">jump_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#jump_object">jump_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#jump">jump()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#jump_image">jump_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#jump_filename">jump_filename()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#jump_object">jump_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="K">K</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.kcdimage-module.html">kcdimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.kcdimage.kcdimage-class.html">kcdimage</a><br />
+<span class="index-where">(in <a href="fabio.kcdimage-module.html">fabio.kcdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#key">key</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr><td class="link-index"> </td><td class="link-index"> </td><td class="link-index"> </td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="L">L</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#last">last()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage-module.html">fabio.OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#last_image">last_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.adscimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.adscimage-module.html">fabio.adscimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.file_series-module.html">fabio.file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#last_object">last_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.binaryimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.binaryimage-module.html">fabio.binaryimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.kcdimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.kcdimage-module.html">fabio.kcdimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#len">len()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.bruker100image-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.bruker100image-module.html">fabio.bruker100image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345image-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.mar345image-module.html">fabio.mar345image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#lines">lines</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.brukerimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.brukerimage-module.html">fabio.brukerimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html#LITTLE_ENDIAN">LITTLE_ENDIAN</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage-module.html">fabio.cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.openimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.openimage-module.html">fabio.openimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#load">load()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage-module.html">fabio.pnmimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#loadCHIPLOT">loadCHIPLOT()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.converters-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.converters-module.html">fabio.converters</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.readbytestream-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.readbytestream-module.html">fabio.readbytestream</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#loadCIF">loadCIF()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.dm3image-module.html">fabio.dm3image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.GEimage-module.html">fabio.GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.edfimage-module.html">fabio.edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.xsdimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.xsdimage-module.html">fabio.xsdimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.HiPiCimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.HiPiCimage-module.html">fabio.HiPiCimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage-module.html">fabio.fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#LoopHasKey">LoopHasKey()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="M">M</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.openimage-module.html#MAGIC_NUMBERS">MAGIC_NUMBERS</a><br />
+<span class="index-where">(in <a href="fabio.openimage-module.html">fabio.openimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html">mar345image</a><br />
+<span class="index-where">(in <a href="fabio.mar345image-module.html">fabio.mar345image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage-module.html#MINIMUM_KEYS">MINIMUM_KEYS</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage-module.html">fabio.cbfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#make_format">make_format()</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html">marccdimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage-module.html#MINIMUM_KEYS">MINIMUM_KEYS</a><br />
+<span class="index-where">(in <a href="fabio.edfimage-module.html">fabio.edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#make_slice">make_slice()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.marccdimage.marccdimage-class.html">marccdimage</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.kcdimage-module.html#MINIMUM_KEYS">MINIMUM_KEYS</a><br />
+<span class="index-where">(in <a href="fabio.kcdimage-module.html">fabio.kcdimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.mar345_IO-module.html">mar345_IO</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#MAXIMAGES">MAXIMAGES</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.mar345image-module.html">mar345image</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#md5sum">md5sum()</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="N">N</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html#nb_overflow_pixels">nb_overflow_pixels()</a><br />
+<span class="index-where">(in <a href="fabio.mar345image.mar345image-class.html">mar345image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#next">next()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#next_object">next_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series-module.html#new_file_series">new_file_series()</a><br />
+<span class="index-where">(in <a href="fabio.file_series-module.html">fabio.file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#next">next()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#nframes">nframes</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series-module.html#new_file_series0">new_file_series0()</a><br />
+<span class="index-where">(in <a href="fabio.file_series-module.html">fabio.file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#next_filename">next_filename()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#nice_int">nice_int()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html#next">next()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage.GEimage-class.html">GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#next_image">next_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.numbered_file_series-class.html">numbered_file_series</a><br />
+<span class="index-where">(in <a href="fabio.file_series-module.html">fabio.file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#next">next()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#next_image">next_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage-module.html#NUMPY_EDF_DTYPE">NUMPY_EDF_DTYPE</a><br />
+<span class="index-where">(in <a href="fabio.edfimage-module.html">fabio.edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#next">next()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#next_object">next_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#numstem">numstem()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="O">O</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.openimage-module.html#openheader">openheader()</a><br />
+<span class="index-where">(in <a href="fabio.openimage-module.html">fabio.openimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.openimage-module.html#openimage">openimage()</a><br />
+<span class="index-where">(in <a href="fabio.openimage-module.html">fabio.openimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.OXDimage-class.html">OXDimage</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage-module.html">fabio.OXDimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.openimage-module.html">openimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage-module.html">OXDimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="P">P</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#P1dec">P1dec()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#parseheader">parseheader()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html#previous">previous()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage.GEimage-class.html">GEimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#P2dec">P2dec()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html#PIL_TO_NUMPY">PIL_TO_NUMPY</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#previous">previous()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#P3dec">P3dec()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pilatusimage-module.html">pilatusimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#previous">previous()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#P4dec">P4dec()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pilatusimage.pilatusimage-class.html">pilatusimage</a><br />
+<span class="index-where">(in <a href="fabio.pilatusimage-module.html">fabio.pilatusimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#previous">previous()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#P5dec">P5dec()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage-module.html">pnmimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#previous">previous()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#P6dec">P6dec()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage-module.html">fabio.pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#previous_filename">previous_filename()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#P7dec">P7dec()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#pop">pop()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#previous_image">previous_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.pnmimage-module.html#P7HEADERITEMS">P7HEADERITEMS</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage-module.html">fabio.pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#popitem">popitem()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#previous_object">previous_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage-module.html#PADDING">PADDING</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage-module.html">fabio.cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#prev_image">prev_image()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#previous_object">previous_object()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="R">R</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.OXDimage-module.html#rad2deg">rad2deg</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage-module.html">fabio.OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.datIO.fabiodata-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.datIO.fabiodata-class.html">fabiodata</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image.dm3image-class.html#read_tag_entry">read_tag_entry()</a><br />
+<span class="index-where">(in <a href="fabio.dm3image.dm3image-class.html">dm3image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage.GEimage-class.html">GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image.dm3image-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.dm3image.dm3image-class.html">dm3image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image.dm3image-class.html#read_tag_group">read_tag_group()</a><br />
+<span class="index-where">(in <a href="fabio.dm3image.dm3image-class.html">dm3image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage_old.GEimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage_old.GEimage-class.html">GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image.dm3image-class.html#read_tag_type">read_tag_type()</a><br />
+<span class="index-where">(in <a href="fabio.dm3image.dm3image-class.html">dm3image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.HiPiCimage.HiPiCimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.HiPiCimage.HiPiCimage-class.html">HiPiCimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image.dm3image-class.html#readbytes">readbytes()</a><br />
+<span class="index-where">(in <a href="fabio.dm3image.dm3image-class.html">dm3image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.OXDimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.OXDimage-class.html">OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html">fit2dmaskimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.readbytestream-module.html">readbytestream</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.adscimage.adscimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.adscimage.adscimage-class.html">adscimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html">fit2dspreadsheetimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.readbytestream-module.html#readbytestream">readbytestream()</a><br />
+<span class="index-where">(in <a href="fabio.readbytestream-module.html">fabio.readbytestream</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.binaryimage.binaryimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.binaryimage.binaryimage-class.html">binaryimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.kcdimage.kcdimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.kcdimage.kcdimage-class.html">kcdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#readheader">readheader()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.bruker100image.bruker100image-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.bruker100image.bruker100image-class.html">bruker100image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.mar345image.mar345image-class.html">mar345image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#readROI">readROI()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.brukerimage.brukerimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.brukerimage.brukerimage-class.html">brukerimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#rebin">rebin()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.cbfimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.cbfimage-class.html">cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage.tifimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.tifimage-class.html">tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#resetvals">resetvals()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cf_io-module.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.cf_io-module.html">fabio.cf_io</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.xsdimage.xsdimage-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.xsdimage.xsdimage-class.html">xsdimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.datIO.columnfile-class.html#read">read()</a><br />
+<span class="index-where">(in <a href="fabio.datIO.columnfile-class.html">columnfile</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image.dm3image-class.html#read_data">read_data()</a><br />
+<span class="index-where">(in <a href="fabio.dm3image.dm3image-class.html">dm3image</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="S">S</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXIEEEFP">SAMPLE_FORMAT_COMPLEXIEEEFP</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#setCapsHeader">setCapsHeader()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.BZ2File-class.html#size">size</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.BZ2File-class.html">BZ2File</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXINT">SAMPLE_FORMAT_COMPLEXINT</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.Section-class.html#setData">setData()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.Section-class.html">Section</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.File-class.html#size">size</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.File-class.html">File</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#SAMPLE_FORMAT_FLOAT">SAMPLE_FORMAT_FLOAT</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#setData">setData()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.GzipFile-class.html#size">size</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.GzipFile-class.html">GzipFile</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#SAMPLE_FORMAT_INT">SAMPLE_FORMAT_INT</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#setData">setData()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.StringIO-class.html#size">size</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.StringIO-class.html">StringIO</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#SAMPLE_FORMAT_UINT">SAMPLE_FORMAT_UINT</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#setDim1">setDim1()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#START_COMMENT">START_COMMENT</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#SAMPLE_FORMAT_VOID">SAMPLE_FORMAT_VOID</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#setDim2">setDim2()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage-module.html#STARTER">STARTER</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage-module.html">fabio.cbfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#save">save()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#setHeader">setHeader()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="str-class.html">str</a></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#saveCIF">saveCIF()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#setHeaderKeys">setHeaderKeys()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.FilenameObject-class.html#str">str()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.FilenameObject-class.html">FilenameObject</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.Section-class.html">Section</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage-module.html">fabio.OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#setNbFrames">setNbFrames()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.StringIO-class.html">StringIO</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.GzipFile-class.html#seek">seek()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.GzipFile-class.html">GzipFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.BZ2File-class.html#setSize">setSize()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.BZ2File-class.html">BZ2File</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage-module.html#SUBFORMATS">SUBFORMATS</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage-module.html">fabio.pnmimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#setBpp">setBpp()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.File-class.html#setSize">setSize()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.File-class.html">File</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.binaryimage.binaryimage-class.html#swap_needed">swap_needed()</a><br />
+<span class="index-where">(in <a href="fabio.binaryimage.binaryimage-class.html">binaryimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#setByteCode">setByteCode()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.GzipFile-class.html#setSize">setSize()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.GzipFile-class.html">GzipFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#swap_needed">swap_needed()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#setByteCode">setByteCode()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.StringIO-class.html#setSize">setSize()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.StringIO-class.html">StringIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#swap_needed">swap_needed()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="T">T</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_BITS_PER_SAMPLE">TAG_BITS_PER_SAMPLE</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_SAMPLE_FORMAT">TAG_SAMPLE_FORMAT</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html">tifimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_COLORMAP">TAG_COLORMAP</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_SOFTWARE">TAG_SOFTWARE</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage.tifimage-class.html">tifimage</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_COMPRESSION">TAG_COMPRESSION</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_STRIP_BYTE_COUNTS">TAG_STRIP_BYTE_COUNTS</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#toAscii">toAscii()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_DATE">TAG_DATE</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_STRIP_OFFSETS">TAG_STRIP_OFFSETS</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.bruker100image.bruker100image-class.html#toPIL16">toPIL16()</a><br />
+<span class="index-where">(in <a href="fabio.bruker100image.bruker100image-class.html">bruker100image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_ID">TAG_ID</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.adscimage-module.html#test">test()</a><br />
+<span class="index-where">(in <a href="fabio.adscimage-module.html">fabio.adscimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#toPIL16">toPIL16()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_IMAGE_DESCRIPTION">TAG_IMAGE_DESCRIPTION</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.brukerimage-module.html#test">test()</a><br />
+<span class="index-where">(in <a href="fabio.brukerimage-module.html">fabio.brukerimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#tostring">tostring()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_NUMBER_OF_COLUMNS">TAG_NUMBER_OF_COLUMNS</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage-module.html#test">test()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage-module.html">fabio.fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.FilenameObject-class.html#tostring">tostring()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.FilenameObject-class.html">FilenameObject</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_NUMBER_OF_ROWS">TAG_NUMBER_OF_ROWS</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage.Tiff_header-class.html">Tiff_header</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html#TYPES">TYPES</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_PHOTOMETRIC_INTERPRETATION">TAG_PHOTOMETRIC_INTERPRETATION</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html">TiffIO</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html#TYPESIZES">TYPESIZES</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#TAG_ROWS_PER_STRIP">TAG_ROWS_PER_STRIP</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="U">U</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.UnknownCompressedFile-class.html">UnknownCompressedFile</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage.Image_File_Directory-class.html#unpack">unpack()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.Image_File_Directory-class.html">Image_File_Directory</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#update_header">update_header()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#unpack">unpack()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage.Image_File_Directory_entry-class.html#unpack">unpack()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.Image_File_Directory_entry-class.html">Image_File_Directory_entry</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="V">V</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio-module.html#version">version</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr><td class="link-index"> </td><td class="link-index"> </td><td class="link-index"> </td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="W">W</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage.GEimage-class.html">GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.cbfimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.cbfimage-class.html">cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.OXDimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.OXDimage-class.html">OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage.tifimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.tifimage-class.html">tifimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.adscimage.adscimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.adscimage.adscimage-class.html">adscimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.brukerimage.brukerimage-class.html#write2">write2()</a><br />
+<span class="index-where">(in <a href="fabio.brukerimage.brukerimage-class.html">brukerimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.binaryimage.binaryimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.binaryimage.binaryimage-class.html">binaryimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html">fit2dmaskimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#writeImage">writeImage()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.brukerimage.brukerimage-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.brukerimage.brukerimage-class.html">brukerimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html#write">write()</a><br />
+<span class="index-where">(in <a href="fabio.mar345image.mar345image-class.html">mar345image</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="X">X</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.xsdimage-module.html">xsdimage</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.xsdimage.xsdimage-class.html">xsdimage</a><br />
+<span class="index-where">(in <a href="fabio.xsdimage-module.html">fabio.xsdimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr><td class="link-index"> </td><td class="link-index"> </td><td class="link-index"> </td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="_">_</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="fabio.OXDimage-module.html#__doc__">__doc__</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage-module.html">fabio.OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.bruker100image-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.bruker100image-module.html">fabio.bruker100image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html#_need_a_seek_to_read">_need_a_seek_to_read</a><br />
+<span class="index-where">(in <a href="fabio.GEimage.GEimage-class.html">GEimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.binaryimage-module.html#__doc__">__doc__</a><br />
+<span class="index-where">(in <a href="fabio.binaryimage-module.html">fabio.binaryimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.brukerimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.brukerimage-module.html">fabio.brukerimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#_need_a_seek_to_read">_need_a_seek_to_read</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.mar345image-module.html#__doc__">__doc__</a><br />
+<span class="index-where">(in <a href="fabio.mar345image-module.html">fabio.mar345image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.byte_offset-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.byte_offset-module.html">fabio.byte_offset</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage.tifimage-class.html#_need_a_seek_to_read">_need_a_seek_to_read</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.tifimage-class.html">tifimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.brukerimage.brukerimage-class.html#__headerstring__">__headerstring__</a><br />
+<span class="index-where">(in <a href="fabio.brukerimage.brukerimage-class.html">brukerimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage-module.html">fabio.cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#_open">_open()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.Section-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.Section-class.html">Section</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cf_io-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.cf_io-module.html">fabio.cf_io</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.openimage-module.html#_openimage">_openimage()</a><br />
+<span class="index-where">(in <a href="fabio.openimage-module.html">fabio.openimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.compression-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.compression-module.html">fabio.compression</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#_parseCIF">_parseCIF()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.adscimage.adscimage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.adscimage.adscimage-class.html">adscimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.converters-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.converters-module.html">fabio.converters</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#_parseImageFileDirectory">_parseImageFileDirectory()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.binaryimage.binaryimage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.binaryimage.binaryimage-class.html">binaryimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.datIO-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.datIO-module.html">fabio.datIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.marccdimage.marccdimage-class.html#_read">_read()</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage.marccdimage-class.html">marccdimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.dm3image-module.html">fabio.dm3image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pilatusimage.pilatusimage-class.html#_read">_read()</a><br />
+<span class="index-where">(in <a href="fabio.pilatusimage.pilatusimage-class.html">pilatusimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.cbfimage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.cbfimage-class.html">cbfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.edfimage-module.html">fabio.edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.cbfimage-class.html#_readbinary_byte_offset">_readbinary_byte_offset()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.cbfimage-class.html">cbfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.datIO.fabiodata-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.datIO.fabiodata-class.html">fabiodata</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage-module.html">fabio.fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#_readCIF">_readCIF()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.dm3image.dm3image-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.dm3image.dm3image-class.html">dm3image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioutils-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils-module.html">fabio.fabioutils</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html#_readframe">_readframe()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage.GEimage-class.html">GEimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.Frame-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.Frame-class.html">Frame</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.file_series-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.file_series-module.html">fabio.file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage.GEimage-class.html">GEimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dmaskimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.fit2dmaskimage-module.html">fabio.fit2dmaskimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.GEimage_old.GEimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage_old.GEimage-class.html">GEimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dspreadsheetimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.fit2dspreadsheetimage-module.html">fabio.fit2dspreadsheetimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.HiPiCimage.HiPiCimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.HiPiCimage.HiPiCimage-class.html">HiPiCimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.BZ2File-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.BZ2File-class.html">BZ2File</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.kcdimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.kcdimage-module.html">fabio.kcdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.OXDimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.OXDimage-class.html">OXDimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.File-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.File-class.html">File</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345_IO-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.mar345_IO-module.html">fabio.mar345_IO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.adscimage.adscimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.adscimage.adscimage-class.html">adscimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.FilenameObject-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.FilenameObject-class.html">FilenameObject</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345image-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.mar345image-module.html">fabio.mar345image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.brukerimage.brukerimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.brukerimage.brukerimage-class.html">brukerimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.GzipFile-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.GzipFile-class.html">GzipFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.marccdimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage-module.html">fabio.marccdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.cbfimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.cbfimage-class.html">cbfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.StringIO-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.StringIO-class.html">StringIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.openimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.openimage-module.html">fabio.openimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.dm3image.dm3image-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.dm3image.dm3image-class.html">dm3image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.fabioutils.UnknownCompressedFile-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.fabioutils.UnknownCompressedFile-class.html">UnknownCompressedFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pilatusimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.pilatusimage-module.html">fabio.pilatusimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series.file_series-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.file_series-class.html">file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage-module.html">fabio.pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series.filename_series-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.filename_series-class.html">filename_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.readbytestream-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.readbytestream-module.html">fabio.readbytestream</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.fit2dmaskimage.fit2dmaskimage-class.html">fit2dmaskimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.file_series.numbered_file_series-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.file_series.numbered_file_series-class.html">numbered_file_series</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html">fit2dspreadsheetimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.mar345image.mar345image-class.html">mar345image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.xsdimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.xsdimage-module.html">fabio.xsdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.kcdimage.kcdimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.kcdimage.kcdimage-class.html">kcdimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.Section-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.Section-class.html">Section</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.mar345image.mar345image-class.html">mar345image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.tifimage.Image_File_Directory-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.Image_File_Directory-class.html">Image_File_Directory</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#__revision__">__revision__</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.marccdimage.marccdimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.marccdimage.marccdimage-class.html">marccdimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.tifimage.Image_File_Directory_entry-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.Image_File_Directory_entry-class.html">Image_File_Directory_entry</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#__setitem__">__setitem__()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pilatusimage.pilatusimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.pilatusimage.pilatusimage-class.html">pilatusimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.tifimage.Tiff_header-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.Tiff_header-class.html">Tiff_header</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio-module.html#__status__">__status__</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.pnmimage.pnmimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.pnmimage.pnmimage-class.html">pnmimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.tifimage.tifimage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.tifimage-class.html">tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage-module.html#__status__">__status__</a><br />
+<span class="index-where">(in <a href="fabio.tifimage-module.html">fabio.tifimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.tifimage.tifimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.tifimage.tifimage-class.html">tifimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.xsdimage.xsdimage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="fabio.xsdimage.xsdimage-class.html">xsdimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.byte_offset-module.html#__test__">__test__</a><br />
+<span class="index-where">(in <a href="fabio.byte_offset-module.html">fabio.byte_offset</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.xsdimage.xsdimage-class.html#_readheader">_readheader()</a><br />
+<span class="index-where">(in <a href="fabio.xsdimage.xsdimage-class.html">xsdimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#__makeSureFileIsClosed">__makeSureFileIsClosed()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345_IO-module.html#__test__">__test__</a><br />
+<span class="index-where">(in <a href="fabio.mar345_IO-module.html">fabio.mar345_IO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.edfimage.edfimage-class.html#_readHeaderBlock">_readHeaderBlock()</a><br />
+<span class="index-where">(in <a href="fabio.edfimage.edfimage-class.html">edfimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#__makeSureFileIsOpen">__makeSureFileIsOpen()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#_analyseOneLoop">_analyseOneLoop()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#_readIFDEntry">_readIFDEntry()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.GEimage-module.html">fabio.GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#_compressed_stream">_compressed_stream()</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#_readImage">_readImage()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.GEimage_old-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.GEimage_old-module.html">fabio.GEimage_old</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#_getOutputIFD">_getOutputIFD()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#_readInfo">_readInfo()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.HiPiCimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.HiPiCimage-module.html">fabio.HiPiCimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html#_high_intensity_pixel_records">_high_intensity_pixel_records()</a><br />
+<span class="index-where">(in <a href="fabio.mar345image.mar345image-class.html">mar345image</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.cbfimage.CIF-class.html#_splitCIF">_splitCIF()</a><br />
+<span class="index-where">(in <a href="fabio.cbfimage.CIF-class.html">CIF</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.OXDimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage-module.html">fabio.OXDimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#_initEmptyFile">_initEmptyFile()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#_updateIFD">_updateIFD()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.TiffIO-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO-module.html">fabio.TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.TiffIO.TiffIO-class.html#_initInternalVariables">_initInternalVariables()</a><br />
+<span class="index-where">(in <a href="fabio.TiffIO.TiffIO-class.html">TiffIO</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.OXDimage.OXDimage-class.html#_writeheader">_writeheader()</a><br />
+<span class="index-where">(in <a href="fabio.OXDimage.OXDimage-class.html">OXDimage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio-module.html">fabio</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.GEimage.GEimage-class.html#_makeframename">_makeframename()</a><br />
+<span class="index-where">(in <a href="fabio.GEimage.GEimage-class.html">GEimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html#_writeheader">_writeheader()</a><br />
+<span class="index-where">(in <a href="fabio.mar345image.mar345image-class.html">mar345image</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.adscimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.adscimage-module.html">fabio.adscimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.fabioimage.fabioimage-class.html#_need_a_real_file">_need_a_real_file</a><br />
+<span class="index-where">(in <a href="fabio.fabioimage.fabioimage-class.html">fabioimage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="fabio.binaryimage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="fabio.binaryimage-module.html">fabio.binaryimage</a>)</span></td>
+<td width="33%" class="link-index"><a href="fabio.mar345image.mar345image-class.html#_need_a_real_file">_need_a_real_file</a><br />
+<span class="index-where">(in <a href="fabio.mar345image.mar345image-class.html">mar345image</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+</table>
+<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Indices   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/index.html b/epydoc/index.html
new file mode 100644
index 0000000..f80bd72
--- /dev/null
+++ b/epydoc/index.html
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+          "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title> API Documentation </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="toc.html" name="moduleListFrame"
+           id="moduleListFrame" />
+    <frame src="toc-everything.html" name="moduleFrame"
+           id="moduleFrame" />
+  </frameset>
+  <frame src="fabio-module.html" name="mainFrame" id="mainFrame" />
+</frameset>
+</html>
diff --git a/epydoc/module-tree.html b/epydoc/module-tree.html
new file mode 100644
index 0000000..36ef6d9
--- /dev/null
+++ b/epydoc/module-tree.html
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Module Hierarchy</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Trees   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%"> </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="module-tree.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Module Hierarchy</h1>
+<ul class="nomargin-top">
+    <li> <strong class="uidlink"><a href="fabio-module.html">fabio</a></strong>: <em class="summary">FabIO module</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="fabio.GEimage-module.html">fabio.GEimage</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="fabio.GEimage_old-module.html">fabio.GEimage_old</a></strong>: <em class="summary">Reads the header from a GE a-Si Angio Detector</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.HiPiCimage-module.html">fabio.HiPiCimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.OXDimage-module.html">fabio.OXDimage</a></strong>: <em class="summary">Reads Oxford Diffraction Sapphire 3 images</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.TiffIO-module.html">fabio.TiffIO</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="fabio.adscimage-module.html">fabio.adscimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.binaryimage-module.html">fabio.binaryimage</a></strong>: <em class="summary">Authors: Gael Goret, Jerome Kieffer, ESRF, France Emails: 
+        gael.goret at esrf.fr, jerome.kieffer at esrf.fr</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.bruker100image-module.html">fabio.bruker100image</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="fabio.brukerimage-module.html">fabio.brukerimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.byte_offset-module.html">fabio.byte_offset</a></strong>: <em class="summary">Authors:      Jerome Kieffer, ESRF Email:        
+        jerome.kieffer at esrf.eu</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.cbfimage-module.html">fabio.cbfimage</a></strong>: <em class="summary">Authors: Jérôme Kieffer, ESRF
+         email:jerome.kieffer at esrf.fr</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.cf_io-module.html">fabio.cf_io</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="fabio.compression-module.html">fabio.compression</a></strong>: <em class="summary">Authors: Jérôme Kieffer, ESRF
+         email:jerome.kieffer at esrf.fr</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.converters-module.html">fabio.converters</a></strong>: <em class="summary">Converter module.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.datIO-module.html">fabio.datIO</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.dm3image-module.html">fabio.dm3image</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.edfimage-module.html">fabio.edfimage</a></strong>: <em class="summary">License: GPLv2+</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.fabioimage-module.html">fabio.fabioimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.fabioutils-module.html">fabio.fabioutils</a></strong>: <em class="summary">General purpose utilities functions for fabio</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.file_series-module.html">fabio.file_series</a></strong>: <em class="summary">Authors:
+........</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.fit2dmaskimage-module.html">fabio.fit2dmaskimage</a></strong>: <em class="summary">Author: Andy Hammersley, ESRF Translation into python/fabio: Jon 
+        Wright, ESRF</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.fit2dspreadsheetimage-module.html">fabio.fit2dspreadsheetimage</a></strong>: <em class="summary">Read the fit2d ascii image output...</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.kcdimage-module.html">fabio.kcdimage</a></strong>: <em class="summary">Authors: Jerome Kieffer, ESRF 
+         email:jerome.kieffer at esrf.fr</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.mar345_IO-module.html">fabio.mar345_IO</a></strong>: <em class="summary">New Cython version of mar345_io for preparing the migration to Python3</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.mar345image-module.html">fabio.mar345image</a></strong>: <em class="summary">Authors:
+........</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.marccdimage-module.html">fabio.marccdimage</a></strong>: <em class="summary">Authors:
+........</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.openimage-module.html">fabio.openimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.pilatusimage-module.html">fabio.pilatusimage</a></strong>: <em class="summary">Authors:
+........</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.pnmimage-module.html">fabio.pnmimage</a></strong>: <em class="summary">Authors: Henning O.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.readbytestream-module.html">fabio.readbytestream</a></strong>: <em class="summary">Reads a bytestream</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.tifimage-module.html">fabio.tifimage</a></strong>: <em class="summary">FabIO class for dealing with TIFF images.</em>    </li>
+    <li> <strong class="uidlink"><a href="fabio.xsdimage-module.html">fabio.xsdimage</a></strong>: <em class="summary">Authors: Jérôme Kieffer, ESRF 
+         email:jerome.kieffer at esrf.fr</em>    </li>
+    </ul>
+    </li>
+</ul>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >   Trees   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/redirect.html b/epydoc/redirect.html
new file mode 100644
index 0000000..e506ac0
--- /dev/null
+++ b/epydoc/redirect.html
@@ -0,0 +1,38 @@
+<html><head><title>Epydoc Redirect Page</title>
+<meta http-equiv="cache-control" content="no-cache" />
+<meta http-equiv="expires" content="0" />
+<meta http-equiv="pragma" content="no-cache" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+<body>
+<script type="text/javascript">
+<!--
+var pages = ["fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-c", "fabio.tifimage.Image_File_Directory_entry-c", "fabio.fabioutils.UnknownCompressedFile-c", "fabio.file_series.numbered_file_series-c", "fabio.bruker100image.bruker100image-c", "fabio.fit2dmaskimage.fit2dmaskimage-c", "fabio.tifimage.Image_File_Directory-c", "fabio.file_series.filename_series-c", "fabio.fabioutils.FilenameObject-c", "fabio.pilatusimage.pilatusimage-c", "fabio.binaryimage.binaryimage-c", "fabio.brukerimage [...]
+var dottedName = get_anchor();
+if (dottedName) {
+    var target = redirect_url(dottedName);
+    if (target) window.location.replace(target);
+}
+// -->
+</script>
+
+<h3>Epydoc Auto-redirect page</h3>
+
+<p>When javascript is enabled, this page will redirect URLs of
+the form <tt>redirect.html#<i>dotted.name</i></tt> to the
+documentation for the object with the given fully-qualified
+dotted name.</p>
+<p><a id="message">   </a></p>
+
+<script type="text/javascript">
+<!--
+if (dottedName) {
+    var msg = document.getElementById("message");
+    msg.innerHTML = "No documentation found for <tt>"+
+                    dottedName+"</tt>";
+}
+// -->
+</script>
+
+</body>
+</html>
diff --git a/epydoc/str-class.html b/epydoc/str-class.html
new file mode 100644
index 0000000..b4af8e2
--- /dev/null
+++ b/epydoc/str-class.html
@@ -0,0 +1,2113 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>str</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        str ::
+        Class str
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >] | <a href="str-class.html"
+            target="_top">no frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class str</h1><p class="nomargin-top"></p>
+<pre class="base-tree">
+object --+    
+         |    
+basestring --+
+             |
+            <strong class="uidshort">str</strong>
+</pre>
+
+<hr />
+<p>str(object) -> string</p>
+  <p>Return a nice string representation of the object. If the argument is 
+  a string, the return value is the same object.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__add__"></a><span class="summary-sig-name">__add__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      x+y</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__contains__"></a><span class="summary-sig-name">__contains__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      y in x</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__eq__"></a><span class="summary-sig-name">__eq__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      x==y</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#__format__" class="summary-sig-name">__format__</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">format_spec</span>)</span><br />
+      default object formatter</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__ge__"></a><span class="summary-sig-name">__ge__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      x>=y</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#__getattribute__" class="summary-sig-name">__getattribute__</a>(<span class="summary-sig-arg">...</span>)</span><br />
+      x.__getattribute__('name') <==> x.name</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__getitem__"></a><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      x[y]</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__getnewargs__"></a><span class="summary-sig-name">__getnewargs__</span>(<span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#__getslice__" class="summary-sig-name">__getslice__</a>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">i</span>,
+        <span class="summary-sig-arg">j</span>)</span><br />
+      x[i:j]</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__gt__"></a><span class="summary-sig-name">__gt__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      x>y</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#__hash__" class="summary-sig-name">__hash__</a>(<span class="summary-sig-arg">x</span>)</span><br />
+      hash(x)</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__le__"></a><span class="summary-sig-name">__le__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      x<=y</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__len__"></a><span class="summary-sig-name">__len__</span>(<span class="summary-sig-arg">x</span>)</span><br />
+      len(x)</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__lt__"></a><span class="summary-sig-name">__lt__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      x<y</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__mod__"></a><span class="summary-sig-name">__mod__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      x%y</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__mul__"></a><span class="summary-sig-name">__mul__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">n</span>)</span><br />
+      x*n</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__ne__"></a><span class="summary-sig-name">__ne__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      x!=y</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">a new object with type S, a subtype of T</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">T</span>,
+        <span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">x</span>)</span><br />
+      repr(x)</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__rmod__"></a><span class="summary-sig-name">__rmod__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">y</span>)</span><br />
+      y%x</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__rmul__"></a><span class="summary-sig-name">__rmul__</span>(<span class="summary-sig-arg">x</span>,
+        <span class="summary-sig-arg">n</span>)</span><br />
+      n*x</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">size of S in memory, in bytes</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#__sizeof__" class="summary-sig-name">__sizeof__</a>(<span class="summary-sig-arg">S</span>)</span></td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">x</span>)</span><br />
+      str(x)</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_formatter_field_name_split"></a><span class="summary-sig-name">_formatter_field_name_split</span>(<span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type"> </span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_formatter_parser"></a><span class="summary-sig-name">_formatter_parser</span>(<span class="summary-sig-arg">...</span>)</span></td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="capitalize"></a><span class="summary-sig-name">capitalize</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return a copy of the string S with only its first character 
+      capitalized.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#center" class="summary-sig-name">center</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">width</span>,
+        <span class="summary-sig-arg">fillchar</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return S centered in a string of length width.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">int</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#count" class="summary-sig-name">count</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">sub</span>,
+        <span class="summary-sig-arg">start</span>=<span class="summary-sig-default">...</span>,
+        <span class="summary-sig-arg">end</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return the number of non-overlapping occurrences of substring sub in 
+      string S[start:end].</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">object</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#decode" class="summary-sig-name">decode</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">encoding</span>=<span class="summary-sig-default">...</span>,
+        <span class="summary-sig-arg">errors</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Decodes S using the codec registered for encoding.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">object</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#encode" class="summary-sig-name">encode</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">encoding</span>=<span class="summary-sig-default">...</span>,
+        <span class="summary-sig-arg">errors</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Encodes S using the codec registered for encoding.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#endswith" class="summary-sig-name">endswith</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">suffix</span>,
+        <span class="summary-sig-arg">start</span>=<span class="summary-sig-default">...</span>,
+        <span class="summary-sig-arg">end</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return True if S ends with the specified suffix, False otherwise.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#expandtabs" class="summary-sig-name">expandtabs</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">tabsize</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return a copy of S where all tab characters are expanded using 
+      spaces.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">int</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#find" class="summary-sig-name">find</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">sub</span>,
+        <span class="summary-sig-arg">start</span>=<span class="summary-sig-default">... </span>,
+        <span class="summary-sig-arg">end</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return the lowest index in S where substring sub is found, such that 
+      sub is contained within s[start:end].</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="format"></a><span class="summary-sig-name">format</span>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">*args</span>,
+        <span class="summary-sig-arg">**kwargs</span>)</span></td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">int</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="index"></a><span class="summary-sig-name">index</span>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">sub</span>,
+        <span class="summary-sig-arg">start</span>=<span class="summary-sig-default">... </span>,
+        <span class="summary-sig-arg">end</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Like S.find() but raise ValueError when the substring is not found.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="isalnum"></a><span class="summary-sig-name">isalnum</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return True if all characters in S are alphanumeric and there is at 
+      least one character in S, False otherwise.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="isalpha"></a><span class="summary-sig-name">isalpha</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return True if all characters in S are alphabetic and there is at 
+      least one character in S, False otherwise.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="isdigit"></a><span class="summary-sig-name">isdigit</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return True if all characters in S are digits and there is at least 
+      one character in S, False otherwise.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="islower"></a><span class="summary-sig-name">islower</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return True if all cased characters in S are lowercase and there is 
+      at least one cased character in S, False otherwise.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="isspace"></a><span class="summary-sig-name">isspace</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return True if all characters in S are whitespace and there is at 
+      least one character in S, False otherwise.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#istitle" class="summary-sig-name">istitle</a>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return True if S is a titlecased string and there is at least one 
+      character in S, i.e.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="isupper"></a><span class="summary-sig-name">isupper</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return True if all cased characters in S are uppercase and there is 
+      at least one cased character in S, False otherwise.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#join" class="summary-sig-name">join</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">iterable</span>)</span><br />
+      Return a string which is the concatenation of the strings in the 
+      iterable.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#ljust" class="summary-sig-name">ljust</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">width</span>,
+        <span class="summary-sig-arg">fillchar</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return S left-justified in a string of length width.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="lower"></a><span class="summary-sig-name">lower</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return a copy of the string S converted to lowercase.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string or unicode</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#lstrip" class="summary-sig-name">lstrip</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">chars</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return a copy of the string S with leading whitespace removed.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">(head, sep, tail)</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#partition" class="summary-sig-name">partition</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">sep</span>)</span><br />
+      Search for the separator sep in S, and return the part before it, the
+      separator itself, and the part after it.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#replace" class="summary-sig-name">replace</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">old</span>,
+        <span class="summary-sig-arg">new</span>,
+        <span class="summary-sig-arg">count</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return a copy of string S with all occurrences of substring old 
+      replaced by new.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">int</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#rfind" class="summary-sig-name">rfind</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">sub</span>,
+        <span class="summary-sig-arg">start</span>=<span class="summary-sig-default">... </span>,
+        <span class="summary-sig-arg">end</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return the highest index in S where substring sub is found, such that
+      sub is contained within s[start:end].</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">int</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="rindex"></a><span class="summary-sig-name">rindex</span>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">sub</span>,
+        <span class="summary-sig-arg">start</span>=<span class="summary-sig-default">... </span>,
+        <span class="summary-sig-arg">end</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Like S.rfind() but raise ValueError when the substring is not found.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#rjust" class="summary-sig-name">rjust</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">width</span>,
+        <span class="summary-sig-arg">fillchar</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return S right-justified in a string of length width.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">(head, sep, tail)</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#rpartition" class="summary-sig-name">rpartition</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">sep</span>)</span><br />
+      Search for the separator sep in S, starting at the end of S, and 
+      return the part before it, the separator itself, and the part after 
+      it.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">list of strings</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#rsplit" class="summary-sig-name">rsplit</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">sep</span>=<span class="summary-sig-default">... </span>,
+        <span class="summary-sig-arg">maxsplit</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return a list of the words in the string S, using sep as the 
+      delimiter string, starting at the end of the string and working to 
+      the front.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string or unicode</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#rstrip" class="summary-sig-name">rstrip</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">chars</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return a copy of the string S with trailing whitespace removed.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">list of strings</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#split" class="summary-sig-name">split</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">sep</span>=<span class="summary-sig-default">... </span>,
+        <span class="summary-sig-arg">maxsplit</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return a list of the words in the string S, using sep as the 
+      delimiter string.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">list of strings</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#splitlines" class="summary-sig-name">splitlines</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">keepends</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return a list of the lines in S, breaking at line boundaries.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">bool</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#startswith" class="summary-sig-name">startswith</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">prefix</span>,
+        <span class="summary-sig-arg">start</span>=<span class="summary-sig-default">...</span>,
+        <span class="summary-sig-arg">end</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return True if S starts with the specified prefix, False otherwise.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string or unicode</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#strip" class="summary-sig-name">strip</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">chars</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return a copy of the string S with leading and trailing whitespace 
+      removed.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="swapcase"></a><span class="summary-sig-name">swapcase</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return a copy of the string S with uppercase characters converted to 
+      lowercase and vice versa.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#title" class="summary-sig-name">title</a>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return a titlecased version of S, i.e.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="translate"></a><span class="summary-sig-name">translate</span>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">table</span>,
+        <span class="summary-sig-arg">deletechars</span>=<span class="summary-sig-default">...</span>)</span><br />
+      Return a copy of the string S, where all characters occurring in the 
+      optional argument deletechars are removed, and the remaining 
+      characters have been mapped through the given translation table, 
+      which must be a string of length 256.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="upper"></a><span class="summary-sig-name">upper</span>(<span class="summary-sig-arg">S</span>)</span><br />
+      Return a copy of the string S converted to uppercase.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">string</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="str-class.html#zfill" class="summary-sig-name">zfill</a>(<span class="summary-sig-arg">S</span>,
+        <span class="summary-sig-arg">width</span>)</span><br />
+      Pad a numeric string S with zeros on the left, to fill a field of the
+      specified width.</td>
+          <td align="right" valign="top">
+            
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__init__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__setattr__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__format__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__format__</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">format_spec</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>default object formatter</p>
+  <dl class="fields">
+    <dt>Returns: string</dt>
+    <dt>Overrides:
+        object.__format__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__getattribute__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>x.__getattribute__('name') <==> x.name</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__getattribute__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__getslice__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__getslice__</span>(<span class="sig-arg">x</span>,
+        <span class="sig-arg">i</span>,
+        <span class="sig-arg">j</span>)</span>
+    <br /><em class="fname">(Slicling operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>x[i:j]</p>
+  <p>Use of negative indices is not supported.</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<a name="__hash__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>
+    <br /><em class="fname">(Hashing function)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>hash(x)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__hash__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__new__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,
+        <span class="sig-arg">S</span>,
+        <span class="sig-arg">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Returns: a new object with type S, a subtype of T</dt>
+    <dt>Overrides:
+        object.__new__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>
+    <br /><em class="fname">(Representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>repr(x)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__repr__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__sizeof__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__sizeof__</span>(<span class="sig-arg">S</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Returns: size of S in memory, in bytes</dt>
+    <dt>Overrides:
+        object.__sizeof__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>
+    <br /><em class="fname">(Informal representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>str(x)</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__str__
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="center"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">center</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">width</span>,
+        <span class="sig-arg">fillchar</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return S centered in a string of length width. Padding is done using 
+  the specified fill character (default is a space)</p>
+  <dl class="fields">
+    <dt>Returns: string</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="count"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">count</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">sub</span>,
+        <span class="sig-arg">start</span>=<span class="sig-default">...</span>,
+        <span class="sig-arg">end</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return the number of non-overlapping occurrences of substring sub in 
+  string S[start:end].  Optional arguments start and end are interpreted as
+  in slice notation.</p>
+  <dl class="fields">
+    <dt>Returns: int</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="decode"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">decode</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">encoding</span>=<span class="sig-default">...</span>,
+        <span class="sig-arg">errors</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Decodes S using the codec registered for encoding. encoding defaults 
+  to the default encoding. errors may be given to set a different error 
+  handling scheme. Default is 'strict' meaning that encoding errors raise a
+  UnicodeDecodeError. Other possible values are 'ignore' and 'replace' as 
+  well as any other name registered with codecs.register_error that is able
+  to handle UnicodeDecodeErrors.</p>
+  <dl class="fields">
+    <dt>Returns: object</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="encode"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">encode</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">encoding</span>=<span class="sig-default">...</span>,
+        <span class="sig-arg">errors</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Encodes S using the codec registered for encoding. encoding defaults 
+  to the default encoding. errors may be given to set a different error 
+  handling scheme. Default is 'strict' meaning that encoding errors raise a
+  UnicodeEncodeError. Other possible values are 'ignore', 'replace' and 
+  'xmlcharrefreplace' as well as any other name registered with 
+  codecs.register_error that is able to handle UnicodeEncodeErrors.</p>
+  <dl class="fields">
+    <dt>Returns: object</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="endswith"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">endswith</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">suffix</span>,
+        <span class="sig-arg">start</span>=<span class="sig-default">...</span>,
+        <span class="sig-arg">end</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return True if S ends with the specified suffix, False otherwise. With
+  optional start, test S beginning at that position. With optional end, 
+  stop comparing S at that position. suffix can also be a tuple of strings 
+  to try.</p>
+  <dl class="fields">
+    <dt>Returns: bool</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="expandtabs"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">expandtabs</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">tabsize</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a copy of S where all tab characters are expanded using spaces.
+  If tabsize is not given, a tab size of 8 characters is assumed.</p>
+  <dl class="fields">
+    <dt>Returns: string</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="find"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">find</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">sub</span>,
+        <span class="sig-arg">start</span>=<span class="sig-default">... </span>,
+        <span class="sig-arg">end</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return the lowest index in S where substring sub is found, such that 
+  sub is contained within s[start:end].  Optional arguments start and end 
+  are interpreted as in slice notation.</p>
+  <p>Return -1 on failure.</p>
+  <dl class="fields">
+    <dt>Returns: int</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="istitle"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">istitle</span>(<span class="sig-arg">S</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return True if S is a titlecased string and there is at least one 
+  character in S, i.e. uppercase characters may only follow uncased 
+  characters and lowercase characters only cased ones. Return False 
+  otherwise.</p>
+  <dl class="fields">
+    <dt>Returns: bool</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="join"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">join</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">iterable</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a string which is the concatenation of the strings in the 
+  iterable.  The separator between elements is S.</p>
+  <dl class="fields">
+    <dt>Returns: string</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="ljust"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">ljust</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">width</span>,
+        <span class="sig-arg">fillchar</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return S left-justified in a string of length width. Padding is done 
+  using the specified fill character (default is a space).</p>
+  <dl class="fields">
+    <dt>Returns: string</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="lstrip"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">lstrip</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">chars</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a copy of the string S with leading whitespace removed. If 
+  chars is given and not None, remove characters in chars instead. If chars
+  is unicode, S will be converted to unicode before stripping</p>
+  <dl class="fields">
+    <dt>Returns: string or unicode</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="partition"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">partition</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">sep</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Search for the separator sep in S, and return the part before it, the 
+  separator itself, and the part after it.  If the separator is not found, 
+  return S and two empty strings.</p>
+  <dl class="fields">
+    <dt>Returns: (head, sep, tail)</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="replace"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">replace</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">old</span>,
+        <span class="sig-arg">new</span>,
+        <span class="sig-arg">count</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a copy of string S with all occurrences of substring old 
+  replaced by new.  If the optional argument count is given, only the first
+  count occurrences are replaced.</p>
+  <dl class="fields">
+    <dt>Returns: string</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="rfind"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">rfind</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">sub</span>,
+        <span class="sig-arg">start</span>=<span class="sig-default">... </span>,
+        <span class="sig-arg">end</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return the highest index in S where substring sub is found, such that 
+  sub is contained within s[start:end].  Optional arguments start and end 
+  are interpreted as in slice notation.</p>
+  <p>Return -1 on failure.</p>
+  <dl class="fields">
+    <dt>Returns: int</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="rjust"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">rjust</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">width</span>,
+        <span class="sig-arg">fillchar</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return S right-justified in a string of length width. Padding is done 
+  using the specified fill character (default is a space)</p>
+  <dl class="fields">
+    <dt>Returns: string</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="rpartition"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">rpartition</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">sep</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Search for the separator sep in S, starting at the end of S, and 
+  return the part before it, the separator itself, and the part after it.  
+  If the separator is not found, return two empty strings and S.</p>
+  <dl class="fields">
+    <dt>Returns: (head, sep, tail)</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="rsplit"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">rsplit</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">sep</span>=<span class="sig-default">... </span>,
+        <span class="sig-arg">maxsplit</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a list of the words in the string S, using sep as the delimiter
+  string, starting at the end of the string and working to the front.  If 
+  maxsplit is given, at most maxsplit splits are done. If sep is not 
+  specified or is None, any whitespace string is a separator.</p>
+  <dl class="fields">
+    <dt>Returns: list of strings</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="rstrip"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">rstrip</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">chars</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a copy of the string S with trailing whitespace removed. If 
+  chars is given and not None, remove characters in chars instead. If chars
+  is unicode, S will be converted to unicode before stripping</p>
+  <dl class="fields">
+    <dt>Returns: string or unicode</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="split"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">split</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">sep</span>=<span class="sig-default">... </span>,
+        <span class="sig-arg">maxsplit</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a list of the words in the string S, using sep as the delimiter
+  string.  If maxsplit is given, at most maxsplit splits are done. If sep 
+  is not specified or is None, any whitespace string is a separator and 
+  empty strings are removed from the result.</p>
+  <dl class="fields">
+    <dt>Returns: list of strings</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="splitlines"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">splitlines</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">keepends</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a list of the lines in S, breaking at line boundaries. Line 
+  breaks are not included in the resulting list unless keepends is given 
+  and true.</p>
+  <dl class="fields">
+    <dt>Returns: list of strings</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="startswith"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">startswith</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">prefix</span>,
+        <span class="sig-arg">start</span>=<span class="sig-default">...</span>,
+        <span class="sig-arg">end</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return True if S starts with the specified prefix, False otherwise. 
+  With optional start, test S beginning at that position. With optional 
+  end, stop comparing S at that position. prefix can also be a tuple of 
+  strings to try.</p>
+  <dl class="fields">
+    <dt>Returns: bool</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="strip"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">strip</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">chars</span>=<span class="sig-default">...</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a copy of the string S with leading and trailing whitespace 
+  removed. If chars is given and not None, remove characters in chars 
+  instead. If chars is unicode, S will be converted to unicode before 
+  stripping</p>
+  <dl class="fields">
+    <dt>Returns: string or unicode</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="title"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">title</span>(<span class="sig-arg">S</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Return a titlecased version of S, i.e. words start with uppercase 
+  characters, all remaining cased characters have lowercase.</p>
+  <dl class="fields">
+    <dt>Returns: string</dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="zfill"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">zfill</span>(<span class="sig-arg">S</span>,
+        <span class="sig-arg">width</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    > 
+    </td>
+  </tr></table>
+  
+  <p>Pad a numeric string S with zeros on the left, to fill a field of the 
+  specified width.  The string S is never truncated.</p>
+  <dl class="fields">
+    <dt>Returns: string</dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>   <a
+        href="fabio-module.html">Home</a>   </th>
+
+  <!-- Tree link -->
+      <th>   <a
+        href="module-tree.html">Trees</a>   </th>
+
+  <!-- Index link -->
+      <th>   <a
+        href="identifier-index.html">Indices</a>   </th>
+
+  <!-- Help link -->
+      <th>   <a
+        href="help.html">Help</a>   </th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Tue Apr  2 13:31:40 2013
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-everything.html b/epydoc/toc-everything.html
new file mode 100644
index 0000000..eeb56a0
--- /dev/null
+++ b/epydoc/toc-everything.html
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Everything</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Everything</h1>
+<hr />
+  <h2 class="toc">All Classes</h2>
+    <a target="mainFrame" href="fabio.GEimage.GEimage-class.html"
+     >fabio.GEimage.GEimage</a><br />    <a target="mainFrame" href="fabio.GEimage_old.GEimage-class.html"
+     >fabio.GEimage_old.GEimage</a><br />    <a target="mainFrame" href="fabio.HiPiCimage.HiPiCimage-class.html"
+     >fabio.HiPiCimage.HiPiCimage</a><br />    <a target="mainFrame" href="fabio.OXDimage.OXDimage-class.html"
+     >fabio.OXDimage.OXDimage</a><br />    <a target="mainFrame" href="fabio.OXDimage.Section-class.html"
+     >fabio.OXDimage.Section</a><br />    <a target="mainFrame" href="fabio.TiffIO.TiffIO-class.html"
+     >fabio.TiffIO.TiffIO</a><br />    <a target="mainFrame" href="fabio.adscimage.adscimage-class.html"
+     >fabio.adscimage.adscimage</a><br />    <a target="mainFrame" href="fabio.binaryimage.binaryimage-class.html"
+     >fabio.binaryimage.binaryimage</a><br />    <a target="mainFrame" href="fabio.bruker100image.bruker100image-class.html"
+     >fabio.bruker100image.bruker100image</a><br />    <a target="mainFrame" href="fabio.brukerimage.brukerimage-class.html"
+     >fabio.brukerimage.brukerimage</a><br />    <a target="mainFrame" href="fabio.cbfimage.CIF-class.html"
+     >fabio.cbfimage.CIF</a><br />    <a target="mainFrame" href="fabio.cbfimage.cbfimage-class.html"
+     >fabio.cbfimage.cbfimage</a><br />    <a target="mainFrame" href="fabio.datIO.columnfile-class.html"
+     >fabio.datIO.columnfile</a><br />    <a target="mainFrame" href="fabio.datIO.fabiodata-class.html"
+     >fabio.datIO.fabiodata</a><br />    <a target="mainFrame" href="fabio.dm3image.dm3image-class.html"
+     >fabio.dm3image.dm3image</a><br />    <a target="mainFrame" href="fabio.edfimage.Frame-class.html"
+     >fabio.edfimage.Frame</a><br />    <a target="mainFrame" href="fabio.edfimage.edfimage-class.html"
+     >fabio.edfimage.edfimage</a><br />    <a target="mainFrame" href="fabio.fabioimage.fabioimage-class.html"
+     >fabio.fabioimage.fabioimage</a><br />    <a target="mainFrame" href="fabio.fabioutils.BZ2File-class.html"
+     >fabio.fabioutils.BZ2File</a><br />    <a target="mainFrame" href="fabio.fabioutils.File-class.html"
+     >fabio.fabioutils.File</a><br />    <a target="mainFrame" href="fabio.fabioutils.FilenameObject-class.html"
+     >fabio.fabioutils.FilenameObject</a><br />    <a target="mainFrame" href="fabio.fabioutils.GzipFile-class.html"
+     >fabio.fabioutils.GzipFile</a><br />    <a target="mainFrame" href="fabio.fabioutils.StringIO-class.html"
+     >fabio.fabioutils.StringIO</a><br />    <a target="mainFrame" href="fabio.fabioutils.UnknownCompressedFile-class.html"
+     >fabio.fabioutils.UnknownCompressedFile</a><br />    <a target="mainFrame" href="fabio.file_series.file_series-class.html"
+     >fabio.file_series.file_series</a><br />    <a target="mainFrame" href="fabio.file_series.filename_series-class.html"
+     >fabio.file_series.filename_series</a><br />    <a target="mainFrame" href="fabio.file_series.numbered_file_series-class.html"
+     >fabio.file_series.numbered_file_series</a><br />    <a target="mainFrame" href="fabio.fit2dmaskimage.fit2dmaskimage-class.html"
+     >fabio.fit2dmaskimage.fit2dmaskimage</a><br />    <a target="mainFrame" href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html"
+     >fabio.fit2dspreadsheetimage.fit2dspreadsheetimage</a><br />    <a target="mainFrame" href="fabio.kcdimage.kcdimage-class.html"
+     >fabio.kcdimage.kcdimage</a><br />    <a target="mainFrame" href="fabio.mar345image.mar345image-class.html"
+     >fabio.mar345image.mar345image</a><br />    <a target="mainFrame" href="fabio.marccdimage.marccdimage-class.html"
+     >fabio.marccdimage.marccdimage</a><br />    <a target="mainFrame" href="fabio.pilatusimage.pilatusimage-class.html"
+     >fabio.pilatusimage.pilatusimage</a><br />    <a target="mainFrame" href="fabio.pnmimage.pnmimage-class.html"
+     >fabio.pnmimage.pnmimage</a><br />    <a target="mainFrame" href="fabio.tifimage.Image_File_Directory-class.html"
+     >fabio.tifimage.Image_File_Directory</a><br />    <a target="mainFrame" href="fabio.tifimage.Image_File_Directory_entry-class.html"
+     >fabio.tifimage.Image_File_Directory_entry</a><br />    <a target="mainFrame" href="fabio.tifimage.Tiff_header-class.html"
+     >fabio.tifimage.Tiff_header</a><br />    <a target="mainFrame" href="fabio.tifimage.tifimage-class.html"
+     >fabio.tifimage.tifimage</a><br />    <a target="mainFrame" href="fabio.xsdimage.xsdimage-class.html"
+     >fabio.xsdimage.xsdimage</a><br />    <a target="mainFrame" href="str-class.html"
+     >str</a><br />  <h2 class="toc">All Functions</h2>
+    <a target="mainFrame" href="fabio.GEimage-module.html#demo"
+     >fabio.GEimage.demo</a><br />    <a target="mainFrame" href="fabio.adscimage-module.html#test"
+     >fabio.adscimage.test</a><br />    <a target="mainFrame" href="fabio.brukerimage-module.html#test"
+     >fabio.brukerimage.test</a><br />    <a target="mainFrame" href="fabio.cf_io-module.html#read"
+     >fabio.cf_io.read</a><br />    <a target="mainFrame" href="fabio.compression-module.html#compByteOffet_numpy"
+     >fabio.compression.compByteOffet_numpy</a><br />    <a target="mainFrame" href="fabio.compression-module.html#compPCK"
+     >fabio.compression.compPCK</a><br />    <a target="mainFrame" href="fabio.compression-module.html#compTY1"
+     >fabio.compression.compTY1</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decByteOffet_cython"
+     >fabio.compression.decByteOffet_cython</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decByteOffet_numpy"
+     >fabio.compression.decByteOffet_numpy</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decByteOffet_python"
+     >fabio.compression.decByteOffet_python</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decByteOffet_weave"
+     >fabio.compression.decByteOffet_weave</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decBzip2"
+     >fabio.compression.decBzip2</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decGzip"
+     >fabio.compression.decGzip</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decPCK"
+     >fabio.compression.decPCK</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decTY1"
+     >fabio.compression.decTY1</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decZlib"
+     >fabio.compression.decZlib</a><br />    <a target="mainFrame" href="fabio.compression-module.html#endianness"
+     >fabio.compression.endianness</a><br />    <a target="mainFrame" href="fabio.compression-module.html#md5sum"
+     >fabio.compression.md5sum</a><br />    <a target="mainFrame" href="fabio.converters-module.html#convert_data"
+     >fabio.converters.convert_data</a><br />    <a target="mainFrame" href="fabio.converters-module.html#convert_data_integer"
+     >fabio.converters.convert_data_integer</a><br />    <a target="mainFrame" href="fabio.converters-module.html#convert_header"
+     >fabio.converters.convert_header</a><br />    <a target="mainFrame" href="fabio.fabioimage-module.html#test"
+     >fabio.fabioimage.test</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#construct_filename"
+     >fabio.fabioutils.construct_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#deconstruct_filename"
+     >fabio.fabioutils.deconstruct_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#deprecated"
+     >fabio.fabioutils.deprecated</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#extract_filenumber"
+     >fabio.fabioutils.extract_filenumber</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#getnum"
+     >fabio.fabioutils.getnum</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#isAscii"
+     >fabio.fabioutils.isAscii</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#jump_filename"
+     >fabio.fabioutils.jump_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#next_filename"
+     >fabio.fabioutils.next_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#nice_int"
+     >fabio.fabioutils.nice_int</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#numstem"
+     >fabio.fabioutils.numstem</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#previous_filename"
+     >fabio.fabioutils.previous_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#toAscii"
+     >fabio.fabioutils.toAscii</a><br />    <a target="mainFrame" href="fabio.file_series-module.html#new_file_series"
+     >fabio.file_series.new_file_series</a><br />    <a target="mainFrame" href="fabio.file_series-module.html#new_file_series0"
+     >fabio.file_series.new_file_series0</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#interpret_header"
+     >fabio.marccdimage.interpret_header</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#make_format"
+     >fabio.marccdimage.make_format</a><br />  <div class="private">
+    <a target="mainFrame" href="fabio.openimage-module.html#_openimage"
+     >fabio.openimage._openimage</a><br />  </div>
+    <a target="mainFrame" href="fabio.openimage-module.html#do_magic"
+     >fabio.openimage.do_magic</a><br />    <a target="mainFrame" href="fabio.openimage-module.html#openheader"
+     >fabio.openimage.openheader</a><br />    <a target="mainFrame" href="fabio.openimage-module.html#openimage"
+     >fabio.openimage.openimage</a><br />    <a target="mainFrame" href="fabio.readbytestream-module.html#readbytestream"
+     >fabio.readbytestream.readbytestream</a><br />  <h2 class="toc">All Variables</h2>
+    <a target="mainFrame" href="fabio.GEimage-module.html#GE_HEADER_INFO"
+     >fabio.GEimage.GE_HEADER_INFO</a><br />    <a target="mainFrame" href="fabio.GEimage-module.html#__package__"
+     >fabio.GEimage.__package__</a><br />    <a target="mainFrame" href="fabio.GEimage-module.html#logger"
+     >fabio.GEimage.logger</a><br />    <a target="mainFrame" href="fabio.GEimage_old-module.html#__package__"
+     >fabio.GEimage_old.__package__</a><br />    <a target="mainFrame" href="fabio.HiPiCimage-module.html#__package__"
+     >fabio.HiPiCimage.__package__</a><br />    <a target="mainFrame" href="fabio.HiPiCimage-module.html#logger"
+     >fabio.HiPiCimage.logger</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#DEFAULT_HEADERS"
+     >fabio.OXDimage.DEFAULT_HEADERS</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#DETECTOR_TYPES"
+     >fabio.OXDimage.DETECTOR_TYPES</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#__doc__"
+     >fabio.OXDimage.__doc__</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#__package__"
+     >fabio.OXDimage.__package__</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#deg2rad"
+     >fabio.OXDimage.deg2rad</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#logger"
+     >fabio.OXDimage.logger</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#rad2deg"
+     >fabio.OXDimage.rad2deg</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#ALLOW_MULTIPLE_STRIPS"
+     >fabio.TiffIO.ALLOW_MULTIPLE_STRIPS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#DEBUG"
+     >fabio.TiffIO.DEBUG</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#FIELD_TYPE"
+     >fabio.TiffIO.FIELD_TYPE</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#FIELD_TYPE_OUT"
+     >fabio.TiffIO.FIELD_TYPE_OUT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXIEEEFP"
+     >fabio.TiffIO.SAMPLE_FORMAT_COMPLEXIEEEFP</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXINT"
+     >fabio.TiffIO.SAMPLE_FORMAT_COMPLEXINT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_FLOAT"
+     >fabio.TiffIO.SAMPLE_FORMAT_FLOAT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_INT"
+     >fabio.TiffIO.SAMPLE_FORMAT_INT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_UINT"
+     >fabio.TiffIO.SAMPLE_FORMAT_UINT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_VOID"
+     >fabio.TiffIO.SAMPLE_FORMAT_VOID</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_BITS_PER_SAMPLE"
+     >fabio.TiffIO.TAG_BITS_PER_SAMPLE</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_COLORMAP"
+     >fabio.TiffIO.TAG_COLORMAP</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_COMPRESSION"
+     >fabio.TiffIO.TAG_COMPRESSION</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_DATE"
+     >fabio.TiffIO.TAG_DATE</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_ID"
+     >fabio.TiffIO.TAG_ID</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_IMAGE_DESCRIPTION"
+     >fabio.TiffIO.TAG_IMAGE_DESCRIPTION</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_NUMBER_OF_COLUMNS"
+     >fabio.TiffIO.TAG_NUMBER_OF_COLUMNS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_NUMBER_OF_ROWS"
+     >fabio.TiffIO.TAG_NUMBER_OF_ROWS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_PHOTOMETRIC_INTERPRETATION"
+     >fabio.TiffIO.TAG_PHOTOMETRIC_INTERPRETATION</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_ROWS_PER_STRIP"
+     >fabio.TiffIO.TAG_ROWS_PER_STRIP</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_SAMPLE_FORMAT"
+     >fabio.TiffIO.TAG_SAMPLE_FORMAT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_SOFTWARE"
+     >fabio.TiffIO.TAG_SOFTWARE</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_STRIP_BYTE_COUNTS"
+     >fabio.TiffIO.TAG_STRIP_BYTE_COUNTS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_STRIP_OFFSETS"
+     >fabio.TiffIO.TAG_STRIP_OFFSETS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#__package__"
+     >fabio.TiffIO.__package__</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#__revision__"
+     >fabio.TiffIO.__revision__</a><br />    <a target="mainFrame" href="fabio-module.html#__package__"
+     >fabio.__package__</a><br />    <a target="mainFrame" href="fabio-module.html#__status__"
+     >fabio.__status__</a><br />    <a target="mainFrame" href="fabio.adscimage-module.html#__package__"
+     >fabio.adscimage.__package__</a><br />    <a target="mainFrame" href="fabio.adscimage-module.html#logger"
+     >fabio.adscimage.logger</a><br />    <a target="mainFrame" href="fabio.binaryimage-module.html#__doc__"
+     >fabio.binaryimage.__doc__</a><br />    <a target="mainFrame" href="fabio.binaryimage-module.html#__package__"
+     >fabio.binaryimage.__package__</a><br />    <a target="mainFrame" href="fabio.binaryimage-module.html#logger"
+     >fabio.binaryimage.logger</a><br />    <a target="mainFrame" href="fabio.bruker100image-module.html#__package__"
+     >fabio.bruker100image.__package__</a><br />    <a target="mainFrame" href="fabio.bruker100image-module.html#logger"
+     >fabio.bruker100image.logger</a><br />    <a target="mainFrame" href="fabio.brukerimage-module.html#__package__"
+     >fabio.brukerimage.__package__</a><br />    <a target="mainFrame" href="fabio.brukerimage-module.html#logger"
+     >fabio.brukerimage.logger</a><br />    <a target="mainFrame" href="fabio.byte_offset-module.html#__package__"
+     >fabio.byte_offset.__package__</a><br />    <a target="mainFrame" href="fabio.byte_offset-module.html#__test__"
+     >fabio.byte_offset.__test__</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#DATA_TYPES"
+     >fabio.cbfimage.DATA_TYPES</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#MINIMUM_KEYS"
+     >fabio.cbfimage.MINIMUM_KEYS</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#PADDING"
+     >fabio.cbfimage.PADDING</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#STARTER"
+     >fabio.cbfimage.STARTER</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#__package__"
+     >fabio.cbfimage.__package__</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#logger"
+     >fabio.cbfimage.logger</a><br />    <a target="mainFrame" href="fabio.cf_io-module.html#__package__"
+     >fabio.cf_io.__package__</a><br />    <a target="mainFrame" href="fabio.compression-module.html#__package__"
+     >fabio.compression.__package__</a><br />    <a target="mainFrame" href="fabio.compression-module.html#logger"
+     >fabio.compression.logger</a><br />    <a target="mainFrame" href="fabio.converters-module.html#CONVERSION_DATA"
+     >fabio.converters.CONVERSION_DATA</a><br />    <a target="mainFrame" href="fabio.converters-module.html#CONVERSION_HEADER"
+     >fabio.converters.CONVERSION_HEADER</a><br />    <a target="mainFrame" href="fabio.converters-module.html#__package__"
+     >fabio.converters.__package__</a><br />    <a target="mainFrame" href="fabio.converters-module.html#logger"
+     >fabio.converters.logger</a><br />    <a target="mainFrame" href="fabio.datIO-module.html#__package__"
+     >fabio.datIO.__package__</a><br />    <a target="mainFrame" href="fabio.dm3image-module.html#DATA_BYTES"
+     >fabio.dm3image.DATA_BYTES</a><br />    <a target="mainFrame" href="fabio.dm3image-module.html#DATA_TYPES"
+     >fabio.dm3image.DATA_TYPES</a><br />    <a target="mainFrame" href="fabio.dm3image-module.html#__package__"
+     >fabio.dm3image.__package__</a><br />    <a target="mainFrame" href="fabio.dm3image-module.html#logger"
+     >fabio.dm3image.logger</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#BLOCKSIZE"
+     >fabio.edfimage.BLOCKSIZE</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#DATA_TYPES"
+     >fabio.edfimage.DATA_TYPES</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#DEFAULT_VALUES"
+     >fabio.edfimage.DEFAULT_VALUES</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#MINIMUM_KEYS"
+     >fabio.edfimage.MINIMUM_KEYS</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#NUMPY_EDF_DTYPE"
+     >fabio.edfimage.NUMPY_EDF_DTYPE</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#__package__"
+     >fabio.edfimage.__package__</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#logger"
+     >fabio.edfimage.logger</a><br />    <a target="mainFrame" href="fabio.fabioimage-module.html#__package__"
+     >fabio.fabioimage.__package__</a><br />    <a target="mainFrame" href="fabio.fabioimage-module.html#logger"
+     >fabio.fabioimage.logger</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#COMPRESSORS"
+     >fabio.fabioutils.COMPRESSORS</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#FILETYPES"
+     >fabio.fabioutils.FILETYPES</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#__package__"
+     >fabio.fabioutils.__package__</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#dictAscii"
+     >fabio.fabioutils.dictAscii</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#i"
+     >fabio.fabioutils.i</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#key"
+     >fabio.fabioutils.key</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#lines"
+     >fabio.fabioutils.lines</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#logger"
+     >fabio.fabioutils.logger</a><br />    <a target="mainFrame" href="fabio.file_series-module.html#__package__"
+     >fabio.file_series.__package__</a><br />    <a target="mainFrame" href="fabio.file_series-module.html#logger"
+     >fabio.file_series.logger</a><br />    <a target="mainFrame" href="fabio.fit2dmaskimage-module.html#__package__"
+     >fabio.fit2dmaskimage.__package__</a><br />    <a target="mainFrame" href="fabio.fit2dspreadsheetimage-module.html#__package__"
+     >fabio.fit2dspreadsheetimage.__package__</a><br />    <a target="mainFrame" href="fabio.kcdimage-module.html#DATA_TYPES"
+     >fabio.kcdimage.DATA_TYPES</a><br />    <a target="mainFrame" href="fabio.kcdimage-module.html#DEFAULT_VALUES"
+     >fabio.kcdimage.DEFAULT_VALUES</a><br />    <a target="mainFrame" href="fabio.kcdimage-module.html#MINIMUM_KEYS"
+     >fabio.kcdimage.MINIMUM_KEYS</a><br />    <a target="mainFrame" href="fabio.kcdimage-module.html#__package__"
+     >fabio.kcdimage.__package__</a><br />    <a target="mainFrame" href="fabio.kcdimage-module.html#logger"
+     >fabio.kcdimage.logger</a><br />    <a target="mainFrame" href="fabio.mar345_IO-module.html#__package__"
+     >fabio.mar345_IO.__package__</a><br />    <a target="mainFrame" href="fabio.mar345_IO-module.html#__test__"
+     >fabio.mar345_IO.__test__</a><br />    <a target="mainFrame" href="fabio.mar345image-module.html#__doc__"
+     >fabio.mar345image.__doc__</a><br />    <a target="mainFrame" href="fabio.mar345image-module.html#__package__"
+     >fabio.mar345image.__package__</a><br />    <a target="mainFrame" href="fabio.mar345image-module.html#logger"
+     >fabio.mar345image.logger</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#CDEFINITION"
+     >fabio.marccdimage.CDEFINITION</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#C_SIZES"
+     >fabio.marccdimage.C_SIZES</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#C_TO_STRUCT"
+     >fabio.marccdimage.C_TO_STRUCT</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#HEADER_FORMAT"
+     >fabio.marccdimage.HEADER_FORMAT</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#HEADER_NAMES"
+     >fabio.marccdimage.HEADER_NAMES</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#MAXIMAGES"
+     >fabio.marccdimage.MAXIMAGES</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#__package__"
+     >fabio.marccdimage.__package__</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#logger"
+     >fabio.marccdimage.logger</a><br />    <a target="mainFrame" href="fabio.openimage-module.html#MAGIC_NUMBERS"
+     >fabio.openimage.MAGIC_NUMBERS</a><br />    <a target="mainFrame" href="fabio.openimage-module.html#__package__"
+     >fabio.openimage.__package__</a><br />    <a target="mainFrame" href="fabio.openimage-module.html#logger"
+     >fabio.openimage.logger</a><br />    <a target="mainFrame" href="fabio.pilatusimage-module.html#__package__"
+     >fabio.pilatusimage.__package__</a><br />    <a target="mainFrame" href="fabio.pnmimage-module.html#HEADERITEMS"
+     >fabio.pnmimage.HEADERITEMS</a><br />    <a target="mainFrame" href="fabio.pnmimage-module.html#P7HEADERITEMS"
+     >fabio.pnmimage.P7HEADERITEMS</a><br />    <a target="mainFrame" href="fabio.pnmimage-module.html#SUBFORMATS"
+     >fabio.pnmimage.SUBFORMATS</a><br />    <a target="mainFrame" href="fabio.pnmimage-module.html#__package__"
+     >fabio.pnmimage.__package__</a><br />    <a target="mainFrame" href="fabio.pnmimage-module.html#logger"
+     >fabio.pnmimage.logger</a><br />    <a target="mainFrame" href="fabio.readbytestream-module.html#DATATYPES"
+     >fabio.readbytestream.DATATYPES</a><br />    <a target="mainFrame" href="fabio.readbytestream-module.html#__package__"
+     >fabio.readbytestream.__package__</a><br />    <a target="mainFrame" href="fabio.readbytestream-module.html#logger"
+     >fabio.readbytestream.logger</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#BIG_ENDIAN"
+     >fabio.tifimage.BIG_ENDIAN</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#LITTLE_ENDIAN"
+     >fabio.tifimage.LITTLE_ENDIAN</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#PIL_TO_NUMPY"
+     >fabio.tifimage.PIL_TO_NUMPY</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#TYPES"
+     >fabio.tifimage.TYPES</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#TYPESIZES"
+     >fabio.tifimage.TYPESIZES</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#__package__"
+     >fabio.tifimage.__package__</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#__status__"
+     >fabio.tifimage.__status__</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#baseline_tiff_tags"
+     >fabio.tifimage.baseline_tiff_tags</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#logger"
+     >fabio.tifimage.logger</a><br />    <a target="mainFrame" href="fabio-module.html#version"
+     >fabio.version</a><br />    <a target="mainFrame" href="fabio.xsdimage-module.html#__package__"
+     >fabio.xsdimage.__package__</a><br />    <a target="mainFrame" href="fabio.xsdimage-module.html#logger"
+     >fabio.xsdimage.logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio-module.html b/epydoc/toc-fabio-module.html
new file mode 100644
index 0000000..10192c9
--- /dev/null
+++ b/epydoc/toc-fabio-module.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabio</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module fabio</h1>
+<hr />
+  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio-module.html#__status__"
+     >__status__</a><br />    <a target="mainFrame" href="fabio-module.html#version"
+     >version</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.GEimage-module.html b/epydoc/toc-fabio.GEimage-module.html
new file mode 100644
index 0000000..bc6d60b
--- /dev/null
+++ b/epydoc/toc-fabio.GEimage-module.html
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>GEimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module GEimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.GEimage.GEimage-class.html"
+     >GEimage</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.GEimage-module.html#demo"
+     >demo</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.GEimage-module.html#GE_HEADER_INFO"
+     >GE_HEADER_INFO</a><br />    <a target="mainFrame" href="fabio.GEimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.GEimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.GEimage_old-module.html b/epydoc/toc-fabio.GEimage_old-module.html
new file mode 100644
index 0000000..28f09b6
--- /dev/null
+++ b/epydoc/toc-fabio.GEimage_old-module.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>GEimage_old</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module GEimage_old</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.GEimage_old.GEimage-class.html"
+     >GEimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.GEimage_old-module.html#__package__"
+     >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.HiPiCimage-module.html b/epydoc/toc-fabio.HiPiCimage-module.html
new file mode 100644
index 0000000..cc5c419
--- /dev/null
+++ b/epydoc/toc-fabio.HiPiCimage-module.html
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>HiPiCimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module HiPiCimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.HiPiCimage.HiPiCimage-class.html"
+     >HiPiCimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.HiPiCimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.HiPiCimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.OXDimage-module.html b/epydoc/toc-fabio.OXDimage-module.html
new file mode 100644
index 0000000..9b84e5a
--- /dev/null
+++ b/epydoc/toc-fabio.OXDimage-module.html
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>OXDimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module OXDimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.OXDimage.OXDimage-class.html"
+     >OXDimage</a><br />    <a target="mainFrame" href="fabio.OXDimage.Section-class.html"
+     >Section</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.OXDimage-module.html#DEFAULT_HEADERS"
+     >DEFAULT_HEADERS</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#DETECTOR_TYPES"
+     >DETECTOR_TYPES</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#__doc__"
+     >__doc__</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#deg2rad"
+     >deg2rad</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#logger"
+     >logger</a><br />    <a target="mainFrame" href="fabio.OXDimage-module.html#rad2deg"
+     >rad2deg</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.TiffIO-module.html b/epydoc/toc-fabio.TiffIO-module.html
new file mode 100644
index 0000000..12e2d56
--- /dev/null
+++ b/epydoc/toc-fabio.TiffIO-module.html
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>TiffIO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module TiffIO</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.TiffIO.TiffIO-class.html"
+     >TiffIO</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.TiffIO-module.html#ALLOW_MULTIPLE_STRIPS"
+     >ALLOW_MULTIPLE_STRIPS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#DEBUG"
+     >DEBUG</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#FIELD_TYPE"
+     >FIELD_TYPE</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#FIELD_TYPE_OUT"
+     >FIELD_TYPE_OUT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXIEEEFP"
+     >SAMPLE_FORMAT_COMPLEXIEEEFP</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_COMPLEXINT"
+     >SAMPLE_FORMAT_COMPLEXINT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_FLOAT"
+     >SAMPLE_FORMAT_FLOAT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_INT"
+     >SAMPLE_FORMAT_INT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_UINT"
+     >SAMPLE_FORMAT_UINT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#SAMPLE_FORMAT_VOID"
+     >SAMPLE_FORMAT_VOID</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_BITS_PER_SAMPLE"
+     >TAG_BITS_PER_SAMPLE</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_COLORMAP"
+     >TAG_COLORMAP</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_COMPRESSION"
+     >TAG_COMPRESSION</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_DATE"
+     >TAG_DATE</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_ID"
+     >TAG_ID</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_IMAGE_DESCRIPTION"
+     >TAG_IMAGE_DESCRIPTION</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_NUMBER_OF_COLUMNS"
+     >TAG_NUMBER_OF_COLUMNS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_NUMBER_OF_ROWS"
+     >TAG_NUMBER_OF_ROWS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_PHOTOMETRIC_INTERPRETATION"
+     >TAG_PHOTOMETRIC_INTERPRETATION</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_ROWS_PER_STRIP"
+     >TAG_ROWS_PER_STRIP</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_SAMPLE_FORMAT"
+     >TAG_SAMPLE_FORMAT</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_SOFTWARE"
+     >TAG_SOFTWARE</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_STRIP_BYTE_COUNTS"
+     >TAG_STRIP_BYTE_COUNTS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#TAG_STRIP_OFFSETS"
+     >TAG_STRIP_OFFSETS</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.TiffIO-module.html#__revision__"
+     >__revision__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.adscimage-module.html b/epydoc/toc-fabio.adscimage-module.html
new file mode 100644
index 0000000..c837781
--- /dev/null
+++ b/epydoc/toc-fabio.adscimage-module.html
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>adscimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module adscimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.adscimage.adscimage-class.html"
+     >adscimage</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.adscimage-module.html#test"
+     >test</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.adscimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.adscimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.binaryimage-module.html b/epydoc/toc-fabio.binaryimage-module.html
new file mode 100644
index 0000000..489969f
--- /dev/null
+++ b/epydoc/toc-fabio.binaryimage-module.html
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>binaryimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module binaryimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.binaryimage.binaryimage-class.html"
+     >binaryimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.binaryimage-module.html#__doc__"
+     >__doc__</a><br />    <a target="mainFrame" href="fabio.binaryimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.binaryimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.bruker100image-module.html b/epydoc/toc-fabio.bruker100image-module.html
new file mode 100644
index 0000000..32be6de
--- /dev/null
+++ b/epydoc/toc-fabio.bruker100image-module.html
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>bruker100image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module bruker100image</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.bruker100image.bruker100image-class.html"
+     >bruker100image</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.bruker100image-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.bruker100image-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.brukerimage-module.html b/epydoc/toc-fabio.brukerimage-module.html
new file mode 100644
index 0000000..2a4c0f2
--- /dev/null
+++ b/epydoc/toc-fabio.brukerimage-module.html
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>brukerimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module brukerimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.brukerimage.brukerimage-class.html"
+     >brukerimage</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.brukerimage-module.html#test"
+     >test</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.brukerimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.brukerimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.byte_offset-module.html b/epydoc/toc-fabio.byte_offset-module.html
new file mode 100644
index 0000000..11fc7d1
--- /dev/null
+++ b/epydoc/toc-fabio.byte_offset-module.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>byte_offset</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module byte_offset</h1>
+<hr />
+  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.byte_offset-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.byte_offset-module.html#__test__"
+     >__test__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.cbfimage-module.html b/epydoc/toc-fabio.cbfimage-module.html
new file mode 100644
index 0000000..e6ccd0b
--- /dev/null
+++ b/epydoc/toc-fabio.cbfimage-module.html
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>cbfimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module cbfimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.cbfimage.CIF-class.html"
+     >CIF</a><br />    <a target="mainFrame" href="fabio.cbfimage.cbfimage-class.html"
+     >cbfimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.cbfimage-module.html#DATA_TYPES"
+     >DATA_TYPES</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#MINIMUM_KEYS"
+     >MINIMUM_KEYS</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#PADDING"
+     >PADDING</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#STARTER"
+     >STARTER</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.cbfimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.cf_io-module.html b/epydoc/toc-fabio.cf_io-module.html
new file mode 100644
index 0000000..ca8b439
--- /dev/null
+++ b/epydoc/toc-fabio.cf_io-module.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>cf_io</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module cf_io</h1>
+<hr />
+  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.cf_io-module.html#read"
+     >read</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.cf_io-module.html#__package__"
+     >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.compression-module.html b/epydoc/toc-fabio.compression-module.html
new file mode 100644
index 0000000..cf6c258
--- /dev/null
+++ b/epydoc/toc-fabio.compression-module.html
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>compression</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module compression</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="str-class.html"
+     >str</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.compression-module.html#compByteOffet_numpy"
+     >compByteOffet_numpy</a><br />    <a target="mainFrame" href="fabio.compression-module.html#compPCK"
+     >compPCK</a><br />    <a target="mainFrame" href="fabio.compression-module.html#compTY1"
+     >compTY1</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decByteOffet_cython"
+     >decByteOffet_cython</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decByteOffet_numpy"
+     >decByteOffet_numpy</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decByteOffet_python"
+     >decByteOffet_python</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decByteOffet_weave"
+     >decByteOffet_weave</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decBzip2"
+     >decBzip2</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decGzip"
+     >decGzip</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decKM4CCD"
+     >decKM4CCD</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decPCK"
+     >decPCK</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decTY1"
+     >decTY1</a><br />    <a target="mainFrame" href="fabio.compression-module.html#decZlib"
+     >decZlib</a><br />    <a target="mainFrame" href="fabio.compression-module.html#endianness"
+     >endianness</a><br />    <a target="mainFrame" href="fabio.compression-module.html#md5sum"
+     >md5sum</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.compression-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.compression-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.converters-module.html b/epydoc/toc-fabio.converters-module.html
new file mode 100644
index 0000000..f6a6929
--- /dev/null
+++ b/epydoc/toc-fabio.converters-module.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>converters</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module converters</h1>
+<hr />
+  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.converters-module.html#convert_data"
+     >convert_data</a><br />    <a target="mainFrame" href="fabio.converters-module.html#convert_data_integer"
+     >convert_data_integer</a><br />    <a target="mainFrame" href="fabio.converters-module.html#convert_header"
+     >convert_header</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.converters-module.html#CONVERSION_DATA"
+     >CONVERSION_DATA</a><br />    <a target="mainFrame" href="fabio.converters-module.html#CONVERSION_HEADER"
+     >CONVERSION_HEADER</a><br />    <a target="mainFrame" href="fabio.converters-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.converters-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.datIO-module.html b/epydoc/toc-fabio.datIO-module.html
new file mode 100644
index 0000000..375065c
--- /dev/null
+++ b/epydoc/toc-fabio.datIO-module.html
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>datIO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module datIO</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.datIO.columnfile-class.html"
+     >columnfile</a><br />    <a target="mainFrame" href="fabio.datIO.fabiodata-class.html"
+     >fabiodata</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.datIO-module.html#__package__"
+     >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.dm3image-module.html b/epydoc/toc-fabio.dm3image-module.html
new file mode 100644
index 0000000..9a3d539
--- /dev/null
+++ b/epydoc/toc-fabio.dm3image-module.html
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>dm3image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module dm3image</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.dm3image.dm3image-class.html"
+     >dm3image</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.dm3image-module.html#DATA_BYTES"
+     >DATA_BYTES</a><br />    <a target="mainFrame" href="fabio.dm3image-module.html#DATA_TYPES"
+     >DATA_TYPES</a><br />    <a target="mainFrame" href="fabio.dm3image-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.dm3image-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.edfimage-module.html b/epydoc/toc-fabio.edfimage-module.html
new file mode 100644
index 0000000..7605ba3
--- /dev/null
+++ b/epydoc/toc-fabio.edfimage-module.html
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>edfimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module edfimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.edfimage.Frame-class.html"
+     >Frame</a><br />    <a target="mainFrame" href="fabio.edfimage.edfimage-class.html"
+     >edfimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.edfimage-module.html#BLOCKSIZE"
+     >BLOCKSIZE</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#DATA_TYPES"
+     >DATA_TYPES</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#DEFAULT_VALUES"
+     >DEFAULT_VALUES</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#MINIMUM_KEYS"
+     >MINIMUM_KEYS</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#NUMPY_EDF_DTYPE"
+     >NUMPY_EDF_DTYPE</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.edfimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.fabioimage-module.html b/epydoc/toc-fabio.fabioimage-module.html
new file mode 100644
index 0000000..115019e
--- /dev/null
+++ b/epydoc/toc-fabio.fabioimage-module.html
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabioimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module fabioimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.fabioimage.fabioimage-class.html"
+     >fabioimage</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.fabioimage-module.html#test"
+     >test</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.fabioimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.fabioimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.fabioutils-module.html b/epydoc/toc-fabio.fabioutils-module.html
new file mode 100644
index 0000000..c51ceef
--- /dev/null
+++ b/epydoc/toc-fabio.fabioutils-module.html
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fabioutils</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module fabioutils</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.fabioutils.BZ2File-class.html"
+     >BZ2File</a><br />    <a target="mainFrame" href="fabio.fabioutils.File-class.html"
+     >File</a><br />    <a target="mainFrame" href="fabio.fabioutils.FilenameObject-class.html"
+     >FilenameObject</a><br />    <a target="mainFrame" href="fabio.fabioutils.GzipFile-class.html"
+     >GzipFile</a><br />    <a target="mainFrame" href="fabio.fabioutils.StringIO-class.html"
+     >StringIO</a><br />    <a target="mainFrame" href="fabio.fabioutils.UnknownCompressedFile-class.html"
+     >UnknownCompressedFile</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.fabioutils-module.html#construct_filename"
+     >construct_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#deconstruct_filename"
+     >deconstruct_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#deprecated"
+     >deprecated</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#extract_filenumber"
+     >extract_filenumber</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#getnum"
+     >getnum</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#isAscii"
+     >isAscii</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#jump_filename"
+     >jump_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#next_filename"
+     >next_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#nice_int"
+     >nice_int</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#numstem"
+     >numstem</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#previous_filename"
+     >previous_filename</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#toAscii"
+     >toAscii</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.fabioutils-module.html#COMPRESSORS"
+     >COMPRESSORS</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#FILETYPES"
+     >FILETYPES</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#dictAscii"
+     >dictAscii</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#i"
+     >i</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#key"
+     >key</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#lines"
+     >lines</a><br />    <a target="mainFrame" href="fabio.fabioutils-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.file_series-module.html b/epydoc/toc-fabio.file_series-module.html
new file mode 100644
index 0000000..f847eeb
--- /dev/null
+++ b/epydoc/toc-fabio.file_series-module.html
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>file_series</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module file_series</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.file_series.file_series-class.html"
+     >file_series</a><br />    <a target="mainFrame" href="fabio.file_series.filename_series-class.html"
+     >filename_series</a><br />    <a target="mainFrame" href="fabio.file_series.numbered_file_series-class.html"
+     >numbered_file_series</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.file_series-module.html#new_file_series"
+     >new_file_series</a><br />    <a target="mainFrame" href="fabio.file_series-module.html#new_file_series0"
+     >new_file_series0</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.file_series-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.file_series-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.fit2dmaskimage-module.html b/epydoc/toc-fabio.fit2dmaskimage-module.html
new file mode 100644
index 0000000..119c864
--- /dev/null
+++ b/epydoc/toc-fabio.fit2dmaskimage-module.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fit2dmaskimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module fit2dmaskimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.fit2dmaskimage.fit2dmaskimage-class.html"
+     >fit2dmaskimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.fit2dmaskimage-module.html#__package__"
+     >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.fit2dspreadsheetimage-module.html b/epydoc/toc-fabio.fit2dspreadsheetimage-module.html
new file mode 100644
index 0000000..51801c4
--- /dev/null
+++ b/epydoc/toc-fabio.fit2dspreadsheetimage-module.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>fit2dspreadsheetimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module fit2dspreadsheetimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html"
+     >fit2dspreadsheetimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.fit2dspreadsheetimage-module.html#__package__"
+     >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.kcdimage-module.html b/epydoc/toc-fabio.kcdimage-module.html
new file mode 100644
index 0000000..1b0d855
--- /dev/null
+++ b/epydoc/toc-fabio.kcdimage-module.html
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>kcdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module kcdimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.kcdimage.kcdimage-class.html"
+     >kcdimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.kcdimage-module.html#DATA_TYPES"
+     >DATA_TYPES</a><br />    <a target="mainFrame" href="fabio.kcdimage-module.html#DEFAULT_VALUES"
+     >DEFAULT_VALUES</a><br />    <a target="mainFrame" href="fabio.kcdimage-module.html#MINIMUM_KEYS"
+     >MINIMUM_KEYS</a><br />    <a target="mainFrame" href="fabio.kcdimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.kcdimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.mar345_IO-module.html b/epydoc/toc-fabio.mar345_IO-module.html
new file mode 100644
index 0000000..4cd76e4
--- /dev/null
+++ b/epydoc/toc-fabio.mar345_IO-module.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>mar345_IO</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module mar345_IO</h1>
+<hr />
+  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.mar345_IO-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.mar345_IO-module.html#__test__"
+     >__test__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.mar345image-module.html b/epydoc/toc-fabio.mar345image-module.html
new file mode 100644
index 0000000..2144ac2
--- /dev/null
+++ b/epydoc/toc-fabio.mar345image-module.html
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>mar345image</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module mar345image</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.mar345image.mar345image-class.html"
+     >mar345image</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.mar345image-module.html#__doc__"
+     >__doc__</a><br />    <a target="mainFrame" href="fabio.mar345image-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.mar345image-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.marccdimage-module.html b/epydoc/toc-fabio.marccdimage-module.html
new file mode 100644
index 0000000..d2286c3
--- /dev/null
+++ b/epydoc/toc-fabio.marccdimage-module.html
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>marccdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module marccdimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.marccdimage.marccdimage-class.html"
+     >marccdimage</a><br />  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.marccdimage-module.html#interpret_header"
+     >interpret_header</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#make_format"
+     >make_format</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.marccdimage-module.html#CDEFINITION"
+     >CDEFINITION</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#C_SIZES"
+     >C_SIZES</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#C_TO_STRUCT"
+     >C_TO_STRUCT</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#HEADER_FORMAT"
+     >HEADER_FORMAT</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#HEADER_NAMES"
+     >HEADER_NAMES</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#MAXIMAGES"
+     >MAXIMAGES</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.marccdimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.mytest-module.html b/epydoc/toc-fabio.mytest-module.html
new file mode 100644
index 0000000..8542044
--- /dev/null
+++ b/epydoc/toc-fabio.mytest-module.html
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>mytest</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module mytest</h1>
+<hr />
+<hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.openimage-module.html b/epydoc/toc-fabio.openimage-module.html
new file mode 100644
index 0000000..bf07e0a
--- /dev/null
+++ b/epydoc/toc-fabio.openimage-module.html
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>openimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module openimage</h1>
+<hr />
+  <h2 class="toc">Functions</h2>
+  <div class="private">
+    <a target="mainFrame" href="fabio.openimage-module.html#_openimage"
+     >_openimage</a><br />  </div>
+    <a target="mainFrame" href="fabio.openimage-module.html#do_magic"
+     >do_magic</a><br />    <a target="mainFrame" href="fabio.openimage-module.html#openheader"
+     >openheader</a><br />    <a target="mainFrame" href="fabio.openimage-module.html#openimage"
+     >openimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.openimage-module.html#MAGIC_NUMBERS"
+     >MAGIC_NUMBERS</a><br />    <a target="mainFrame" href="fabio.openimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.openimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.pilatusimage-module.html b/epydoc/toc-fabio.pilatusimage-module.html
new file mode 100644
index 0000000..98c2a52
--- /dev/null
+++ b/epydoc/toc-fabio.pilatusimage-module.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>pilatusimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module pilatusimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.pilatusimage.pilatusimage-class.html"
+     >pilatusimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.pilatusimage-module.html#__package__"
+     >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.pnmimage-module.html b/epydoc/toc-fabio.pnmimage-module.html
new file mode 100644
index 0000000..71b6a0d
--- /dev/null
+++ b/epydoc/toc-fabio.pnmimage-module.html
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>pnmimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module pnmimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.pnmimage.pnmimage-class.html"
+     >pnmimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.pnmimage-module.html#HEADERITEMS"
+     >HEADERITEMS</a><br />    <a target="mainFrame" href="fabio.pnmimage-module.html#P7HEADERITEMS"
+     >P7HEADERITEMS</a><br />    <a target="mainFrame" href="fabio.pnmimage-module.html#SUBFORMATS"
+     >SUBFORMATS</a><br />    <a target="mainFrame" href="fabio.pnmimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.pnmimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.readbytestream-module.html b/epydoc/toc-fabio.readbytestream-module.html
new file mode 100644
index 0000000..b62c3c8
--- /dev/null
+++ b/epydoc/toc-fabio.readbytestream-module.html
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>readbytestream</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module readbytestream</h1>
+<hr />
+  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="fabio.readbytestream-module.html#readbytestream"
+     >readbytestream</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.readbytestream-module.html#DATATYPES"
+     >DATATYPES</a><br />    <a target="mainFrame" href="fabio.readbytestream-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.readbytestream-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.tifimage-module.html b/epydoc/toc-fabio.tifimage-module.html
new file mode 100644
index 0000000..b17c6fc
--- /dev/null
+++ b/epydoc/toc-fabio.tifimage-module.html
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>tifimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module tifimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.tifimage.Image_File_Directory-class.html"
+     >Image_File_Directory</a><br />    <a target="mainFrame" href="fabio.tifimage.Image_File_Directory_entry-class.html"
+     >Image_File_Directory_entry</a><br />    <a target="mainFrame" href="fabio.tifimage.Tiff_header-class.html"
+     >Tiff_header</a><br />    <a target="mainFrame" href="fabio.tifimage.tifimage-class.html"
+     >tifimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.tifimage-module.html#BIG_ENDIAN"
+     >BIG_ENDIAN</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#LITTLE_ENDIAN"
+     >LITTLE_ENDIAN</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#PIL_TO_NUMPY"
+     >PIL_TO_NUMPY</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#TYPES"
+     >TYPES</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#TYPESIZES"
+     >TYPESIZES</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#__status__"
+     >__status__</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#baseline_tiff_tags"
+     >baseline_tiff_tags</a><br />    <a target="mainFrame" href="fabio.tifimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc-fabio.xsdimage-module.html b/epydoc/toc-fabio.xsdimage-module.html
new file mode 100644
index 0000000..e01dfc3
--- /dev/null
+++ b/epydoc/toc-fabio.xsdimage-module.html
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>xsdimage</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Module xsdimage</h1>
+<hr />
+  <h2 class="toc">Classes</h2>
+    <a target="mainFrame" href="fabio.xsdimage.xsdimage-class.html"
+     >xsdimage</a><br />  <h2 class="toc">Variables</h2>
+    <a target="mainFrame" href="fabio.xsdimage-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="fabio.xsdimage-module.html#logger"
+     >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/epydoc/toc.html b/epydoc/toc.html
new file mode 100644
index 0000000..54acdda
--- /dev/null
+++ b/epydoc/toc.html
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Table of Contents</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<h1 class="toc">Table of Contents</h1>
+<hr />
+  <a target="moduleFrame" href="toc-everything.html">Everything</a>
+  <br />
+  <h2 class="toc">Modules</h2>
+    <a target="moduleFrame" href="toc-fabio-module.html"
+     onclick="setFrame('toc-fabio-module.html','fabio-module.html');"     >fabio</a><br />    <a target="moduleFrame" href="toc-fabio.GEimage-module.html"
+     onclick="setFrame('toc-fabio.GEimage-module.html','fabio.GEimage-module.html');"     >fabio.GEimage</a><br />    <a target="moduleFrame" href="toc-fabio.GEimage_old-module.html"
+     onclick="setFrame('toc-fabio.GEimage_old-module.html','fabio.GEimage_old-module.html');"     >fabio.GEimage_old</a><br />    <a target="moduleFrame" href="toc-fabio.HiPiCimage-module.html"
+     onclick="setFrame('toc-fabio.HiPiCimage-module.html','fabio.HiPiCimage-module.html');"     >fabio.HiPiCimage</a><br />    <a target="moduleFrame" href="toc-fabio.OXDimage-module.html"
+     onclick="setFrame('toc-fabio.OXDimage-module.html','fabio.OXDimage-module.html');"     >fabio.OXDimage</a><br />    <a target="moduleFrame" href="toc-fabio.TiffIO-module.html"
+     onclick="setFrame('toc-fabio.TiffIO-module.html','fabio.TiffIO-module.html');"     >fabio.TiffIO</a><br />    <a target="moduleFrame" href="toc-fabio.adscimage-module.html"
+     onclick="setFrame('toc-fabio.adscimage-module.html','fabio.adscimage-module.html');"     >fabio.adscimage</a><br />    <a target="moduleFrame" href="toc-fabio.binaryimage-module.html"
+     onclick="setFrame('toc-fabio.binaryimage-module.html','fabio.binaryimage-module.html');"     >fabio.binaryimage</a><br />    <a target="moduleFrame" href="toc-fabio.bruker100image-module.html"
+     onclick="setFrame('toc-fabio.bruker100image-module.html','fabio.bruker100image-module.html');"     >fabio.bruker100image</a><br />    <a target="moduleFrame" href="toc-fabio.brukerimage-module.html"
+     onclick="setFrame('toc-fabio.brukerimage-module.html','fabio.brukerimage-module.html');"     >fabio.brukerimage</a><br />    <a target="moduleFrame" href="toc-fabio.byte_offset-module.html"
+     onclick="setFrame('toc-fabio.byte_offset-module.html','fabio.byte_offset-module.html');"     >fabio.byte_offset</a><br />    <a target="moduleFrame" href="toc-fabio.cbfimage-module.html"
+     onclick="setFrame('toc-fabio.cbfimage-module.html','fabio.cbfimage-module.html');"     >fabio.cbfimage</a><br />    <a target="moduleFrame" href="toc-fabio.cf_io-module.html"
+     onclick="setFrame('toc-fabio.cf_io-module.html','fabio.cf_io-module.html');"     >fabio.cf_io</a><br />    <a target="moduleFrame" href="toc-fabio.compression-module.html"
+     onclick="setFrame('toc-fabio.compression-module.html','fabio.compression-module.html');"     >fabio.compression</a><br />    <a target="moduleFrame" href="toc-fabio.converters-module.html"
+     onclick="setFrame('toc-fabio.converters-module.html','fabio.converters-module.html');"     >fabio.converters</a><br />    <a target="moduleFrame" href="toc-fabio.datIO-module.html"
+     onclick="setFrame('toc-fabio.datIO-module.html','fabio.datIO-module.html');"     >fabio.datIO</a><br />    <a target="moduleFrame" href="toc-fabio.dm3image-module.html"
+     onclick="setFrame('toc-fabio.dm3image-module.html','fabio.dm3image-module.html');"     >fabio.dm3image</a><br />    <a target="moduleFrame" href="toc-fabio.edfimage-module.html"
+     onclick="setFrame('toc-fabio.edfimage-module.html','fabio.edfimage-module.html');"     >fabio.edfimage</a><br />    <a target="moduleFrame" href="toc-fabio.fabioimage-module.html"
+     onclick="setFrame('toc-fabio.fabioimage-module.html','fabio.fabioimage-module.html');"     >fabio.fabioimage</a><br />    <a target="moduleFrame" href="toc-fabio.fabioutils-module.html"
+     onclick="setFrame('toc-fabio.fabioutils-module.html','fabio.fabioutils-module.html');"     >fabio.fabioutils</a><br />    <a target="moduleFrame" href="toc-fabio.file_series-module.html"
+     onclick="setFrame('toc-fabio.file_series-module.html','fabio.file_series-module.html');"     >fabio.file_series</a><br />    <a target="moduleFrame" href="toc-fabio.fit2dmaskimage-module.html"
+     onclick="setFrame('toc-fabio.fit2dmaskimage-module.html','fabio.fit2dmaskimage-module.html');"     >fabio.fit2dmaskimage</a><br />    <a target="moduleFrame" href="toc-fabio.fit2dspreadsheetimage-module.html"
+     onclick="setFrame('toc-fabio.fit2dspreadsheetimage-module.html','fabio.fit2dspreadsheetimage-module.html');"     >fabio.fit2dspreadsheetimage</a><br />    <a target="moduleFrame" href="toc-fabio.kcdimage-module.html"
+     onclick="setFrame('toc-fabio.kcdimage-module.html','fabio.kcdimage-module.html');"     >fabio.kcdimage</a><br />    <a target="moduleFrame" href="toc-fabio.mar345_IO-module.html"
+     onclick="setFrame('toc-fabio.mar345_IO-module.html','fabio.mar345_IO-module.html');"     >fabio.mar345_IO</a><br />    <a target="moduleFrame" href="toc-fabio.mar345image-module.html"
+     onclick="setFrame('toc-fabio.mar345image-module.html','fabio.mar345image-module.html');"     >fabio.mar345image</a><br />    <a target="moduleFrame" href="toc-fabio.marccdimage-module.html"
+     onclick="setFrame('toc-fabio.marccdimage-module.html','fabio.marccdimage-module.html');"     >fabio.marccdimage</a><br />    <a target="moduleFrame" href="toc-fabio.openimage-module.html"
+     onclick="setFrame('toc-fabio.openimage-module.html','fabio.openimage-module.html');"     >fabio.openimage</a><br />    <a target="moduleFrame" href="toc-fabio.pilatusimage-module.html"
+     onclick="setFrame('toc-fabio.pilatusimage-module.html','fabio.pilatusimage-module.html');"     >fabio.pilatusimage</a><br />    <a target="moduleFrame" href="toc-fabio.pnmimage-module.html"
+     onclick="setFrame('toc-fabio.pnmimage-module.html','fabio.pnmimage-module.html');"     >fabio.pnmimage</a><br />    <a target="moduleFrame" href="toc-fabio.readbytestream-module.html"
+     onclick="setFrame('toc-fabio.readbytestream-module.html','fabio.readbytestream-module.html');"     >fabio.readbytestream</a><br />    <a target="moduleFrame" href="toc-fabio.tifimage-module.html"
+     onclick="setFrame('toc-fabio.tifimage-module.html','fabio.tifimage-module.html');"     >fabio.tifimage</a><br />    <a target="moduleFrame" href="toc-fabio.xsdimage-module.html"
+     onclick="setFrame('toc-fabio.xsdimage-module.html','fabio.xsdimage-module.html');"     >fabio.xsdimage</a><br /><hr />
+  <span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>
diff --git a/fabio/GEimage.py b/fabio-src/GEimage.py
similarity index 100%
rename from fabio/GEimage.py
rename to fabio-src/GEimage.py
diff --git a/fabio/GEimage_old.py b/fabio-src/GEimage_old.py
similarity index 100%
rename from fabio/GEimage_old.py
rename to fabio-src/GEimage_old.py
diff --git a/fabio/HiPiCimage.py b/fabio-src/HiPiCimage.py
similarity index 100%
rename from fabio/HiPiCimage.py
rename to fabio-src/HiPiCimage.py
diff --git a/fabio/OXDimage.py b/fabio-src/OXDimage.py
similarity index 96%
rename from fabio/OXDimage.py
rename to fabio-src/OXDimage.py
index d3e1d68..b23d5fc 100644
--- a/fabio/OXDimage.py
+++ b/fabio-src/OXDimage.py
@@ -5,16 +5,17 @@ from __future__ import with_statement
 __doc__ = """
 Reads Oxford Diffraction Sapphire 3 images
 
-Authors: Henning O. Sorensen & Erik Knudsen
-         Center for Fundamental Research: Metal Structures in Four Dimensions
-         Risoe National Laboratory
-         Frederiksborgvej 399
-         DK-4000 Roskilde
-         email:erik.knudsen at risoe.dk
-
-        + Jon Wright, ESRF
-        + Gaël Goret, ESRF
-        + Jérôme Kieffer, ESRF
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright, Jérôme Kieffer & Gaël Goret:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
 
 """
 
@@ -260,7 +261,7 @@ class OXDimage(fabioimage):
             ascii_headers.append("TIME=%s" % self.header["Time"])
         else:
 
-            ascii_headers.append("TIME=%s" % time.ctime)
+            ascii_headers.append("TIME=%s" % time.ctime())
 
         header = (linesep.join(ascii_headers)).ljust(256)
 
diff --git a/fabio/TiffIO.py b/fabio-src/TiffIO.py
similarity index 100%
rename from fabio/TiffIO.py
rename to fabio-src/TiffIO.py
diff --git a/fabio-src/__init__.py b/fabio-src/__init__.py
new file mode 100644
index 0000000..a95bde6
--- /dev/null
+++ b/fabio-src/__init__.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+#coding: utf8
+"""
+FabIO module
+
+"""
+__author__ = "Jérôme Kieffer"
+__contact__ = "Jerome.Kieffer at ESRF.eu"
+__license__ = "GPLv3+"
+__copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
+__date__ = "30/04/2013"
+__status__ = "stable"
+
+version = "0.1.3"
+import logging
+logging.basicConfig()
+import fabioimage
+import openimage
+from fabioutils import COMPRESSORS, jump_filename, FilenameObject, \
+        previous_filename, next_filename, deconstruct_filename, \
+        extract_filenumber, getnum, construct_filename
+
+# Compatibility with outside world:
+filename_object = FilenameObject
+
+from openimage import openimage as open
+from openimage import openheader as openheader
diff --git a/fabio/adscimage.py b/fabio-src/adscimage.py
similarity index 100%
rename from fabio/adscimage.py
rename to fabio-src/adscimage.py
diff --git a/fabio/binaryimage.py b/fabio-src/binaryimage.py
similarity index 66%
rename from fabio/binaryimage.py
rename to fabio-src/binaryimage.py
index 6c3a339..fdee49b 100644
--- a/fabio/binaryimage.py
+++ b/fabio-src/binaryimage.py
@@ -1,21 +1,24 @@
 #!/usr/bin/env python
-#coding: utf8 
-from __future__ import with_statement
+# coding: utf8
+
+# Get ready for python3:
+from __future__ import with_statement, print_function
 __doc__ = """
 Authors: Gael Goret, Jerome Kieffer, ESRF, France
 Emails: gael.goret at esrf.fr, jerome.kieffer at esrf.fr
+        Brian Richard Pauw <brian at stack.nl>
 
-Binary files images are simple none-compressed 2D images only defined by their : 
+Binary files images are simple none-compressed 2D images only defined by their :
 data-type, dimensions, byte order and offset
 
-This simple library has been made for manipulating exotic/unknown files format.  
+This simple library has been made for manipulating exotic/unknown files format.
 """
 
-__authors__ = ["Gaël Goret", "Jérôme Kieffer"]
-__contact__ = "gael.goret at esrf.fr"#, jerome.kieffer at esrf.eu"
+__authors__ = ["Gaël Goret", "Jérôme Kieffer", "Brian Pauw"]
+__contact__ = "gael.goret at esrf.fr"
 __license__ = "GPLv3+"
 __copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
-__version__ = "17 Apr 2012"
+__version__ = "17 Oct 2012"
 
 from fabioimage import fabioimage
 import numpy, logging
@@ -24,9 +27,12 @@ logger = logging.getLogger("binaryimage")
 class binaryimage(fabioimage):
     """
     This simple library has been made for manipulating exotic/unknown files format.
-    
-    Binary files images are simple none-compressed 2D images only defined by their : 
+
+    Binary files images are simple none-compressed 2D images only defined by their :
     data-type, dimensions, byte order and offset
+
+    if offset is set to a negative value, the image is read using the last data but n
+    data in the file, skipping any header.
     """
 
     def __init__(self, *args, **kwargs):
@@ -43,14 +49,17 @@ class binaryimage(fabioimage):
             return True
 
     def read(self, fname, dim1, dim2, offset=0, bytecode="int32", endian="<"):
-        """ 
+        """
         Read a binary image
-        Parameters : fname, dim1, dim2, offset, bytecode, endian
-        fname : file name : str
-        dim1,dim2 : image dimensions : int
-        offset : size of the : int 
-        bytecode among : "int8","int16","int32","int64","uint8","uint16","uint32","uint64","float32","float64",...
-        endian among short or long endian ("<" or ">")
+
+        @param fname: file name
+        @type fname: string
+        @param dim1: image dimensions (Fast index)
+        @param dim2: image dimensions (Slow index)
+        @param offset: starting position of the data-block. If negative, starts at the end.
+        @param bytecode: can be "int8","int16","int32","int64","uint8","uint16","uint32","uint64","float32","float64",...
+        @param endian:  among short or long endian ("<" or ">")
+
         """
         self.filename = fname
         self.dim1 = dim1
@@ -61,7 +70,15 @@ class binaryimage(fabioimage):
         bpp = len(numpy.array(0, bytecode).tostring())
         size = dims[0] * dims[1] * bpp
 
-        f.seek(offset)
+        if offset >= 0:
+            f.seek(offset)
+        else:
+            try:
+                f.seek(-size + offset + 1, 2) #seek from EOF backwards
+            except IOError:
+                logging.warn('expected datablock too large, please check bytecode settings: {}'.format(bytecode))
+            except:
+                logging.error('Uncommon error encountered when reading file')
         rawData = f.read(size)
         if  self.swap_needed(endian):
             data = numpy.fromstring(rawData, bytecode).byteswap().reshape(tuple(dims))
diff --git a/fabio/bruker100image.py b/fabio-src/bruker100image.py
similarity index 99%
rename from fabio/bruker100image.py
rename to fabio-src/bruker100image.py
index dcffdf7..e6df1fc 100644
--- a/fabio/bruker100image.py
+++ b/fabio-src/bruker100image.py
@@ -3,7 +3,7 @@ import math
 import logging
 logger = logging.getLogger("bruker100image")
 try:
-    import Image
+    from PIL import Image
 except ImportError:
     logger.warning("PIL is not installed ... trying to do without")
     Image = None
diff --git a/fabio-src/brukerimage.py b/fabio-src/brukerimage.py
new file mode 100644
index 0000000..f1348ca
--- /dev/null
+++ b/fabio-src/brukerimage.py
@@ -0,0 +1,421 @@
+#!/usr/bin/env python
+#coding: utf8
+
+from __future__ import with_statement
+
+__doc__ = """
+
+Authors: Henning O. Sorensen & Erik Knudsen
+         Center for Fundamental Research: Metal Structures in Four Dimensions
+         Risoe National Laboratory
+         Frederiksborgvej 399
+         DK-4000 Roskilde
+         email:erik.knudsen at risoe.dk
+
+Based on: openbruker,readbruker, readbrukerheader functions in the opendata
+         module of ImageD11 written by Jon Wright, ESRF, Grenoble, France
+
+Writer by Jérôme Kieffer, ESRF, Grenoble, France
+
+"""
+__authors__ = ["Henning O. Sorensen" , "Erik Knudsen", "Jon Wright", "Jérôme Kieffer"]
+__date__ = "20130502"
+__status__ = "development"
+__copyright__ = "2007-2009 Risoe National Laboratory; 2010-2013 ESRF"
+__licence__ = "GPL"
+
+import numpy, logging, sys
+from math import ceil
+import os, getpass, time
+logger = logging.getLogger("brukerimage")
+from fabioimage import fabioimage
+from fabioutils import pad
+from types import StringTypes
+if sys.version_info[0] < 3:
+    bytes = str
+
+class brukerimage(fabioimage):
+    """
+    Read and eventually write ID11 bruker (eg smart6500) images
+
+    TODO: int32 -> float32 conversion according to the "linear" keyword.
+    This is done and works but we need to check with other program that we
+    are appliing the right formula and not the reciprocal one.
+    
+    """
+    bpp_to_numpy = {1:numpy.uint8,
+                    2:numpy.uint16,
+                    4:numpy.uint32}
+
+    # needed if you feel like writing - see ImageD11/scripts/edf2bruker.py
+
+    SPACER = "\x1a\x04" #this is CTRL-Z CTRL-D
+    HEADERS_KEYS = ["FORMAT",    #Frame format. Always “86” or "100" for Bruker-format frames.
+                   "VERSION",   #Header version #, such as: 1 to 17 (6 is obsolete).
+                   "HDRBLKS",   #Header size in 512-byte blocks, such as 10 or 15. Determines where the image block begins.
+                   "TYPE",      #String indicating kind of data in the frame. Used to determine if a spatial correction table was applied to the frame imag
+                   "SITE",      #Site name
+                   "MODEL",     #Diffractometer model
+                   "USER",      #Username
+                   "SAMPLE",    #Sample ID,
+                   "SETNAME",   #Basic data set name
+                   "RUN",       #Run number within the data set, usually starts at 0, but 1 for APEX2.
+                   "SAMPNUM",   #Specimen number within the data set
+                   "TITLE",     #User comments (8 lines)
+                   "NCOUNTS",   #Total frame counts
+                   "NOVERFL",   #Number of overflows when compression frame.
+                   "MINIMUM",   #Minimum counts in a pixel (uncompressed value)
+                   "MAXIMUM",   #Maximum counts in a pixel (uncompressed value)
+                   "NONTIME",   #Number of on-time events
+                   "NLATE",     #Number of late events. Always zero for many detectors.
+                   "FILENAM",   #(Original) frame filename
+                   "CREATED",   #Date and time of creation
+                   "CUMULAT",   #Accumulated frame exposure time in seconds
+                   "ELAPSDR",   #Requested time for last exposure in seconds
+                   "ELAPSDA",   #Actual time for last exposure in seconds.
+                   "OSCILLA",   #Nonzero if acquired by oscillation
+                   "NSTEPS",    #steps or oscillations in this frame
+                   "RANGE",     #Scan range in decimal degrees (unsigned)
+                   "START",     #Starting scan angle value, decimal degrees
+                   "INCREME",   #Scan angle increment between frames (signed)
+                   "NUMBER",    #Sequence number of this frame in series, usually starts at 0, but 1 for APEX2
+                   "NFRAMES",   #Total number of frames in the series
+                   "ANGLES",    #Diffractometer angles in Eulerian space ( 2T, OM, PH, CH).
+                   "NOVER64",   #Number of pixels > 64K (actually LinearThreshold value)
+                   "NPIXELB",   #Number of bytes/pixel, such as 1, 2, or 4.
+                   "NROWS",     #Number of rasters in frame, such as 512, 1024, 2048, or 4096
+                   "NCOLS",     #Number of pixels/raster, such as 512, 1024, 2048 or 4096
+                   "WORDORD",   #Order of bytes in word (0=LSB first)
+                   "LONGORD",   #Order of words in a longword (0=LSW first)
+                   "TARGET" ,   #X-ray target material: Cu, Mo, Ag, Fe, Cr, Co, Ni, W, Mn, or other.
+                   "SOURCEK",   #X-ray source voltage in kV
+                   "SOURCEM",   #X-ray source current in mA
+                   "FILTER" ,   #Filter/monochromator setting: Such as: Parallel, graphite, Ni Filter, C Filter, Zr Filter,Cross coupled Goebel Mirrors ...
+                   "CELL" ,     #Unit cell A,B,C,ALPHA,BETA,GAMMA
+                   "MATRIX" ,   #9R Orientation matrix (P3 conventions)
+                   "LOWTEMP",   #Low temp flag.
+                   "TEMP",      #set temperature
+                   "HITEMP",    #Acquired at high temperature
+                   "ZOOM" ,     #Zoom: Xc, Yc, Mag used for HI-STAR detectors: 0.5 0.5 1.0
+                   "CENTER" ,   #X, Y of direct beam at 2-theta = 0. These are raw center for raw frames and unwarped center for unwarped frames.
+                   "DISTANC",   #Sample-detector distance, cm (see CmToGrid value) Adds: Sample-detector grid/phosphor distance, cm
+                   "TRAILER",   #Byte pointer to trailer info
+                   "COMPRES",   #Compression scheme ID, if any. Such as: NONE, LINEAR (Linear scale, offset for pixel values, typically 1.0, 0.0).
+                   "LINEAR",    #Linear scale (1.0 0.0 for no change; 0.1 0 for divided by 10...)
+                   "PHD" ,      # Discriminator: Pulse height settings. X100 and X1000 only. Stores CCD phosphor efficiency (first field).
+                   "PREAMP" ,   #Preamp gain setting. X100 and X1000 only. SMART: Stores Roper CCD gain table index value.
+                   "CORRECT",   #Flood table correction filename, UNKNOWN or LINEAR.
+                   "WARPFIL",   #Brass plate correction filename, UNKNOWN or LINEAR. Note: A filename here does NOT mean that spatial correction was performed. See TYPE and string “UNWARP” to determine that.
+                   "WAVELEN",   #Wavelengths (average, a1, a2)
+                   "MAXXY",     #X,Y pixel # of maximum counts (from lower corner of 0,0)
+                   "AXIS",      #Scan axis ib Eulerian space (1-4 for 2-theta, omega, phi, chi) (0 =none, 2 = default).
+                   "ENDING" ,   #Actual goniometer angles at end of frame in Eulerian space.
+                   "DETPAR" ,   #Detector position corrections (dX,dY,dDist,Pitch,Roll,Yaw)
+                   "LUT",       #Recommended display lookup table
+                   "DISPLIM",   #Recommended display limits
+                   "PROGRAM",   #Name and version of program writing frame, such as:
+                   "ROTATE",    #Non zero if acquired by rotation of phi during scan (or oscilate)
+                   "BITMASK",   #File name of active pixel mask associated with this frame or $NULL
+                   "OCTMASK",   #Octagon mask parameters to use if BITMASK=$null. Min X, Min X+Y, Min Y, Max X-Y, Max X, Max X+Y, Max Y, Max Y-X.
+                   "ESDCELL",   #Unit cell parameter standard deviations
+                   "DETTYPE",   #Detector or CCD chip type (as displayed on CEU). Default is MULTIWIRE but UNKNOWN is advised, can contain PIXPERCM: CMTOGRID:
+                   "NEXP",      #Number of exposures: 1=single, 2=correlated sum.32 for most ccds, and 64 for 2K ccds.
+                   "CCDPARM",   #CCD parameters: readnoise, e/ADU, e/photon, bias, full scale
+                   "BIS",       #Potential full linear scale if rescan and attenuator used.
+                   "CHEM",      #Chemical formula in CIFTAB string, such as “?”
+                   "MORPH",     #Crystal morphology in CIFTAB string, such as “?”
+                   "CCOLOR",    #Crystal color in CIFTAB string, such as “?”
+                   "CSIZE",     #Crystal dimensions (3 ea) in CIFTAB string, such as “?”
+                   "DNSMET",     #Density measurement method in CIFTAB string, such as “?”
+                   "DARK",       #Name of dark current correction or NONE.
+                   "AUTORNG",   #Auto-ranging: gain, high-speed time, scale, offset, full linear scale Note: If full linear scale is zero, then CCDPARM full scale is the full linear scale (BIS frames).
+                   "ZEROADJ",   #Goniometer zero corrections (refined in least squares)
+                   "XTRANS",    #Crystal XYZ translations (refined in least squares)
+                   "HKL&XY",    #HKL and pixel XY for reciprocal space scan. GADDS only.
+                   "AXES2",     #Diffractometer setting linear axes (4 ea). (X, Y, Z, Aux)
+                   "ENDING2",   #Actual goniometer linear axes @ end of frame. (X, Y, Z, Aux)
+                   "FILTER2",   #Monochromator 2-theta angle and monochromator roll angle. v15: Adds beam tilt angle and attenuator factor.
+                   "LEPTOS",    # String for LEPTOS.
+                   "CFR",       #Only in 21CFRPart11 mode, writes the checksum for header and image (2str).]
+           ]
+
+    def __init__(self, data=None , header=None):
+        fabioimage.__init__(self, data, header)
+        self.__bpp_file = None
+        self.version = 86
+        self.__headerstring__ = ""
+
+
+    def _readheader(self, infile):
+        """
+        The bruker format uses 80 char lines in key : value format
+        In the first 512*5 bytes of the header there should be a
+        HDRBLKS key, whose value denotes how many 512 byte blocks
+        are in the total header. The header is always n*5*512 bytes,
+        otherwise it wont contain whole key: value pairs
+        """
+        line = 80
+        blocksize = 512
+        nhdrblks = 5 #by default we always read 5 blocks of 512
+        self.__headerstring__ = infile.read(blocksize * nhdrblks)
+        self.header = {}
+        for i in range(0, nhdrblks * blocksize, line):
+            if self.__headerstring__[i: i + line].find(":") > 0:
+                key, val = self.__headerstring__[i: i + line].split(":", 1)
+                key = key.strip()         # remove the whitespace (why?)
+                val = val.strip()
+                if key in self.header:
+                    # append lines if key already there
+                    self.header[key] = self.header[key] + os.linesep + val
+                else:
+                    self.header[key] = val
+                    self.header_keys.append(key)
+        # we must have read this in the first 5*512 bytes.
+        nhdrblks = int(self.header['HDRBLKS'])
+        # Now read in the rest of the header blocks, appending
+        self.__headerstring__ += infile.read(blocksize * (nhdrblks - 5))
+        for i in range(5 * blocksize, nhdrblks * blocksize, line):
+            if self.__headerstring__[i: i + line].find(":") > 0: # as for first 512 bytes of header
+                key, val = self.__headerstring__[i: i + line].split(":", 1)
+                key = key.strip()
+                val = val.strip()
+                if key in self.header:
+                    self.header[key] = self.header[key] + os.linesep + val
+                else:
+                    self.header[key] = val
+                    self.header_keys.append(key)
+        # make a (new) header item called "datastart"
+        self.header['datastart'] = blocksize * nhdrblks
+        #set the image dimensions
+        self.dim1 = int(self.header['NROWS'])
+        self.dim2 = int(self.header['NCOLS'])
+
+    def read(self, fname, frame=None):
+        """
+        Read in and unpack the pixels (including overflow table
+        """
+        infile = self._open(fname, "rb")
+        try:
+            self._readheader(infile)
+        except:
+            raise
+
+        rows = self.dim1
+        cols = self.dim2
+
+        try:
+            # you had to read the Bruker docs to know this!
+            npixelb = int(self.header['NPIXELB'])
+        except Exception:
+            errmsg = "length " + str(len(self.header['NPIXELB'])) + "\n"
+            for byt in self.header['NPIXELB']:
+                errmsg += "char: " + str(byt) + " " + str(ord(byt)) + "\n"
+            logger.warning(errmsg)
+            raise RuntimeError(errmsg)
+
+        data = numpy.fromstring(infile.read(rows * cols * npixelb), dtype=self.bpp_to_numpy[npixelb])
+
+        #handle overflows
+        nov = int(self.header['NOVERFL'])
+        if nov > 0:   # Read in the overflows
+            # need at least int32 sized data I guess - can reach 2^21
+            data = data.astype(numpy.uint32)
+            # 16 character overflows:
+            #      9 characters of intensity
+            #      7 character position
+            for i in range(nov):
+                ovfl = infile.read(16)
+                intensity = int(ovfl[0: 9])
+                position = int(ovfl[9: 16])
+                data[position] = intensity
+        infile.close()
+        # Handle Float images ...
+        if "LINEAR" in self.header:
+            try:
+                slope, offset = self.header["LINEAR"].split(None, 1)
+                slope = float(slope)
+                offset = float(offset)
+            except Except:
+                logger.warning("Error in converting to float data with linear parameter: %s" % self.header["LINEAR"])
+                self.data = data
+            else:
+                if slope == 1 and offset == 0:
+                    self.data = data
+                else:
+                    #TODO: check that the formula is OK, not reverted.
+                    logger.warning("performing correction with slope=%s, offset=%s (LINEAR=%s)" % (slope, offset, self.header["LINEAR"]))
+                    self.data = (data * slope + offset).astype(numpy.float32)
+        else:
+            self.data = data
+        self.data.shape = self.dim1, self.dim2
+
+        self.resetvals()
+        self.pilimage = None
+        return self
+
+
+    def write(self, fname):
+        """
+        Write a bruker image 
+
+        """
+        if numpy.issubdtype(self.data.dtype, float):
+            if "LINEAR" in self.header:
+                try:
+                    slope, offset = self.header["LINEAR"].split(None, 1)
+                    slope = float(slope)
+                    offset = float(offset)
+                except Except:
+                    logger.warning("Error in converting to float data with linear parameter: %s" % self.header["LINEAR"])
+                    slope, offset = 1.0, 0.0
+
+            else:
+                offset = self.data.min()
+                max_data = self.data.max()
+                max_range = 2 ** 24 - 1 #similar to the mantissa of a float32
+                if max_data > offset:
+                    slope = (max_data - offset) / float(max_range)
+                else:
+                    slope = 1.0
+            tmp_data = numpy.round(((self.data - offset) / slope)).astype(numpy.uint32)
+            self.header["LINEAR"] = "%s %s" % (slope, offset)
+
+        else:
+            tmp_data = self.data
+
+        bpp = self.calc_bpp(tmp_data)
+        self.basic_translate(fname)
+        limit = 2 ** (8 * bpp) - 1
+        data = tmp_data.astype(self.bpp_to_numpy[bpp])
+        reset = numpy.where(tmp_data >= limit)
+        data[reset] = limit
+        data = data.newbyteorder("<") #Bruker enforces little endian
+        with self._open(fname, "wb") as bruker:
+            bruker.write(self.gen_header())
+            bruker.write(data.tostring())
+            bruker.write(self.gen_overflow())
+
+
+
+    def calc_bpp(self, data=None, max_entry=4096):
+        """
+        Calculate the number of byte per pixel to get an optimal overflow table. 
+        
+        @return: byte per pixel 
+        """
+        if data is None:
+            data = self.data
+        if self.__bpp_file is None:
+            for i in [1, 2]:
+                overflown = (data >= (2 ** (8 * i) - 1))
+                if overflown.sum() < max_entry:
+                    self.__bpp_file = i
+                    break
+            else:
+                self.__bpp_file = 4
+        return self.__bpp_file
+
+    def gen_header(self):
+        """
+        Generate headers (with some magic and guesses)
+        @param format can be 86 or 100
+        """
+        headers = []
+        for key in self.HEADERS_KEYS:
+            if key in self.header:
+                value = self.header[key]
+                line = key.ljust(7) + ":"
+                if type(value) in StringTypes:
+                    if os.linesep in value:
+                        lines = value.split(os.linesep)
+                        for i in lines[:-1] :
+                            headers.append((line + bytes(i)).ljust(80, " "))
+                            line = key.ljust(7) + ":"
+                        line += bytes(lines[-1])
+                    elif len(value) < 72:
+                        line += bytes(value)
+                    else:
+                        for i in range(len(value) // 72):
+                            headers.append((line + bytes(value[72 * i:72 * (i + 1)])))
+                            line = key.ljust(7) + ":"
+                        line += value[72 * (i + 1):]
+                elif "__len__" in dir(value):
+                    f = "\%.%is" % 72 // len(value) - 1
+                    line += " ".join([f % i for i in value])
+                else:
+                    line += bytes(value)
+                headers.append(line.ljust(80, " "))
+
+        header = "".join(headers)
+        if len(header) > 512 * self.header["HDRBLKS"]:
+            tmp = ceil(len(header) / 512.0)
+            self.header["HDRBLKS"] = int(ceil(tmp / 5.0) * 5.0)
+            for i in range(len(headers)):
+                if headers[i].startswith("HDRBLKS"):
+                    headers[i] = headers.append(("HDRBLKS:%s" % self.header["HDRBLKS"]).ljust(80, " "))
+        res = pad("".join(headers), self.SPACER + "."*78, 512 * int(self.header["HDRBLKS"]))
+        return res
+
+    def gen_overflow(self):
+        """
+        Generate an overflow table  
+        """
+        limit = 2 ** (8 * self.calc_bpp()) - 1
+        flat = self.data.ravel()                     #flat memory view
+        overflow_pos = numpy.where(flat >= limit)[0] #list of indexes
+        overflow_val = flat[overflow_pos]
+        overflow = "".join(["%09i%07i" % (val, pos) for pos, val  in zip(overflow_pos, overflow_val)])
+        return pad(overflow, ".", 512)
+
+    def basic_translate(self, fname=None):
+        """
+        Does some basic population of the headers so that the writing is possible 
+        """
+        if not "FORMAT" in self.header:
+            self.header["FORMAT"] = "86"
+        if not "HDRBLKS" in self.header:
+            self.header["HDRBLKS"] = 5
+        if not "TYPE" in self.header:
+            self.header["TYPE"] = "UNWARPED"
+        if not "USER" in self.header:
+            self.header["USER"] = getpass.getuser()
+        if not "FILENAM" in self.header:
+            self.header["FILENAM"] = "%s" % fname
+        if not "CREATED" in self.header:
+            self.header["CREATED"] = time.ctime()
+        if not "NOVERFL" in self.header:
+            self.header["NOVERFL"] = "0"
+#        if not "NPIXELB" in self.header:
+        self.header["NPIXELB"] = self.calc_bpp()
+        #if not "NROWS" in self.header:
+        self.header["NROWS"] = self.data.shape[0]
+        #if not "NCOLS" in self.header:
+        self.header["NCOLS"] = self.data.shape[1]
+        if not "WORDORD" in self.header:
+            self.header["WORDORD"] = "0"
+        if not "LONGORD" in self.header:
+            self.header["LONGORD"] = "0"
+
+
+def test():
+    """ a testcase """
+    import sys, time
+    img = brukerimage()
+    start = time.clock()
+    for filename in sys.argv[1:]:
+        img.read(filename)
+        res = img.toPIL16()
+        img.rebin(2, 2)
+        print(filename + (": max=%d, min=%d, mean=%.2e, stddev=%.2e") % (
+            img.getmax(), img.getmin(), img.getmean(), img.getstddev()))
+        print('integrated intensity (%d %d %d %d) =%.3f' % (
+            10, 20, 20, 40, img.integrate_area((10, 20, 20, 40))))
+    end = time.clock()
+    print (end - start)
+
+
+
+if __name__ == '__main__':
+    test()
+
+
diff --git a/fabio/cbfimage.py b/fabio-src/cbfimage.py
similarity index 99%
rename from fabio/cbfimage.py
rename to fabio-src/cbfimage.py
index 839989d..c6a4723 100644
--- a/fabio/cbfimage.py
+++ b/fabio-src/cbfimage.py
@@ -573,12 +573,13 @@ class CIF(dict):
 
 
     def tostring(self, _strFilename=None, linesep=os.linesep):
-        """converts a cif dictionnary to a string according to the CIF syntax
-        @param _strFilename: the name of the filename to be appended in the
-                                header of the CIF file
+        """
+        Converts a cif dictionnary to a string according to the CIF syntax
+        
+        @param _strFilename: the name of the filename to be appended in the header of the CIF file
         @type _strFilename: string
-        @return : a sting that corresponds to the content of the CIF - file.
-        @rtype: string
+        @return: a sting that corresponds to the content of the CIF - file.
+        
         """
 #        sCifText = ""
         lstStrCif = ["# " + i for i in __version__]
diff --git a/fabio/compression.py b/fabio-src/compression.py
similarity index 85%
rename from fabio/compression.py
rename to fabio-src/compression.py
index d585a77..ece07fa 100644
--- a/fabio/compression.py
+++ b/fabio-src/compression.py
@@ -1,10 +1,10 @@
 #!/usr/bin/env python
 # coding: utf8
 """
-Authors: Jérôme Kieffer, ESRF 
+Authors: Jérôme Kieffer, ESRF
          email:jerome.kieffer at esrf.fr
 
-FabIO library containing compression and decompression algorithm for various  
+FabIO library containing compression and decompression algorithm for various
 """
 __author__ = "Jérôme Kieffer"
 __contact__ = "jerome.kieffer at esrf.eu"
@@ -12,7 +12,7 @@ __license__ = "GPLv3+"
 __copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
 
 
-import os, logging, struct, hashlib, base64, StringIO, sys
+import logging, struct, hashlib, base64, StringIO, sys
 if sys.version_info >= (3,):
     str = bytes
 logger = logging.getLogger("compression")
@@ -38,12 +38,15 @@ except ImportError:
 
 def md5sum(blob):
     """
-    returns the md5sum of an object... 
+    returns the md5sum of an object...
     """
     return base64.b64encode(hashlib.md5(blob).digest())
 
 
 def endianness():
+    """
+    Return the native endianness of the system
+    """
     if numpy.little_endian:
         return "LITTLE_ENDIAN"
     else:
@@ -51,6 +54,12 @@ def endianness():
 
 
 def decGzip(stream):
+    """
+
+    Decompress a chunk of data using the gzip algorithm from Python or alternatives if possible
+
+    """
+
     if gzip is None:
         raise ImportError("gzip module is not available")
     fileobj = StringIO.StringIO(stream)
@@ -81,7 +90,9 @@ def decGzip(stream):
 
 def decBzip2(stream):
     """
-    decompress a chunk of data using the bzip2 algorithm
+
+    Decompress a chunk of data using the bzip2 algorithm from Python
+
     """
     if bz2 is None:
         raise ImportError("bz2 module is not available")
@@ -90,7 +101,9 @@ def decBzip2(stream):
 
 def decZlib(stream):
     """
-    decompress a chunk of data using the zlib algorithm
+
+    Decompress a chunk of data using the zlib algorithm from Python
+
     """
     if zlib is None:
         raise ImportError("zlib module is not available")
@@ -100,9 +113,11 @@ def decZlib(stream):
 def decByteOffet_python(stream, size):
     """
     Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)
+
     @param stream: string representing the compressed data
     @param size: the size of the output array (of longInts)
-    @return :NParrays 
+    @return: 1D-ndarray
+
     """
     logger.debug("CBF decompression using Python with Cython loops")
     dataOut = numpy.zeros((size), dtype=numpy.int64)
@@ -134,11 +149,18 @@ def decByteOffet_weave(stream, size):
     """
     Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)
 
-    @return list of NParrays
+    @param stream: string representing the compressed data
+    @param size: the size of the output array (of longInts)
+    @return: 1D-ndarray
+
     """
     logger.debug("CBF decompression using Weave")
-    from scipy import weave
-    from scipy.weave import converters
+    try:
+        from scipy import weave
+        from scipy.weave import converters
+    except ImportError:
+        logger.warning("scipy.weave is not available, falling back on slow Numpy implementations")
+        return decByteOffet_numpy(stream, size)
     dataIn = numpy.fromstring(stream, dtype="uint8")
     n = dataIn.size
     dataOut = numpy.zeros(size, dtype="int64")
@@ -195,10 +217,13 @@ return_val=0;
 
 def decByteOffet_numpy(stream, size=None):
     """
-    Analyze a stream of char with any length of exception: 
+    Analyze a stream of char with any length of exception:
                 2, 4, or 8 bytes integers
 
-    @return list of NParrays
+    @param stream: string representing the compressed data
+    @param size: the size of the output array (of longInts)
+    @return: 1D-ndarray
+
     """
     logger.debug("CBF decompression using Numpy")
     listnpa = []
@@ -223,7 +248,7 @@ def decByteOffet_numpy(stream, size=None):
                 listnpa.append(numpy.fromstring(stream[idx + 3:idx + 7],
                                              dtype="int32"))
                 shift = 7
-        else: #int16 
+        else:  # int16
             listnpa.append(numpy.fromstring(stream[idx + 1:idx + 3],
                                          dtype="int16"))
             shift = 3
@@ -233,10 +258,13 @@ def decByteOffet_numpy(stream, size=None):
 
 def decByteOffet_cython(stream, size=None):
     """
-    Analyze a stream of char with any length of exception: 
+    Analyze a stream of char with any length of exception:
                 2, 4, or 8 bytes integers
 
-    @return list of NParrays
+    @param stream: string representing the compressed data
+    @param size: the size of the output array (of longInts)
+    @return: 1D-ndarray
+
     """
     logger.debug("CBF decompression using cython")
     try:
@@ -250,12 +278,12 @@ def decByteOffet_cython(stream, size=None):
 def compByteOffet_numpy(data):
     """
     Compress a dataset into a string using the byte_offet algorithm
+
     @param data: ndarray
     @return: string/bytes with compressed data
-    
+
     test = numpy.array([0,1,2,127,0,1,2,128,0,1,2,32767,0,1,2,32768,0,1,2,2147483647,0,1,2,2147483648,0,1,2,128,129,130,32767,32768,128,129,130,32768,2147483647,2147483648])
-    
-    
+
     """
     flat = data.astype("int64").ravel()
     delta = numpy.zeros_like(flat)
@@ -300,8 +328,12 @@ def compByteOffet_numpy(data):
 def decTY1(raw_8, raw_16=None, raw_32=None):
     """
     Modified byte offset decompressor used in Oxford Diffraction images
-    @param raw_8,raw_16,raw_32: strings containing raw data with integer of the given size
-    @return numpy.ndarray 
+    
+    @param raw_8:  strings containing raw data with integer 8 bits
+    @param raw_16: strings containing raw data with integer 16 bits
+    @param raw_32: strings containing raw data with integer 32 bits
+    @return: numpy.ndarray
+    
     """
     data = numpy.fromstring(raw_8, dtype="uint8").astype(int)
     data -= 127
@@ -330,9 +362,10 @@ decKM4CCD = decTY1
 def compTY1(data):
     """
     Modified byte offset compressor used in Oxford Diffraction images
-    
-    @param data numpy.ndarray
-    @return  raw_8,raw_16,raw_32: strings containing raw data with integer of the given size 
+
+    @param data: numpy.ndarray with the input data (integers!)
+    @return: 3-tuple of strings: raw_8,raw_16,raw_32 containing raw data with integer of the given size
+
     """
     fdata = data.flatten()
     diff = numpy.zeros_like(fdata)
@@ -351,12 +384,13 @@ def compTY1(data):
     raw_8 = diff.astype("uint8").tostring()
     return  raw_8, raw_16, raw_32
 
-def decPCK(stream, dim1=None, dim2=None, overflowPix=None):
+def decPCK(stream, dim1=None, dim2=None, overflowPix=None, version=None):
     """
     Modified CCP4  pck decompressor used in MAR345 images
-    
-    @param stream: string or file 
-    @return numpy.ndarray (square array) 
+
+    @param stream: string or file
+    @return: numpy.ndarray (square array)
+
     """
 
     try:
@@ -369,15 +403,16 @@ def decPCK(stream, dim1=None, dim2=None, overflowPix=None):
     else:
         raw = str(stream)
 
-    return uncompress_pck(raw, dim1, dim2, overflowPix)
+    return uncompress_pck(raw, dim1, dim2, overflowPix, version)
 
 
 def compPCK(data):
     """
     Modified CCP4  pck compressor used in MAR345 images
-    
-    @param data numpy.ndarray (square array)
-    @return  compressed stream 
+
+    @param data: numpy.ndarray (square array)
+    @return:  compressed stream
+
     """
     try:
         from mar345_IO import compress_pck
diff --git a/fabio/converters.py b/fabio-src/converters.py
similarity index 100%
rename from fabio/converters.py
rename to fabio-src/converters.py
diff --git a/fabio/datIO.py b/fabio-src/datIO.py
similarity index 100%
rename from fabio/datIO.py
rename to fabio-src/datIO.py
diff --git a/fabio/dm3image.py b/fabio-src/dm3image.py
similarity index 100%
rename from fabio/dm3image.py
rename to fabio-src/dm3image.py
diff --git a/fabio/edfimage.py b/fabio-src/edfimage.py
similarity index 92%
rename from fabio/edfimage.py
rename to fabio-src/edfimage.py
index 2070678..6700607 100644
--- a/fabio/edfimage.py
+++ b/fabio-src/edfimage.py
@@ -4,28 +4,29 @@
 
 License: GPLv2+
 
-Authors: Henning O. Sorensen & Erik Knudsen
-         Center for Fundamental Research: Metal Structures in Four Dimensions
-         Risoe National Laboratory
-         Frederiksborgvej 399
-         DK-4000 Roskilde
-         email:erik.knudsen at risoe.dk
-
-        + Jon Wright, ESRF
-
-2011-02-11: Mostly rewritten by Jérôme Kieffer (Jerome.Kieffer at esrf.eu)
-            European Synchrotron Radiation Facility
-            Grenoble (France)
-2012-08-20: laisy read of data in EDF
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright & Jérôme Kieffer:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+
+
 """
 from __future__ import with_statement
 import os, logging, types
 logger = logging.getLogger("edfimage")
 import numpy
 from fabioimage import fabioimage
-from fabioutils import isAscii, toAscii
+from fabioutils import isAscii, toAscii, nice_int
 from compression import decBzip2, decGzip, decZlib
 
+
 BLOCKSIZE = 512
 DATA_TYPES = {  "SignedByte"    :  numpy.int8,
                 "Signed8"       :  numpy.int8,
@@ -53,8 +54,15 @@ DATA_TYPES = {  "SignedByte"    :  numpy.int8,
                 "Double"        :  numpy.float64,
                 "DoubleValue"   :  numpy.float64,
                 "FloatIEEE64"   :  numpy.float64,
-                "DoubleIEEE64"  :  numpy.float64
-                }
+                "DoubleIEEE64"  :  numpy.float64}
+try:
+    DATA_TYPES["FloatIEEE128" ] =  numpy.float128
+    DATA_TYPES["DoubleIEEE128" ] =  numpy.float128
+    DATA_TYPES["QuadrupleValue" ] =  numpy.float128
+
+except AttributeError:
+    # not in your numpy
+    pass
 
 NUMPY_EDF_DTYPE = {"int8"       :"SignedByte",
                    "int16"      :"SignedShort",
@@ -65,7 +73,8 @@ NUMPY_EDF_DTYPE = {"int8"       :"SignedByte",
                    "uint32"     :"UnsignedInteger",
                    "uint64"     :"Unsigned64",
                    "float32"    :"FloatValue",
-                   "float64"    :"DoubleValue"
+                   "float64"    :"DoubleValue",
+                   "float128"   :"QuadrupleValue",
              }
 
 MINIMUM_KEYS = ['HEADERID',
@@ -139,20 +148,21 @@ class Frame(object):
         for line in block.split(';'):
             if '=' in line:
                 key, val = line.split('=' , 1)
-                key = key.strip()
-                self.header[key] = val.strip()
+                # Why would someone put null bytes in a header?
+                key = key.replace("\x00"," ").strip()
+                self.header[key] = val.replace("\x00"," ").strip()
                 self.capsHeader[key.upper()] = key
                 self.header_keys.append(key)
 
         # Compute image size
         if "SIZE" in self.capsHeader:
             try:
-                self.size = int(self.header[self.capsHeader["SIZE"]])
+                self.size = nice_int(self.header[self.capsHeader["SIZE"]])
             except ValueError:
                 logger.warning("Unable to convert to integer : %s %s " % (self.capsHeader["SIZE"], self.header[self.capsHeader["SIZE"]]))
         if "DIM_1" in self.capsHeader:
             try:
-                dim1 = int(self.header[self.capsHeader['DIM_1']])
+                dim1 = nice_int(self.header[self.capsHeader['DIM_1']])
             except ValueError:
                 logger.error("Unable to convert to integer Dim_1: %s %s" % (self.capsHeader["DIM_1"], self.header[self.capsHeader["DIM_1"]]))
             else:
@@ -162,7 +172,7 @@ class Frame(object):
             logger.error("No Dim_1 in headers !!!")
         if "DIM_2" in self.capsHeader:
             try:
-                dim2 = int(self.header[self.capsHeader['DIM_2']])
+                dim2 = nice_int(self.header[self.capsHeader['DIM_2']])
             except ValueError:
                 logger.error("Unable to convert to integer Dim_3: %s %s" % (self.capsHeader["DIM_2"], self.header[self.capsHeader["DIM_2"]]))
             else:
@@ -171,20 +181,24 @@ class Frame(object):
         else:
             logger.error("No Dim_2 in headers !!!")
         iDim = 3
+        # JON: this appears to be for nD images, but we don't treat those
         while iDim is not None:
             strDim = "DIM_%i" % iDim
             if strDim in self.capsHeader:
                 try:
-                    dim3 = int(self.header[self.capsHeader[strDim]])
+                    dim3 = nice_int(self.header[self.capsHeader[strDim]])
                 except ValueError:
                     logger.error("Unable to convert to integer %s: %s %s"
                                   % (strDim, self.capsHeader[strDim], self.header[self.capsHeader[strDim]]))
                     dim3 = None
                     iDim = None
                 else:
-                    calcsize *= dim3
-                    self.dims.append(dim3)
+                    if dim3 > 1:
+                        # Otherwise treat dim3==1 as a 2D image
+                        calcsize *= dim3
+                        self.dims.append(dim3)
                     iDim += 1
+
             else:
                 logger.debug("No Dim_3 -> it is a 2D image")
                 iDim = None
@@ -380,7 +394,7 @@ class Frame(object):
             approxHeaderSize += 7 + len(key) + len(str(header[key]))
         approxHeaderSize = BLOCKSIZE * (approxHeaderSize // BLOCKSIZE + 1)
         header_keys.insert(0, "EDF_HeaderSize")
-        header["EDF_HeaderSize"] = str(BLOCKSIZE * (approxHeaderSize // BLOCKSIZE + 1))
+        header["EDF_HeaderSize"] = "%5s" % (approxHeaderSize)
         header_keys.insert(0, "EDF_BinarySize")
         header["EDF_BinarySize"] = len(data.tostring())
         header_keys.insert(0, "EDF_DataBlockID")
@@ -405,11 +419,11 @@ class Frame(object):
             for  idx, line in enumerate(listHeader[:]):
                 if line.startswith("EDF_HeaderSize"):
                     headerSize = BLOCKSIZE * (preciseSize // BLOCKSIZE + 1)
-                    newline = "EDF_HeaderSize = %s ;\n" % headerSize
+                    newline = "EDF_HeaderSize = %5s ;\n" % headerSize
                     delta = len(newline) - len(line)
                     if (preciseSize // BLOCKSIZE) != ((preciseSize + delta) // BLOCKSIZE):
                         headerSize = BLOCKSIZE * ((preciseSize + delta) // BLOCKSIZE + 1)
-                        newline = "EDF_HeaderSize = %s ;\n" % headerSize
+                        newline = "EDF_HeaderSize = %5s ;\n" % headerSize
                     preciseSize = preciseSize + delta
                     listHeader[idx] = newline
                     break
@@ -473,7 +487,7 @@ class edfimage(fabioimage):
         @param infile: file object open in read mode
         @return: string (or None if no header was found.
         """
-
+        MAX_HEADER_SIZE = BLOCKSIZE * 20
         block = infile.read(BLOCKSIZE)
         if len(block) < BLOCKSIZE:
             logger.debug("Under-short header: only %i bytes in %s" % (len(block), infile.name))
@@ -482,10 +496,21 @@ class edfimage(fabioimage):
             # This does not look like an edf file
             logger.warning("no opening {. Corrupt header of EDF file %s" % infile.name)
             return
+        if "EDF_HeaderSize" in block:
+            start = block.index("EDF_HeaderSize")
+            chunk = block[start:].split("=")[1].strip()
+            try:
+                new_max_header_size = int(chunk.split(";")[0].strip())
+            except Exception:
+                logger.warning("Unable to read header size in %s" % chunk)
+            else:
+                if new_max_header_size > MAX_HEADER_SIZE:
+                    logger.info("Redefining MAX_HEADER_SIZE to %s" % new_max_header_size)
+                    MAX_HEADER_SIZE = new_max_header_size
         while '}' not in block:
             block = block + infile.read(BLOCKSIZE)
-            if len(block) > BLOCKSIZE * 20:
-                logger.warning("Runaway header in EDF file")
+            if len(block) > MAX_HEADER_SIZE:
+                logger.warning("Runaway header in EDF file MAX_HEADER_SIZE: %s \n%s" % (MAX_HEADER_SIZE, block))
                 return
         start = block.find("{") + 1
         end = block.find("}")
@@ -641,11 +666,10 @@ class edfimage(fabioimage):
 
         """
 
-        outfile = self._open(fname, mode="wb")
-        for i, frame in enumerate(self.__frames):
-            frame.iFrame = i
-            outfile.write(frame.getEdfBlock(force_type=force_type, fit2dMode=fit2dMode))
-        outfile.close()
+        with self._open(fname, mode="wb") as outfile:
+            for i, frame in enumerate(self.__frames):
+                frame.iFrame = i
+                outfile.write(frame.getEdfBlock(force_type=force_type, fit2dMode=fit2dMode))
 
 
     def appendFrame(self, frame=None, data=None, header=None):
diff --git a/fabio/fabioimage.py b/fabio-src/fabioimage.py
similarity index 99%
rename from fabio/fabioimage.py
rename to fabio-src/fabioimage.py
index aac7c74..4fa364d 100644
--- a/fabio/fabioimage.py
+++ b/fabio-src/fabioimage.py
@@ -17,7 +17,7 @@ import os, types, logging, sys, tempfile
 logger = logging.getLogger("fabioimage")
 import numpy
 try:
-    import Image
+    from PIL import Image
 except ImportError:
     logger.warning("PIL is not installed ... trying to do without")
     Image = None
@@ -49,7 +49,7 @@ class fabioimage(object):
             self.header = self.checkHeader(header)
         self.header_keys = self.header.keys() # holds key ordering
         if self.data is not None:
-            self.dim1, self.dim2 = self.data.shape
+            self.dim2, self.dim1 = self.data.shape
         else:
             self.dim1 = self.dim2 = 0
         self.bytecode = None     # numpy typecode
@@ -64,6 +64,7 @@ class fabioimage(object):
         self.nframes = 1
         self.currentframe = 0
         self.filename = None
+        self.filenumber = None
 
     @staticmethod
     def checkHeader(header=None):
@@ -82,7 +83,6 @@ class fabioimage(object):
         """
         return data
 
-
     def getclassname(self):
         """
         Retrieves the name of the class
@@ -373,6 +373,8 @@ class fabioimage(object):
         """
         fileObject = None
         self.filename = fname
+        self.filenumber = fabioutils.extract_filenumber(fname)
+
         if hasattr(fname, "read") and hasattr(fname, "write"):
             # It is already something we can use
             return fname
diff --git a/fabio/fabioutils.py b/fabio-src/fabioutils.py
similarity index 57%
rename from fabio/fabioutils.py
rename to fabio-src/fabioutils.py
index 2cb8543..7f18e75 100644
--- a/fabio/fabioutils.py
+++ b/fabio-src/fabioutils.py
@@ -5,10 +5,13 @@
 General purpose utilities functions for fabio
 """
 from __future__ import with_statement
-import re, os, logging, threading
+import re, os, logging, threading, sys
 import StringIO as stringIO
 logger = logging.getLogger("fabioutils")
 from compression import bz2, gzip
+import traceback
+from math import ceil
+
 
 
 FILETYPES = {
@@ -55,19 +58,42 @@ try:
         COMPRESSORS['.gz'] = 'gzip -dc '
     else:
         COMPRESSORS['.gz'] = None
-except:
+except Exception:
     COMPRESSORS['.gz'] = None
 
 try:
     lines = os.popen("bzip2 -h 2>&1").read()
-    # Looking for "usage" 
+    # Looking for "usage"
     if "sage" in lines:
         COMPRESSORS['.bz2'] = 'bzip2 -dc '
     else:
         COMPRESSORS['.bz2'] = None
-except:
+except Exception:
     COMPRESSORS['.bz2'] = None
 
+def deprecated(func):
+    """
+    used to deprecate a function/method: prints a lot of warning messages to enforce the modifaction of the code
+    """
+    def wrapper(*arg, **kw):
+        """
+        decorator that deprecates the use of a function  
+        """
+        logger.warning("%s is Deprecated !!! %s" % (func.func_name, os.linesep.join([""] + traceback.format_stack()[:-1])))
+        return func(*arg, **kw)
+    return wrapper
+
+def pad(mystr, pattern=" ", size=80):
+    """
+    Performs the padding of the string to the right size with the right pattern 
+    """
+    size = int(size)
+    padded_size = int(ceil(float(len(mystr)) / size) * size)
+    if len(pattern) == 1:
+        return mystr.ljust(padded_size, pattern)
+    else:
+        return (mystr + pattern * int(ceil(float(padded_size - len(mystr)) / len(pattern))))[:padded_size]
+
 
 def getnum(name):
     """
@@ -80,17 +106,36 @@ def getnum(name):
     except ValueError:
         return None
 
-class filename_object:
+class FilenameObject(object):
     """
-    The 'meaning' of a filename
+    The 'meaning' of a filename ... 
     """
-    def __init__(self, stem,
+    def __init__(self, stem=None,
             num=None,
             directory=None,
             format=None,
             extension=None,
             postnum=None,
-            digits=4):
+            digits=4,
+            filename=None):
+        """
+        This class can either be instanciated by a set of parameters like  directory, prefix, num, extension, ...   
+        
+        @param stem: the stem is a kind of prefix (str)
+        @param num: image number in the serie (int)
+        @param directory: name of the directory (str)
+        @param format: ??
+        @param extension: 
+        @param postnum: 
+        @param digits: Number of digits used to print num
+        
+        Alternative constructor: 
+        
+        @param filename: fullpath of an image file to be deconstructed into directory, prefix, num, extension, ... 
+        
+        """
+
+
         self.stem = stem
         self.num = num
         self.format = format
@@ -98,6 +143,10 @@ class filename_object:
         self.digits = digits
         self.postnum = postnum
         self.directory = directory
+        self.compressed = None
+        if filename is not None:
+            self.deconstruct_filename(filename)
+
 
     def str(self):
         """ Return a string representation """
@@ -111,7 +160,7 @@ class filename_object:
                     self.postnum ,
                     self.digits ,
                     self.directory ] ])
-
+    __repr__ = str
 
     def tostring(self):
         """
@@ -130,6 +179,76 @@ class filename_object:
         return name
 
 
+    def deconstruct_filename(self, filename):
+        """
+        Break up a filename to get image type and number
+        """
+        direc, name = os.path.split(filename)
+        direc = direc or None
+        parts = name.split(".")
+        compressed = False
+        stem = parts[0]
+        extn = ""
+        postnum = ""
+        ndigit = 4
+        num = None
+        typ = None
+        if parts[-1] in ["gz", "bz2"]:
+            extn = "." + parts[-1]
+            parts = parts[:-1]
+            compressed = True
+        if parts[-1] in FILETYPES.keys():
+            typ = FILETYPES[parts[-1]]
+            extn = "." + parts[-1] + extn
+            try:
+                stem, numstring, postnum = numstem(".".join(parts[:-1]))
+                num = int(numstring)
+                ndigit = len(numstring)
+            except Exception, err:
+                # There is no number - hence make num be None, not 0
+                logger.debug("l176: %s" % err)
+                num = None
+                stem = "".join(parts[:-1])
+        else:
+            # Probably two type left
+            if len(parts) == 1:
+                # Probably GE format stem_numb
+                parts2 = parts[0].split("_")
+                if parts2[-1].isdigit():
+                    num = int(parts2[-1])
+                    ndigit = len(parts2[-1])
+                    typ = ['GE']
+                    stem = "_".join(parts2[:-1]) + "_"
+            else:
+                try:
+                    num = int(parts[-1])
+                    ndigit = len(parts[-1])
+                    typ = ['bruker']
+                    stem = ".".join(parts[:-1]) + "."
+                except Exception, err:
+                    logger.debug("l196: %s" % err)
+                    typ = None
+                    extn = "." + parts[-1] + extn
+                    numstring = ""
+                    try:
+                        stem , numstring, postnum = numstem(".".join(parts[:-1]))
+                    except Exception, err:
+                        logger.debug("l202: %s" % err)
+                        raise
+                    if numstring.isdigit():
+                        num = int(numstring)
+                        ndigit = len(numstring)
+                #            raise Exception("Cannot decode "+filename)
+
+        self.stem = stem
+        self.num = num
+        self.directory = direc
+        self.format = typ
+        self.extension = extn
+        self.postnum = postnum
+        self.digits = ndigit
+        self.compressed = compressed
+
 def numstem(name):
     """ cant see how to do without reversing strings
     Match 1 or more digits going backwards from the end of the string
@@ -140,112 +259,56 @@ def numstem(name):
         res = reg.match(name).groups()
         #res = reg.match(name[::-1]).groups()
         #return [ r[::-1] for r in res[::-1]]
-        if len(res[0]) == len(res[1]) == 0: # Hack for file without number 
+        if len(res[0]) == len(res[1]) == 0: # Hack for file without number
             return [res[2], '', '']
         return [ r for r in res]
     except AttributeError: # no digits found
         return [name, "", ""]
 
+#@deprecated
 def deconstruct_filename(filename):
     """
-    Break up a filename to get image type and number
+    Function for backward compatibility.
+    Deprecated
     """
-    direc , name = os.path.split(filename)
-    if len(direc) == 0:
-        direc = None
-    parts = os.path.split(name)[-1].split(".")
-    # loop back from end
-    compressed = False
-    extn = ""
-    postnum = ""
-    ndigit = 4
-    if parts[-1] in ["gz", "bz2"]:
-        extn = "." + parts[-1]
-        parts = parts[:-1]
-        compressed = True
-    if parts[-1] in FILETYPES.keys():
-        typ = FILETYPES[parts[-1]]
-        extn = "." + parts[-1] + extn
-        try:
-            stem , numstring, postnum = numstem(".".join(parts[:-1]))
-            num = int(numstring)
-            ndigit = len(numstring)
-        except:
-            # There is no number - hence make num be None, not 0
-            num = None
-            stem = "".join(parts[:-1])
-    else:
-        # Probably two type left
-        if len(parts) == 1:
-            # Probably GE format stem_numb
-            parts2 = parts[0].split("_")
-            try:
-                num = int(parts2[-1])
-                ndigit = len(parts2[-1])
-                typ = ['GE']
-                stem = "_".join(parts2[:-1]) + "_"
-            except:
-                pass
-        else:
-            try:
-                num = int(parts[-1])
-                ndigit = len(parts[-1])
-                typ = ['bruker']
-                stem = ".".join(parts[:-1]) + "."
-            except:
-                typ = None
-                extn = "." + parts[-1] + extn
-                try:
-                    stem , numstring, postnum = numstem(".".join(parts[:-1]))
-                    num = int(numstring)
-                    ndigit = len(numstring)
-                except:
-                    raise
-            #            raise Exception("Cannot decode "+filename)
-    obj = filename_object(stem,
-            num=num,
-            directory=direc,
-            format=typ,
-            extension=extn,
-            postnum=postnum,
-            digits=ndigit)
-    return obj
-
-def construct_filename(filename, frame):
+    return FilenameObject(filename=filename)
+
+def construct_filename(filename, frame=None):
     "Try to construct the filename for a given frame"
-    fo = deconstruct_filename(filename)
-    fo.num = frame
-    return fo.tostring()
+    fobj = FilenameObject(filename=filename)
+    if frame is not None:
+        fobj.num = frame
+    return fobj.tostring()
 
 def next_filename(name, padding=True):
     """ increment number """
-    obj = deconstruct_filename(name)
-    obj.num += 1
+    fobj = FilenameObject(filename=name)
+    fobj.num += 1
     if not padding:
-        obj.digits = 0
-    return obj.tostring()
+        fobj.digits = 0
+    return fobj.tostring()
 
 def previous_filename(name, padding=True):
     """ decrement number """
-    obj = deconstruct_filename(name)
-    obj.num -= 1
+    fobj = FilenameObject(filename=name)
+    fobj.num -= 1
     if not padding:
-        obj.digits = 0
-    return obj.tostring()
+        fobj.digits = 0
+    return fobj.tostring()
 
 def jump_filename(name, num, padding=True):
     """ jump to number """
-    obj = deconstruct_filename(name)
-    obj.num = num
+    fobj = FilenameObject(filename=name)
+    fobj.num = num
     if not padding:
-        obj.digits = 0
-    return obj.tostring()
+        fobj.digits = 0
+    return fobj.tostring()
 
 
 def extract_filenumber(name):
     """ extract file number """
-    obj = deconstruct_filename(name)
-    return obj.num
+    fobj = FilenameObject(filename=name)
+    return fobj.num
 
 def isAscii(name, listExcluded=None):
     """
@@ -284,6 +347,18 @@ def toAscii(name, excluded=None):
     out = [i for i in str(name) if i in ascii]
     return "".join(out)
 
+def nice_int(s):
+    """ 
+    Workaround that int('1.0') raises an exception 
+    
+    @param s: string to be converted to integer
+    """
+    try:
+        return int(s)
+    except ValueError:
+        return int(float(s))
+
+
 class StringIO(stringIO.StringIO):
     """
     just an interface providing the name and mode property to a StringIO
@@ -298,48 +373,21 @@ class StringIO(stringIO.StringIO):
         else:
             self.name = fname
         self.mode = mode
-        self.lock = threading.Lock()
-        self._size = None
+        self.lock = threading.Semaphore()
+        self.__size = None
+
     def getSize(self):
-        if self._size is None:
+        if self.__size is None:
             logger.debug("Measuring size of %s" % self.name)
             with self.lock:
                 pos = self.tell()
                 self.seek(0, os.SEEK_END)
-                self._size = self.tell()
+                self.__size = self.tell()
                 self.seek(pos)
-        return self._size
-    size = property(getSize)
-
-
-#    def seek(self, offset, whence=os.SEEK_SET):
-#        """
-#        Move to new file position.
-#
-#        Argument offset is a byte count.  Optional argument whence defaults to
-#        0 (offset from start of file, offset should be >= 0); other values are 1
-#        (move relative to current position, positive or negative), and 2 (move
-#        relative to end of file, usually negative, although many platforms allow
-#        seeking beyond the end of a file).  If the file is opened in text mode,
-#        only offsets returned by tell() are legal.  Use of other offsets causes
-#        undefined behavior.
-#        
-#        This is a wrapper for seek to ensure compatibility with old MacOSX python 2.5
-#        """
-#        try:
-#                StringIO.StringIO.seek(self, offset, whence)
-#        except TypeError: #JK20110407 bugfix specific to MacOSX
-#                if whence == os.SEEK_SET:
-#                    StringIO.StringIO.seek(self, offset)
-#                elif whence == os.SEEK_CUR:
-#                    StringIO.StringIO.seek(self, offset + self.tell())
-#                elif whence == os.SEEK_END:
-#NEED LOCKING
-#                    StringIO.StringIO.seek(self, -1)
-#                    StringIO.StringIO.seek(self, offset + self.tell())
-
-
-
+        return self.__size
+    def setSize(self, size):
+        self.__size = size
+    size = property(getSize, setSize)
 
 class File(file):
     """
@@ -365,18 +413,28 @@ class File(file):
         'U' cannot be combined with 'w' or '+' mode.
         """
         file.__init__(self, name, mode, buffering)
-        self.lock = threading.Lock()
-        self._size = None
+        self.lock = threading.Semaphore()
+        self.__size = None
     def getSize(self):
-        if self._size is None:
+        if self.__size is None:
             logger.debug("Measuring size of %s" % self.name)
             with self.lock:
                 pos = self.tell()
                 self.seek(0, os.SEEK_END)
-                self._size = self.tell()
+                self.__size = self.tell()
                 self.seek(pos)
-        return self._size
-    size = property(getSize)
+        return self.__size
+    def setSize(self, size):
+        self.__size = size
+    def __exit__(self, *args, **kwargs):
+        """
+        Close the file.
+        """
+        return file.close(self)
+    def __enter__(self, *args, **kwargs):
+        return self
+    size = property(getSize, setSize)
+
 
 class UnknownCompressedFile(File):
     """
@@ -422,44 +480,54 @@ else:
             and 9 is slowest and produces the most compression.  The default is 9.
             """
             gzip.GzipFile.__init__(self, filename, mode, compresslevel, fileobj)
-            self.lock = threading.Lock()
-            self._size = None
-            self.closed = False
-        def getSize(self):
-            if self._size is None:
-                logger.debug("Measuring size of %s" % self.name)
-                with self.lock:
-                    pos = self.tell()
-                    all = self.read()
-                    self._size = self.tell()
-                    self.seek(pos)
-            return self._size
-        size = property(getSize)
-
-        def seek(self, offset, whence=os.SEEK_SET):
-            """
-            Move to new file position.
-    
-            Argument offset is a byte count.  Optional argument whence defaults to
-            0 (offset from start of file, offset should be >= 0); other values are 1
-            (move relative to current position, positive or negative), and 2 (move
-            relative to end of file, usually negative, although many platforms allow
-            seeking beyond the end of a file).  If the file is opened in text mode,
-            only offsets returned by tell() are legal.  Use of other offsets causes
-            undefined behavior.
-            
-            This is a wrapper for seek to ensure compatibility with old python 2.5
-            """
-            if whence == os.SEEK_SET:
-                gzip.GzipFile.seek(self, offset)
-            elif whence == os.SEEK_CUR:
+            self.lock = threading.Semaphore()
+            self.__size = None
+
+
+        if sys.version_info < (2, 7):
+            def getSize(self):
+                if self.__size is None:
+                    logger.debug("Measuring size of %s" % self.name)
+                    with open(self.filename, "rb") as f:
+                        f.seek(-4)
+                        self.__size = numpy.fromstring(f.read(4), dtype=numpy.uint32)
+                return self.__size
+            def setSize(self, value):
+                self.__size = value
+            size = property(getSize, setSize)
+            @property
+            def closed(self):
+                return self.fileobj is None
+
+            def seek(self, offset, whence=os.SEEK_SET):
+                """
+                Move to new file position.
+        
+                Argument offset is a byte count.  Optional argument whence defaults to
+                0 (offset from start of file, offset should be >= 0); other values are 1
+                (move relative to current position, positive or negative), and 2 (move
+                relative to end of file, usually negative, although many platforms allow
+                seeking beyond the end of a file).  If the file is opened in text mode,
+                only offsets returned by tell() are legal.  Use of other offsets causes
+                undefined behavior.
+                
+                This is a wrapper for seek to ensure compatibility with old python 2.5
+                """
+                if whence == os.SEEK_SET:
+                    gzip.GzipFile.seek(self, offset)
+                elif whence == os.SEEK_CUR:
                     gzip.GzipFile.seek(self, offset + self.tell())
-            elif whence == os.SEEK_END:
+                elif whence == os.SEEK_END:
                     gzip.GzipFile.seek(self, -1)
                     gzip.GzipFile.seek(self, offset + self.tell())
-        def close(self):
-            self.closed = True
-            gzip.GzipFile.close(self)
+            def __enter__(self, *args, **kwargs):
+                return self
+            def __exit__(self, *args, **kwargs):
+                """
+                Close the file.
+                """
+                return gzip.GzipFile.close(self)
+
 if bz2 is None:
     BZ2File = UnknownCompressedFile
 else:
@@ -483,15 +551,24 @@ else:
             newlines are available only when reading.
             """
             bz2.BZ2File.__init__(self, name , mode, buffering, compresslevel)
-            self.lock = threading.Lock()
-            self._size = None
+            self.lock = threading.Semaphore()
+            self.__size = None
         def getSize(self):
-            if self._size is None:
+            if self.__size is None:
                 logger.debug("Measuring size of %s" % self.name)
                 with self.lock:
                     pos = self.tell()
                     all = self.read()
-                    self._size = self.tell()
+                    self.__size = self.tell()
                     self.seek(pos)
-            return self._size
-        size = property(getSize)
+            return self.__size
+        def setSize(self, value):
+            self.__size = value
+        size = property(getSize, setSize)
+        def __exit__(self, *args, **kwargs):
+                """
+                Close the file.
+                """
+                return bz2.BZ2File.close(self)
+        def __enter__(self, *args, **kwargs):
+            return self
diff --git a/fabio/file_series.py b/fabio-src/file_series.py
similarity index 64%
rename from fabio/file_series.py
rename to fabio-src/file_series.py
index b2bca1f..625ce72 100644
--- a/fabio/file_series.py
+++ b/fabio-src/file_series.py
@@ -2,20 +2,23 @@
 
 """
 
-Authors: Henning O. Sorensen & Erik Knudsen
-         Center for Fundamental Research: Metal Structures in Four Dimensions
-         Risoe National Laboratory
-         Frederiksborgvej 399
-         DK-4000 Roskilde
-         email:erik.knudsen at risoe.dk
-
-        + Jon Wright, ESRF
+Authors:
+........
+
+* Henning O. Sorensen & Erik Knudsen
+  Center for Fundamental Research: Metal Structures in Four Dimensions
+  Risoe National Laboratory
+  Frederiksborgvej 399
+  DK-4000 Roskilde
+  email:erik.knudsen at risoe.dk
+* Jon Wright, ESRF
+
 """
 import logging, sys
 logger = logging.getLogger("fileseries")
 import traceback as pytraceback
 
-from fabioutils import filename_object, next_filename
+from fabioutils import FilenameObject, next_filename
 
 from openimage import openimage
 
@@ -24,6 +27,7 @@ def new_file_series0(first_object, first=None, last=None, step=1):
     """
     Created from a fabio image
     first and last are file numbers
+
     """
     im = first_object
     nimages = 0
@@ -62,26 +66,31 @@ def new_file_series(first_object, nimages=0, step=1, traceback=False):
     A generator function that creates a file series starting from a a fabioimage.
     Iterates through all images in a file (if more than 1), then proceeds to
     the next file as determined by fabio.next_filename.
-    
-    first_object: the starting fabioimage, which will be the first one yielded
-      in the sequence
-    nimages:  the maximum number of images to consider
-    step: step size, will yield the first and every step'th image until nimages
-      is reached.  (e.g. nimages = 5, step = 2 will yield 3 images (0, 2, 4) 
-    traceback: if True causes it to print a traceback in the event of an
-      exception (missing image, etc.).  Otherwise the calling routine can handle
-      the exception as it chooses 
-    yields: the next fabioimage in the series.
-      In the event there is an exception, it yields the sys.exec_info for the
-      exception instead.  sys.exec_info is a tuple:
+
+    @param first_object: the starting fabioimage, which will be the first one yielded
+        in the sequence
+    @param nimages:  the maximum number of images to consider
+        step: step size, will yield the first and every step'th image until nimages
+        is reached.  (e.g. nimages = 5, step = 2 will yield 3 images (0, 2, 4)
+    @param traceback: if True causes it to print a traceback in the event of an
+        exception (missing image, etc.).  Otherwise the calling routine can handle
+        the exception as it chooses
+    @param yields: the next fabioimage in the series.
+        In the event there is an exception, it yields the sys.exec_info for the
+        exception instead.  sys.exec_info is a tuple:
         ( exceptionType, exceptionValue, exceptionTraceback )
-      from which all the exception information can be obtained.
-      Suggested usage:
+        from which all the exception information can be obtained.
+
+    Suggested usage:
+    
+    ::
+    
         for obj in new_file_series( ... ):
-          if not isinstance( obj, fabio.fabioimage.fabioimage ):
+          if not isinstance(obj, fabio.fabioimage.fabioimage ):
             # deal with errors like missing images, non readable files, etc
             # e.g.
             traceback.print_exception(obj[0], obj[1], obj[2])
+
     """
     im = first_object
     nprocessed = 0
@@ -116,7 +125,7 @@ def new_file_series(first_object, nimages=0, step=1, traceback=False):
 
 class file_series(list):
     """
-    represents a series of files to iterate
+    Represents a series of files to iterate
     has an idea of a current position to do next and prev
 
     You also get from the list python superclass:
@@ -131,7 +140,10 @@ class file_series(list):
     """
     def __init__(self, list_of_strings):
         """
-        arg should be a list of strings which are filenames
+        Constructor:
+
+        @param list_of_strings: arg should be a list of strings which are filenames
+
         """
         super(file_series, self).__init__(list_of_strings)
         # track current position in list
@@ -141,89 +153,168 @@ class file_series(list):
     # methods which return a filename
 
     def first(self):
-        """ first image in series """
+        """
+        First image in series
+
+        """
         return self[0]
 
     def last(self):
-        """ last in series """
+        """
+        Last in series
+
+        """
         return self[-1]
 
     def previous(self):
-        """ prev in a sequence"""
+        """
+        Prev in a sequence
+
+        """
         self._current -= 1
         return self[self._current]
 
     def current(self):
-        """ current position in a sequence """
+        """Current position in a sequence
+
+        """
         return self[self._current]
 
     def next(self):
-        """ next in a sequence """
+        """
+        Next in a sequence
+
+        """
         self._current += 1
         return self[self._current]
 
     def jump(self, num):
-        """ goto a position in sequence """
+        """
+        Goto a position in sequence
+
+        """
         assert num < len(self) and num > 0, "num out of range"
         self._current = num
         return self[self._current]
 
     def len(self):
-        """ number of files"""
+        """
+        Number of files
+
+        """
         return len(self)
 
 
     # Methods which return a fabioimage
 
     def first_image(self):
-        """ first image in a sequence """
+        """
+        First image in a sequence
+
+        @return: fabioimage
+
+        """
         return openimage(self.first())
 
     def last_image(self):
-        """ last image in a sequence """
+        """
+        Last image in a sequence
+
+        @return: fabioimage
+
+        """
         return openimage(self.last())
 
     def next_image(self):
-        """ Return the next image """
+        """
+        Return the next image
+
+        @return: fabioimage
+
+        """
         return openimage(self.next())
 
     def previous_image(self):
-        """ Return the previous image """
+        """
+        Return the previous image
+
+        @return: fabioimage
+
+        """
         return openimage(self.previous())
 
     def jump_image(self, num):
-        """ jump to and read image """
+        """
+        Jump to and read image
+
+        @return: fabioimage
+
+        """
         return openimage(self.jump(num))
 
     def current_image(self):
-        """ current image in sequence """
+        """
+        Current image in sequence
+
+        @return: fabioimage
+
+        """
         return openimage(self.current())
 
     # methods which return a file_object
 
     def first_object(self):
-        """ first image in a sequence """
-        return filename_object(self.first())
+        """
+        First image in a sequence
+
+        @return: file_object
+        """
+        return FilenameObject(self.first())
 
     def last_object(self):
-        """ last image in a sequence """
-        return filename_object(self.last())
+        """
+        Last image in a sequence
+
+        @return: file_object
+
+        """
+        return FilenameObject(self.last())
 
     def next_object(self):
-        """ Return the next image """
-        return filename_object(self.next())
+        """
+        Return the next image
+
+        @return: file_object
+
+        """
+        return FilenameObject(self.next())
 
     def previous_object(self):
-        """ Return the previous image """
-        return filename_object(self.previous())
+        """
+        Return the previous image
+
+        @return: file_object
+
+        """
+        return FilenameObject(self.previous())
 
     def jump_object(self, num):
-        """ jump to and read image """
-        return filename_object(self.jump(num))
+        """
+        Jump to and read image
+
+        @return: file_object
+
+        """
+        return FilenameObject(self.jump(num))
 
     def current_object(self):
-        """ current image in sequence """
-        return filename_object(self.current())
+        """
+        Current image in sequence
+
+        @return: file_object
+
+        """
+        return FilenameObject(self.current())
 
 
 
@@ -237,10 +328,12 @@ class numbered_file_series(file_series):
     def __init__(self, stem, first, last, extension,
                  digits=4, padding='Y', step=1):
         """
-        stem - first part of the name
-        step - in case of every nth file
-        padding - possibility for specifying that numbers are not padded
-                  with zeroes up to digits
+        Constructor
+
+        @param stem: first part of the name
+        @param step: in case of every nth file
+        @param padding: possibility for specifying that numbers are not padded with zeroes up to digits
+
         """
         if padding == 'Y':
             fmt = "%s%0" + str(digits) + "d%s"
@@ -257,7 +350,7 @@ class filename_series:
     """ Much like the others, but created from a string filename """
     def __init__(self, filename):
         """ create from a filename (String)"""
-        self.obj = filename_object(filename)
+        self.obj = FilenameObject(filename)
 
     def next(self):
         """ increment number """
@@ -293,18 +386,18 @@ class filename_series:
         return openimage(self.jump(num))
     # object methods
     def next_object(self):
-        """ returns the next filename as a fabio.filename_object"""
+        """ returns the next filename as a fabio.FilenameObject"""
         self.obj.num += 1
         return self.obj
     def previous_object(self):
-        """ returns the previous filename as a fabio.filename_object"""
+        """ returns the previous filename as a fabio.FilenameObject"""
         self.obj.num -= 1
         return self.obj
     def current_object(self):
-        """ returns the current filename as a fabio.filename_object"""
+        """ returns the current filename as a fabio.FilenameObject"""
         return self.obj
     def jump_object(self, num):
-        """ returns the filename num as a fabio.filename_object"""
+        """ returns the filename num as a fabio.FilenameObject"""
         self.obj.num = num
         return self.obj
 
diff --git a/fabio/fit2dmaskimage.py b/fabio-src/fit2dmaskimage.py
similarity index 100%
rename from fabio/fit2dmaskimage.py
rename to fabio-src/fit2dmaskimage.py
diff --git a/fabio/fit2dspreadsheetimage.py b/fabio-src/fit2dspreadsheetimage.py
similarity index 100%
rename from fabio/fit2dspreadsheetimage.py
rename to fabio-src/fit2dspreadsheetimage.py
diff --git a/fabio/kcdimage.py b/fabio-src/kcdimage.py
similarity index 100%
rename from fabio/kcdimage.py
rename to fabio-src/kcdimage.py
diff --git a/fabio/mar345image.py b/fabio-src/mar345image.py
similarity index 94%
rename from fabio/mar345image.py
rename to fabio-src/mar345image.py
index 48e5a2f..8d0c2d7 100644
--- a/fabio/mar345image.py
+++ b/fabio-src/mar345image.py
@@ -3,22 +3,28 @@
 from __future__ import with_statement
 __doc__ = """
 
-Authors: Henning O. Sorensen & Erik Knudsen
-         Center for Fundamental Research: Metal Structures in Four Dimensions
-         Risoe National Laboratory
-         Frederiksborgvej 399
-         DK-4000 Roskilde
-         email:erik.knudsen at risoe.dk
-          +
-         Jon Wright, Jerome Kieffer, Gael Goret ESRF, France
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright, Jérôme Kieffer & Gaël Goret:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+
+         
 """
 
 from fabioimage import fabioimage
-import numpy, struct, time, sys
+import numpy, struct, time, sys, traceback
 import logging
 logger = logging.getLogger("mar345image")
 from compression import compPCK, decPCK
 
+
 class mar345image(fabioimage):
     _need_a_real_file = True
     def __init__(self, *args, **kwargs):
@@ -32,8 +38,9 @@ class mar345image(fabioimage):
         f = self._open(self.filename, "rb")
         self._readheader(f)
         if 'compressed' in self.header['Format']:
+#            self.data = decPCK(f, self.dim1, self.dim2, self.numhigh, version=1)
             try:
-                self.data = decPCK(f, self.dim1, self.dim2, self.numhigh)
+                self.data = decPCK(f, self.dim1, self.dim2)
             except Exception, error:
                 logger.error('%s. importing the mar345_io backend: generate an empty 1x1 picture' % error)
                 f.close()
@@ -147,11 +154,14 @@ class mar345image(fabioimage):
     def write(self, fname):
         """Try to write mar345 file. This is still in beta version.
         It uses CCP4 (LGPL) PCK1 algo from JPA"""
+        headers = self._writeheader()
+        hotpixels = self._high_intensity_pixel_records()
+        compressed_stream = compPCK(self.data)
         try:
             outfile = self._open(fname, mode="wb")
-            outfile.write(self._writeheader())
-            outfile.write(self._high_intensity_pixel_records())
-            outfile.write(compPCK(self.data))
+            outfile.write(headers)
+            outfile.write(hotpixels)
+            outfile.write(compressed_stream)
             outfile.close()
         except Exception, error:
             logger.error("Error in writing file %s: %s" % (fname, error))
@@ -164,7 +174,7 @@ class mar345image(fabioimage):
         try:
             version = sys.modules["fabio"].version
         except (KeyError, AttributeError):
-            version = "0.0.9"
+            version = "0.1.1"
         lnsep = len(linesep)
 
         self.header["HIGH"] = str(self.nb_overflow_pixels())
diff --git a/fabio/marccdimage.py b/fabio-src/marccdimage.py
similarity index 97%
rename from fabio/marccdimage.py
rename to fabio-src/marccdimage.py
index 228ec01..d726dfb 100644
--- a/fabio/marccdimage.py
+++ b/fabio-src/marccdimage.py
@@ -1,14 +1,18 @@
 #!/usr/bin/env python
 """
 
-Authors: Henning O. Sorensen & Erik Knudsen
-         Center for Fundamental Research: Metal Structures in Four Dimensions
-         Risoe National Laboratory
-         Frederiksborgvej 399
-         DK-4000 Roskilde
-         email:henning.sorensen at risoe.dk
-
-         + (mods for fabio) Jon Wright, ESRF
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+         
 marccdimage can read MarCCD and MarMosaic images including header info.
 
 JPW : Use a parser in case of typos (sorry?)
diff --git a/fabio/openimage.py b/fabio-src/openimage.py
similarity index 97%
rename from fabio/openimage.py
rename to fabio-src/openimage.py
index 17d3f62..cd9fec7 100644
--- a/fabio/openimage.py
+++ b/fabio-src/openimage.py
@@ -12,7 +12,7 @@ mods for fabio by JPW
 """
 import sys, logging
 logger = logging.getLogger("openimage")
-from fabioutils  import deconstruct_filename, filename_object
+from fabioutils  import FilenameObject
 from fabioimage import fabioimage
 import edfimage
 import adscimage
@@ -80,7 +80,7 @@ def do_magic(byts):
 
 def openimage(filename, frame=None):
     """ Try to open an image """
-    if isinstance(filename, filename_object):
+    if isinstance(filename, FilenameObject):
         try:
             logger.debug("Attempting to open %s" % (filename.tostring()))
             obj = _openimage(filename.tostring())
@@ -128,7 +128,7 @@ def _openimage(filename):
         raise error
     except:
         try:
-            file_obj = deconstruct_filename(filename)
+            file_obj = FilenameObject(filename=filename)
             if file_obj == None:
                 raise Exception("Unable to deconstruct filename")
             if (file_obj.format is not None) and\
diff --git a/fabio/pilatusimage.py b/fabio-src/pilatusimage.py
similarity index 73%
rename from fabio/pilatusimage.py
rename to fabio-src/pilatusimage.py
index c31d292..0953bc1 100644
--- a/fabio/pilatusimage.py
+++ b/fabio-src/pilatusimage.py
@@ -2,23 +2,23 @@
 #coding: utf8
 """
 
-Authors: Henning O. Sorensen & Erik Knudsen
-         Center for Fundamental Research: Metal Structures in Four Dimensions
-         Risoe National Laboratory
-         Frederiksborgvej 399
-         DK-4000 Roskilde
-         email:henning.sorensen at risoe.dk
-
-         + (mods for fabio) Jon Wright, ESRF
-marccdimage can read MarCCD and MarMosaic images including header info.
-
-JPW : Use a parser in case of typos (sorry?)
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jon Wright:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
 
 """
 
 
-# Base this on the tifimage (as Pilatus is tiff with a 
-# tiff header 
+# Base this on the tifimage (as Pilatus is tiff with a
+# tiff header
 
 from fabio.tifimage import tifimage
 
@@ -38,7 +38,7 @@ class pilatusimage(tifimage):
 
 #        infile = open(infile)
         hstr = infile.read(4096)
-        # well not very pretty - but seems to find start of 
+        # well not very pretty - but seems to find start of
         # header information
         if (hstr.find('# ') == -1):
             return self.header
diff --git a/fabio/pnmimage.py b/fabio-src/pnmimage.py
similarity index 100%
rename from fabio/pnmimage.py
rename to fabio-src/pnmimage.py
diff --git a/fabio/readbytestream.py b/fabio-src/readbytestream.py
similarity index 100%
rename from fabio/readbytestream.py
rename to fabio-src/readbytestream.py
diff --git a/fabio-src/templateimage.py b/fabio-src/templateimage.py
new file mode 100644
index 0000000..c6dda06
--- /dev/null
+++ b/fabio-src/templateimage.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env python
+#coding: utf8
+#This is a template for adding new file formats to FabIO
+
+# We hope it will be relatively easy to add new file formats to fabio in the future. The basic idea is the following:
+# 1) inherit from fabioimage overriding the methods _readheader, read and optionally write.
+#    Name your new module XXXimage where XXX means something (eg tifimage).
+#
+# 2) readheader fills in a dictionary of "name":"value" pairs in self.header.
+#    No one expects to find anything much in there.
+#
+# 3) read fills in self.data with a numpy array holding the image.
+#    Some redundant info which also appears are self.dim1 and self.dim2: the image dimensions,
+#    self.bpp is the bytes per pixel and self.bytecode is the numpy.dtype.type of the data.
+#
+# 4) The member variables "_need_a_seek_to_read" and "_need_a_real_file" are there in case you have
+#    trouble with the transparent handling of bz2 and gz files.
+#
+# 5) Register the file type (extension naming) in fabioutils.FILETYPES
+#
+# 6) Add your new module as an import into fabio.openimage
+#
+# 7) Fill out the magic numbers for your format in fabio.openimage if you know them
+#    (the characteristic first few bytes in the file)
+#
+# 8) Upload a testimage to the file release system and create a unittest testcase
+#    which opens an example of your new format, confirming the image has actually
+#    been read in successfully (eg check the mean, max, min and esd are all correct,
+#    perhaps orientation too)
+#
+# 9) Run pylint on your code and then please go clean it up. Have a go at mine while you are at it.
+#
+#10) Bask in the warm glow of appreciation when someone unexpectedly learns they don't need to convert
+#    their data into another format
+
+# Get ready for python3:
+from __future__ import with_statement, print_function
+__doc__ = """
+Template for FabIO
+
+Authors: Who are you ?
+email:  Where can you be reached ?
+
+"""
+__authors__ = ["author"]
+__contact__ = "name at institut.org"
+__license__ = "GPLv3+"
+__copyright__ = "Institut"
+__version__ = "17 Oct 2012"
+
+import numpy, logging
+from fabioimage import fabioimage
+logger = logging.getLogger("templateimage")
+
+
+class templateimage(fabioimage):
+    """
+    FabIO image class for Images for XXX detector
+    """
+    def __init__(self, *arg, **kwargs):
+        """
+        Generic constructor
+        """
+        fabioimage.__init__(self, *arg, **kwargs)
+        self.data = None
+        self.header = {}
+        self.dim1 = self.dim2 = 0
+        self.m = self.maxval = self.stddev = self.minval = None
+        self.header_keys = self.header.keys()
+        self.bytecode = None
+
+    def _readheader(self, infile):
+        """
+        Read and decode the header of an image:
+        
+        @param infile: Opened python file (can be stringIO or bipped file)  
+        """
+        #list of header key to keep the order (when writing)
+        self.header = {}
+        self.header_keys = []
+
+
+    def read(self, fname, frame=None):
+        """
+        try to read image 
+        @param fname: name of the file
+        @param frame: 
+        """
+
+        self.resetvals()
+        infile = self._open(fname)
+        self._readheader(infile)
+
+        #read the image data
+        self.data = numpy.zeros((self.dim2, self.dim1), dtype=self.bytecode)
+        return self
diff --git a/fabio/tifimage.py b/fabio-src/tifimage.py
similarity index 95%
rename from fabio/tifimage.py
rename to fabio-src/tifimage.py
index 8369f05..4205076 100644
--- a/fabio/tifimage.py
+++ b/fabio-src/tifimage.py
@@ -2,26 +2,32 @@
 #-*- coding: utf8 -*-
 """
 FabIO class for dealing with TIFF images. 
-In facts wraps TiffIO from Armando (available in PyMca) or falls back to PIL
+In facts wraps TiffIO from V. Armando Solé (available in PyMca) or falls back to PIL
 
-Authors: Jérôme Kieffer (jerome.kieffer at esrf.fr)
-         Henning O. Sorensen & Erik Knudsen
-             Center for Fundamental Research: Metal Structures in Four Dimensions
-             Risoe National Laboratory
-             Frederiksborgvej 399
-             DK-4000 Roskilde
-             email:henning.sorensen at risoe.dk    
+Authors:
+........
+* Henning O. Sorensen & Erik Knudsen:
+  Center for Fundamental Research: Metal Structures in Four Dimensions;
+  Risoe National Laboratory;
+  Frederiksborgvej 399;
+  DK-4000 Roskilde;
+  email:erik.knudsen at risoe.dk
+* Jérôme Kieffer:
+  European Synchrotron Radiation Facility;
+  Grenoble (France)
+   
 License: GPLv3+        
 """
+
 __authors__ = ["Jérôme Kieffer", "Henning O. Sorensen", "Erik Knudsen"]
 __date__ = "11/07/2011"
 __license__ = "GPLv3+"
 __copyright__ = "ESRF, Grenoble & Risoe National Laboratory"
-
+__status__ = "stable"
 import time, logging, struct
 logger = logging.getLogger("tifimage")
 try:
-    import Image
+    from PIL import Image
 except ImportError:
     logger.warning("PIL is not installed ... trying to do without")
     Image = None
diff --git a/fabio/xsdimage.py b/fabio-src/xsdimage.py
similarity index 100%
rename from fabio/xsdimage.py
rename to fabio-src/xsdimage.py
diff --git a/fabio.egg-info/SOURCES.txt b/fabio.egg-info/SOURCES.txt
new file mode 100644
index 0000000..662df02
--- /dev/null
+++ b/fabio.egg-info/SOURCES.txt
@@ -0,0 +1,370 @@
+MANIFEST.in
+README.txt
+setup.py
+stdeb.cfg
+doc/Makefile
+doc/make.bat
+doc/html/.buildinfo
+doc/html/Changelog.html
+doc/html/INSTALL.html
+doc/html/genindex.html
+doc/html/getting_started.html
+doc/html/index.html
+doc/html/objects.inv
+doc/html/py-modindex.html
+doc/html/search.html
+doc/html/searchindex.js
+doc/html/_modules/index.html
+doc/html/_modules/fabio/GEimage.html
+doc/html/_modules/fabio/HiPiCimage.html
+doc/html/_modules/fabio/OXDimage.html
+doc/html/_modules/fabio/TiffIO.html
+doc/html/_modules/fabio/adscimage.html
+doc/html/_modules/fabio/binaryimage.html
+doc/html/_modules/fabio/bruker100image.html
+doc/html/_modules/fabio/brukerimage.html
+doc/html/_modules/fabio/cbfimage.html
+doc/html/_modules/fabio/compression.html
+doc/html/_modules/fabio/converters.html
+doc/html/_modules/fabio/datIO.html
+doc/html/_modules/fabio/dm3image.html
+doc/html/_modules/fabio/edfimage.html
+doc/html/_modules/fabio/fabioimage.html
+doc/html/_modules/fabio/fabioutils.html
+doc/html/_modules/fabio/file_series.html
+doc/html/_modules/fabio/fit2dmaskimage.html
+doc/html/_modules/fabio/fit2dspreadsheetimage.html
+doc/html/_modules/fabio/kcdimage.html
+doc/html/_modules/fabio/mar345image.html
+doc/html/_modules/fabio/marccdimage.html
+doc/html/_modules/fabio/openimage.html
+doc/html/_modules/fabio/pilatusimage.html
+doc/html/_modules/fabio/pnmimage.html
+doc/html/_modules/fabio/readbytestream.html
+doc/html/_modules/fabio/tifimage.html
+doc/html/_modules/fabio/xsdimage.html
+doc/html/_sources/Changelog.txt
+doc/html/_sources/INSTALL.txt
+doc/html/_sources/getting_started.txt
+doc/html/_sources/index.txt
+doc/html/_sources/api/fabio.txt
+doc/html/_sources/api/modules.txt
+doc/html/_static/ajax-loader.gif
+doc/html/_static/basic.css
+doc/html/_static/comment-bright.png
+doc/html/_static/comment-close.png
+doc/html/_static/comment.png
+doc/html/_static/default.css
+doc/html/_static/doctools.js
+doc/html/_static/down-pressed.png
+doc/html/_static/down.png
+doc/html/_static/file.png
+doc/html/_static/jquery.js
+doc/html/_static/minus.png
+doc/html/_static/placeholder
+doc/html/_static/plus.png
+doc/html/_static/pygments.css
+doc/html/_static/searchtools.js
+doc/html/_static/sidebar.js
+doc/html/_static/underscore.js
+doc/html/_static/up-pressed.png
+doc/html/_static/up.png
+doc/html/_static/websupport.js
+doc/html/api/fabio.html
+doc/html/api/modules.html
+doc/pdf/FabIO.pdf
+doc/source/Changelog.rst
+doc/source/INSTALL.rst
+doc/source/conf.py
+doc/source/getting_started.rst
+doc/source/index.rst
+doc/source/_static/placeholder
+doc/source/api/modules.rst
+epydoc/api-objects.txt
+epydoc/class-tree.html
+epydoc/crarr.png
+epydoc/epydoc.css
+epydoc/epydoc.js
+epydoc/fabio-module.html
+epydoc/fabio-pysrc.html
+epydoc/fabio.GEimage-module.html
+epydoc/fabio.GEimage-pysrc.html
+epydoc/fabio.GEimage.GEimage-class.html
+epydoc/fabio.GEimage_old-module.html
+epydoc/fabio.GEimage_old-pysrc.html
+epydoc/fabio.GEimage_old.GEimage-class.html
+epydoc/fabio.HiPiCimage-module.html
+epydoc/fabio.HiPiCimage-pysrc.html
+epydoc/fabio.HiPiCimage.HiPiCimage-class.html
+epydoc/fabio.OXDimage-module.html
+epydoc/fabio.OXDimage-pysrc.html
+epydoc/fabio.OXDimage.OXDimage-class.html
+epydoc/fabio.OXDimage.Section-class.html
+epydoc/fabio.TiffIO-module.html
+epydoc/fabio.TiffIO-pysrc.html
+epydoc/fabio.TiffIO.TiffIO-class.html
+epydoc/fabio.adscimage-module.html
+epydoc/fabio.adscimage-pysrc.html
+epydoc/fabio.adscimage.adscimage-class.html
+epydoc/fabio.binaryimage-module.html
+epydoc/fabio.binaryimage-pysrc.html
+epydoc/fabio.binaryimage.binaryimage-class.html
+epydoc/fabio.bruker100image-module.html
+epydoc/fabio.bruker100image-pysrc.html
+epydoc/fabio.bruker100image.bruker100image-class.html
+epydoc/fabio.brukerimage-module.html
+epydoc/fabio.brukerimage-pysrc.html
+epydoc/fabio.brukerimage.brukerimage-class.html
+epydoc/fabio.byte_offset-module.html
+epydoc/fabio.cbfimage-module.html
+epydoc/fabio.cbfimage-pysrc.html
+epydoc/fabio.cbfimage.CIF-class.html
+epydoc/fabio.cbfimage.cbfimage-class.html
+epydoc/fabio.cf_io-module.html
+epydoc/fabio.compression-module.html
+epydoc/fabio.compression-pysrc.html
+epydoc/fabio.converters-module.html
+epydoc/fabio.converters-pysrc.html
+epydoc/fabio.datIO-module.html
+epydoc/fabio.datIO-pysrc.html
+epydoc/fabio.datIO.columnfile-class.html
+epydoc/fabio.datIO.fabiodata-class.html
+epydoc/fabio.dm3image-module.html
+epydoc/fabio.dm3image-pysrc.html
+epydoc/fabio.dm3image.dm3image-class.html
+epydoc/fabio.edfimage-module.html
+epydoc/fabio.edfimage-pysrc.html
+epydoc/fabio.edfimage.Frame-class.html
+epydoc/fabio.edfimage.edfimage-class.html
+epydoc/fabio.fabioimage-module.html
+epydoc/fabio.fabioimage-pysrc.html
+epydoc/fabio.fabioimage.fabioimage-class.html
+epydoc/fabio.fabioutils-module.html
+epydoc/fabio.fabioutils-pysrc.html
+epydoc/fabio.fabioutils.BZ2File-class.html
+epydoc/fabio.fabioutils.File-class.html
+epydoc/fabio.fabioutils.FilenameObject-class.html
+epydoc/fabio.fabioutils.GzipFile-class.html
+epydoc/fabio.fabioutils.StringIO-class.html
+epydoc/fabio.fabioutils.UnknownCompressedFile-class.html
+epydoc/fabio.fabioutils.filename_object-class.html
+epydoc/fabio.file_series-module.html
+epydoc/fabio.file_series-pysrc.html
+epydoc/fabio.file_series.file_series-class.html
+epydoc/fabio.file_series.filename_series-class.html
+epydoc/fabio.file_series.numbered_file_series-class.html
+epydoc/fabio.fit2dmaskimage-module.html
+epydoc/fabio.fit2dmaskimage-pysrc.html
+epydoc/fabio.fit2dmaskimage.fit2dmaskimage-class.html
+epydoc/fabio.fit2dspreadsheetimage-module.html
+epydoc/fabio.fit2dspreadsheetimage-pysrc.html
+epydoc/fabio.fit2dspreadsheetimage.fit2dspreadsheetimage-class.html
+epydoc/fabio.kcdimage-module.html
+epydoc/fabio.kcdimage-pysrc.html
+epydoc/fabio.kcdimage.kcdimage-class.html
+epydoc/fabio.mar345_IO-module.html
+epydoc/fabio.mar345image-module.html
+epydoc/fabio.mar345image-pysrc.html
+epydoc/fabio.mar345image.mar345image-class.html
+epydoc/fabio.marccdimage-module.html
+epydoc/fabio.marccdimage-pysrc.html
+epydoc/fabio.marccdimage.marccdimage-class.html
+epydoc/fabio.mytest-module.html
+epydoc/fabio.mytest-pysrc.html
+epydoc/fabio.openimage-module.html
+epydoc/fabio.openimage-pysrc.html
+epydoc/fabio.pdf
+epydoc/fabio.pilatusimage-module.html
+epydoc/fabio.pilatusimage-pysrc.html
+epydoc/fabio.pilatusimage.pilatusimage-class.html
+epydoc/fabio.pnmimage-module.html
+epydoc/fabio.pnmimage-pysrc.html
+epydoc/fabio.pnmimage.pnmimage-class.html
+epydoc/fabio.readbytestream-module.html
+epydoc/fabio.readbytestream-pysrc.html
+epydoc/fabio.tifimage-module.html
+epydoc/fabio.tifimage-pysrc.html
+epydoc/fabio.tifimage.Image_File_Directory-class.html
+epydoc/fabio.tifimage.Image_File_Directory_entry-class.html
+epydoc/fabio.tifimage.Tiff_header-class.html
+epydoc/fabio.tifimage.tifimage-class.html
+epydoc/fabio.xsdimage-module.html
+epydoc/fabio.xsdimage-pysrc.html
+epydoc/fabio.xsdimage.xsdimage-class.html
+epydoc/frames.html
+epydoc/help.html
+epydoc/identifier-index.html
+epydoc/index.html
+epydoc/module-tree.html
+epydoc/redirect.html
+epydoc/str-class.html
+epydoc/toc-everything.html
+epydoc/toc-fabio-module.html
+epydoc/toc-fabio.GEimage-module.html
+epydoc/toc-fabio.GEimage_old-module.html
+epydoc/toc-fabio.HiPiCimage-module.html
+epydoc/toc-fabio.OXDimage-module.html
+epydoc/toc-fabio.TiffIO-module.html
+epydoc/toc-fabio.adscimage-module.html
+epydoc/toc-fabio.binaryimage-module.html
+epydoc/toc-fabio.bruker100image-module.html
+epydoc/toc-fabio.brukerimage-module.html
+epydoc/toc-fabio.byte_offset-module.html
+epydoc/toc-fabio.cbfimage-module.html
+epydoc/toc-fabio.cf_io-module.html
+epydoc/toc-fabio.compression-module.html
+epydoc/toc-fabio.converters-module.html
+epydoc/toc-fabio.datIO-module.html
+epydoc/toc-fabio.dm3image-module.html
+epydoc/toc-fabio.edfimage-module.html
+epydoc/toc-fabio.fabioimage-module.html
+epydoc/toc-fabio.fabioutils-module.html
+epydoc/toc-fabio.file_series-module.html
+epydoc/toc-fabio.fit2dmaskimage-module.html
+epydoc/toc-fabio.fit2dspreadsheetimage-module.html
+epydoc/toc-fabio.kcdimage-module.html
+epydoc/toc-fabio.mar345_IO-module.html
+epydoc/toc-fabio.mar345image-module.html
+epydoc/toc-fabio.marccdimage-module.html
+epydoc/toc-fabio.mytest-module.html
+epydoc/toc-fabio.openimage-module.html
+epydoc/toc-fabio.pilatusimage-module.html
+epydoc/toc-fabio.pnmimage-module.html
+epydoc/toc-fabio.readbytestream-module.html
+epydoc/toc-fabio.tifimage-module.html
+epydoc/toc-fabio.xsdimage-module.html
+epydoc/toc.html
+fabio-src/GEimage.py
+fabio-src/GEimage_old.py
+fabio-src/HiPiCimage.py
+fabio-src/OXDimage.py
+fabio-src/TiffIO.py
+fabio-src/__init__.py
+fabio-src/adscimage.py
+fabio-src/binaryimage.py
+fabio-src/bruker100image.py
+fabio-src/brukerimage.py
+fabio-src/cbfimage.py
+fabio-src/compression.py
+fabio-src/converters.py
+fabio-src/datIO.py
+fabio-src/dm3image.py
+fabio-src/edfimage.py
+fabio-src/fabioimage.py
+fabio-src/fabioutils.py
+fabio-src/file_series.py
+fabio-src/fit2dmaskimage.py
+fabio-src/fit2dspreadsheetimage.py
+fabio-src/kcdimage.py
+fabio-src/mar345image.py
+fabio-src/marccdimage.py
+fabio-src/openimage.py
+fabio-src/pilatusimage.py
+fabio-src/pnmimage.py
+fabio-src/readbytestream.py
+fabio-src/templateimage.py
+fabio-src/tifimage.py
+fabio-src/xsdimage.py
+pylint/.pylintrc
+pylint/GEimage.py.lint
+pylint/GEimage_old.py.lint
+pylint/HiPiCimage.py.lint
+pylint/OXDimage.py.lint
+pylint/TiffIO.py.lint
+pylint/__init__.py.lint
+pylint/adscimage.py.lint
+pylint/benchheader.py.lint
+pylint/binaryimage.py.lint
+pylint/bruker100image.py.lint
+pylint/brukerimage.py.lint
+pylint/cbfimage.py.lint
+pylint/compression.py.lint
+pylint/converters.py.lint
+pylint/datIO.py.lint
+pylint/dm3image.py.lint
+pylint/edfimage.py.lint
+pylint/fabian_mar_header.py.lint
+pylint/fabioimage.py.lint
+pylint/fabioutils.py.lint
+pylint/file_series.py.lint
+pylint/fit2dmaskimage.py.lint
+pylint/fit2dspreadsheetimage.py.lint
+pylint/kcdimage.py.lint
+pylint/lintem.py
+pylint/mar345image.py.lint
+pylint/marccdimage.py.lint
+pylint/oldtifimage.py.lint
+pylint/openimage.py.lint
+pylint/pilatusimage.py.lint
+pylint/pnmimage.py.lint
+pylint/profile_compressed.py.lint
+pylint/readbytestream.py.lint
+pylint/templateimage.py.lint
+pylint/testGEimage.py.lint
+pylint/testOXDimage.py.lint
+pylint/testXSDimage.py.lint
+pylint/test_all.py.lint
+pylint/test_all_images.py.lint
+pylint/test_file_series.py.lint
+pylint/test_filename_steps.py.lint
+pylint/test_flat_binary.py.lint
+pylint/testadscimage.py.lint
+pylint/testbrukerimage.py.lint
+pylint/testcbfimage.py.lint
+pylint/testcompression.py.lint
+pylint/testedfimage.py.lint
+pylint/testfabioimage.py.lint
+pylint/testfilenames.py.lint
+pylint/testfit2dmaskimage.py.lint
+pylint/testheadernotsingleton.py.lint
+pylint/testkcdimage.py.lint
+pylint/testmar345image.py.lint
+pylint/testmccdimage.py.lint
+pylint/testopenheader.py.lint
+pylint/testopenimage.py.lint
+pylint/testtifgz.py.lint
+pylint/testtifimage.py.lint
+pylint/tifimage.py.lint
+pylint/utilstest.py.lint
+pylint/xsdimage.py.lint
+src/byte_offset.c
+src/byte_offset.pyx
+src/ccp4_pack.c
+src/ccp4_pack.h
+src/cf_io.pyx
+src/cf_iomodule.c
+src/columnfile.c
+src/columnfile.h
+src/mar345_IO.c
+src/mar345_IO.pyx
+src/stdint.h
+test/__init__.py
+test/benchheader.py
+test/profile_compressed.py
+test/testGEimage.py
+test/testOXDimage.py
+test/testXSDimage.py
+test/test_all.py
+test/test_all_images.py
+test/test_file_series.py
+test/test_filename_steps.py
+test/test_flat_binary.py
+test/testadscimage.py
+test/testbrukerimage.py
+test/testcbfimage.py
+test/testcompression.py
+test/testedfimage.py
+test/testfabioimage.py
+test/testfilenames.py
+test/testfit2dmaskimage.py
+test/testheadernotsingleton.py
+test/testkcdimage.py
+test/testmar345image.py
+test/testmccdimage.py
+test/testopenheader.py
+test/testopenimage.py
+test/testtifgz.py
+test/testtifimage.py
+test/utilstest.py
+test/profile/benchheader.py
+test/profile/profile_compressed.py
\ No newline at end of file
diff --git a/fabio/__init__.py b/fabio/__init__.py
deleted file mode 100644
index 73d18e2..0000000
--- a/fabio/__init__.py
+++ /dev/null
@@ -1,10 +0,0 @@
-version = "0.1.1"
-import logging
-logging.basicConfig()
-import fabioimage
-import openimage
-from fabioutils import filename_object, COMPRESSORS, jump_filename, \
-        previous_filename, next_filename, deconstruct_filename, \
-        extract_filenumber, getnum, construct_filename
-from openimage import openimage as open
-from openimage import openheader as openheader
diff --git a/fabio/brukerimage.py b/fabio/brukerimage.py
deleted file mode 100644
index 6120442..0000000
--- a/fabio/brukerimage.py
+++ /dev/null
@@ -1,195 +0,0 @@
-#!/usr/bin/env python
-"""
-
-Authors: Henning O. Sorensen & Erik Knudsen
-         Center for Fundamental Research: Metal Structures in Four Dimensions
-         Risoe National Laboratory
-         Frederiksborgvej 399
-         DK-4000 Roskilde
-         email:erik.knudsen at risoe.dk
-
-Based on: openbruker,readbruker, readbrukerheader functions in the opendata
-         module of ImageD11 written by Jon Wright, ESRF, Grenoble, France
-
-"""
-
-import numpy, logging
-logger = logging.getLogger("brukerimage")
-from fabioimage import fabioimage
-from readbytestream import readbytestream
-
-
-class brukerimage(fabioimage):
-    """
-    Read and eventually write ID11 bruker (eg smart6500) images
-    """
-
-    # needed if you feel like writing - see ImageD11/scripts/edf2bruker.py
-
-    __headerstring__ = ""
-
-
-    def _readheader(self, infile):
-        """
-        the bruker format uses 80 char lines in key : value format
-        In the fisrt 512*5 bytes of the header there should be a 
-        HDRBLKS key, whose value denotes how many 512 byte blocks 
-        are in the total header. The header is always n*5*512 bytes,
-        otherwise it wont contain whole key: value pairs
-        """
-        lump = infile.read(512 * 5)
-        self.__headerstring__ += lump
-        i = 80
-        self.header = {}
-        while i < 512 * 5:
-            if lump[i - 80: i].find(":") > 0:
-                key, val = lump[i - 80: i].split(":", 1)
-                key = key.strip()         # remove the whitespace (why?)
-                val = val.strip()
-                if self.header.has_key(key):
-                    # append lines if key already there
-                    self.header[key] = self.header[key] + '\n' + val
-                else:
-                    self.header[key] = val
-                    self.header_keys.append(key)
-            i = i + 80                  # next 80 characters
-        # we must have read this in the first 512 bytes.
-        nhdrblks = int(self.header['HDRBLKS'])
-        # Now read in the rest of the header blocks, appending 
-        rest = infile.read(512 * (nhdrblks - 5))
-        self.__headerstring__ += rest
-        lump = lump[i - 80: 512] + rest
-        i = 80
-        j = 512 * nhdrblks
-        while i < j :
-            if lump[i - 80: i].find(":") > 0: # as for first 512 bytes of header
-                key, val = lump[i - 80: i].split(":", 1)
-                key = key.strip()
-                val = val.strip()
-                if self.header.has_key(key):
-                    self.header[key] = self.header[key] + '\n' + val
-                else:
-                    self.header[key] = val
-                    self.header_keys.append(key)
-            i = i + 80
-        # make a (new) header item called "datastart"
-        self.header['datastart'] = infile.tell()
-        #set the image dimensions
-        self.dim1 = int(self.header['NROWS'])
-        self.dim2 = int(self.header['NCOLS'])
-
-    def read(self, fname, frame=None):
-        """
-        Read in and unpack the pixels (including overflow table
-        """
-        infile = self._open(fname, "rb")
-        try:
-            self._readheader(infile)
-        except:
-            raise
-
-        rows = self.dim1
-        cols = self.dim2
-
-        try:
-            # you had to read the Bruker docs to know this!
-            npixelb = int(self.header['NPIXELB'])
-        except:
-            errmsg = "length " + str(len(self.header['NPIXELB'])) + "\n"
-            for byt in self.header['NPIXELB']:
-                errmsg += "char: " + str(byt) + " " + str(ord(byt)) + "\n"
-            logger.warning(errmsg)
-            raise
-
-        self.data = readbytestream(infile, infile.tell(),
-                                   rows, cols, npixelb,
-                                   datatype="int",
-                                   signed='n',
-                                   swap='n')
-
-        #handle overflows
-        nov = int(self.header['NOVERFL'])
-        if nov > 0:   # Read in the overflows
-            # need at least int32 sized data I guess - can reach 2^21
-            self.data = self.data.astype(numpy.uint32)
-            # 16 character overflows:
-            #      9 characters of intensity
-            #      7 character position
-            for i in range(nov):
-                ovfl = infile.read(16)
-                intensity = int(ovfl[0: 9])
-                position = int(ovfl[9: 16])
-                # relies on python style modulo being always +
-                row = position % rows
-                # relies on truncation down
-                col = position / rows
-                #print "Overflow ", r, c, intensity, position,\
-                #    self.data[r,c],self.data[c,r]
-                self.data[col, row] = intensity
-        infile.close()
-
-        self.resetvals()
-        self.pilimage = None
-        return self
-
-
-    def write(self, fname):
-        """
-        Writes the image as EDF
-        FIXME - this should call edfimage.write if that is wanted?
-        eg:     obj = edfimage(data = self.data, header = self.header)
-                obj.write(fname)
-                or maybe something like: edfimage.write(self, fname)
-        """
-        logger.warning("***warning***: call to unifinished " + \
-                "brukerimage.write. This will write the file" + \
-                            fname + "as an edf-file")
-
-
-        outfile = self._open(fname, "wb")
-        outfile.write('{\n')
-        i = 4
-        for k in self.header_keys:
-            out = (("%s = %s;\n") % (k, self.header[k]))
-            i = i + len(out)
-            outfile.write(out)
-        out = (4096 - i) * ' '
-        outfile.write(out)
-        outfile.write('}\n')
-        # Assumes a short-circuiting if / or ...
-        if not self.header.has_key("ByteOrder") or \
-               self.header["ByteOrder"] == "LowByteFirst":
-            outfile.write(self.data.astype(numpy.uint16).tostring())
-        else:
-            outfile.write(self.data.byteswap().astype(
-                    numpy.uint16).tostring())
-        outfile.close()
-
-    def write2(self, fname):
-        """ FIXME: what is this? """
-        pass
-
-
-
-def test():
-    """ a testcase """
-    import sys, time
-    img = brukerimage()
-    start = time.clock()
-    for filename in sys.argv[1:]:
-        img.read(filename)
-        res = img.toPIL16()
-        img.rebin(2, 2)
-        print filename + (": max=%d, min=%d, mean=%.2e, stddev=%.2e") % (
-            img.getmax(), img.getmin(), img.getmean(), img.getstddev())
-        print 'integrated intensity (%d %d %d %d) =%.3f' % (
-            10, 20, 20, 40, img.integrate_area((10, 20, 20, 40)))
-    end = time.clock()
-    print (end - start)
-
-
-
-if __name__ == '__main__':
-    test()
-
-
diff --git a/pylint/.pylintrc b/pylint/.pylintrc
new file mode 100644
index 0000000..9d73ffe
--- /dev/null
+++ b/pylint/.pylintrc
@@ -0,0 +1,308 @@
+# lint Python modules using external checkers.
+# 
+# This is the main checker controling the other ones and the reports
+# generation. It is itself both a raw checker and an astng checker in order
+# to:
+# * handle message activation / deactivation at the module level
+# * handle some basic but necessary stats'data (number of classes, methods...)
+# 
+[MASTER]
+
+# Specify a configuration file.
+#rcfile=
+
+# Profiled execution.
+profile=no
+
+# Add <file or directory> to the black list. It should be a base name, not a
+# path. You may set this option multiple times.
+ignore=CVS
+
+# Pickle collected data for later comparisons.
+persistent=yes
+
+# Set the cache size for astng objects.
+cache-size=500
+
+# List of plugins (as comma separated values of python modules names) to load,
+# usually to register additional checkers.
+load-plugins=
+
+
+[COMMANDS]
+
+# Display a help message for the given message id and exit. The value may be a
+# comma separated list of message ids.
+#help-msg=
+
+
+[MESSAGES CONTROL]
+
+# Enable only checker(s) with the given id(s). This option conflict with the
+# disable-checker option
+#enable-checker=
+
+# Enable all checker(s) except those with the given id(s). This option conflict
+# with the disable-checker option
+#disable-checker=
+
+# Enable all messages in the listed categories.
+#enable-msg-cat=
+
+# Disable all messages in the listed categories.
+#disable-msg-cat=
+
+# Enable the message(s) with the given id(s).
+#enable-msg=
+
+# Disable the message(s) with the given id(s).
+#disable-msg=
+
+
+[REPORTS]
+
+# set the output format. Available formats are text, parseable, colorized and
+# html
+output-format=text
+
+# Include message's id in output
+include-ids=yes
+
+# Put messages in a separate file for each module / package specified on the
+# command line instead of printing them on stdout. Reports (if any) will be
+# written in a file name "pylint_global.[txt|html]".
+files-output=no
+
+# Tells wether to display a full report or only the messages
+reports=yes
+
+# Python expression which should return a note less than 10 (10 is the highest
+# note).You have access to the variables errors warning, statement which
+# respectivly contain the number of errors / warnings messages and the total
+# number of statements analyzed. This is used by the global evaluation report
+# (R0004).
+evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
+
+# Add a comment according to your evaluation note. This is used by the global
+# evaluation report (R0004).
+comment=no
+
+# Enable the report(s) with the given id(s).
+#enable-report=
+
+# Disable the report(s) with the given id(s).
+#disable-report=
+
+
+# checks for
+# * unused variables / imports
+# * undefined variables
+# * redefinition of variable from builtins or from an outer scope
+# * use of variable before assigment
+# 
+[VARIABLES]
+
+# Tells wether we should check for unused import in __init__ files.
+init-import=no
+
+# A regular expression matching names used for dummy variables (i.e. not used).
+dummy-variables-rgx=_|dummy
+
+# List of additional names supposed to be defined in builtins. Remember that
+# you should avoid to define new builtins when possible.
+additional-builtins=
+
+
+# try to find bugs in the code using type inference
+# 
+[TYPECHECK]
+
+# Tells wether missing members accessed in mixin class should be ignored. A
+# mixin class is detected if its name ends with "mixin" (case insensitive).
+ignore-mixin-members=yes
+
+# When zope mode is activated, consider the acquired-members option to ignore
+# access to some undefined attributes.
+zope=no
+
+# List of members which are usually get through zope's acquisition mecanism and
+# so shouldn't trigger E0201 when accessed (need zope=yes to be considered).
+acquired-members=REQUEST,acl_users,aq_parent
+
+
+# checks for :
+# * doc strings
+# * modules / classes / functions / methods / arguments / variables name
+# * number of arguments, local variables, branchs, returns and statements in
+# functions, methods
+# * required module attributes
+# * dangerous default values as arguments
+# * redefinition of function / method / class
+# * uses of the global statement
+# 
+[BASIC]
+
+# Required attributes for module, separated by a comma
+required-attributes=
+
+# Regular expression which should only match functions or classes name which do
+# not require a docstring
+no-docstring-rgx=__.*__
+
+# Regular expression which should only match correct module names
+module-rgx=(([a-z_][a-z0-9_]*)|([a-z][a-zA-Z0-9]+))$
+
+# Regular expression which should only match correct module level names
+const-rgx=(([A-Z_]*)|(__.*__))$
+
+# Regular expression which should only match correct class names
+class-rgx=[a-z_][a-zA-Z0-9]+$
+
+# Regular expression which should only match correct function names
+function-rgx=[a-z_][a-z0-9_]{2,30}$
+
+# Regular expression which should only match correct method names
+method-rgx=[a-z_][a-z0-9_]{2,30}$
+
+# Regular expression which should only match correct instance attribute names
+attr-rgx=[a-z_][a-z0-9_]{2,30}$
+
+# Regular expression which should only match correct argument names
+argument-rgx=[a-z_][a-z0-9_]{2,30}$
+
+# Regular expression which should only match correct variable names
+variable-rgx=[a-z_][a-z0-9_]{2,30}$
+
+# Regular expression which should only match correct list comprehension /
+# generator expression variable names
+inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
+
+# Good variable names which should always be accepted, separated by a comma
+good-names=i,j,k,x,y,ex,Run,_
+
+# Bad variable names which should always be refused, separated by a comma
+bad-names=foo,bar,baz,toto,tutu,tata
+
+# List of builtins function names that should not be used, separated by a comma
+bad-functions=map,filter,apply,input
+
+
+# checks for sign of poor/misdesign:
+# * number of methods, attributes, local variables...
+# * size, complexity of functions, methods
+# 
+[DESIGN]
+
+# Maximum number of arguments for function / method
+max-args=5
+
+# Maximum number of locals for function / method body
+max-locals=15
+
+# Maximum number of return / yield for function / method body
+max-returns=6
+
+# Maximum number of branch for function / method body
+max-branchs=12
+
+# Maximum number of statements in function / method body
+max-statements=50
+
+# Maximum number of parents for a class (see R0901).
+max-parents=7
+
+# Maximum number of attributes for a class (see R0902).
+max-attributes=7
+
+# Minimum number of public methods for a class (see R0903).
+min-public-methods=2
+
+# Maximum number of public methods for a class (see R0904).
+max-public-methods=20
+
+
+# checks for :
+# * methods without self as first argument
+# * overridden methods signature
+# * access only to existant members via self
+# * attributes not defined in the __init__ method
+# * supported interfaces implementation
+# * unreachable code
+# 
+[CLASSES]
+
+# List of interface methods to ignore, separated by a comma. This is used for
+# instance to not check methods defines in Zope's Interface base class.
+ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by
+
+# List of method names used to declare (i.e. assign) instance attributes.
+defining-attr-methods=__init__,__new__,setUp
+
+
+# checks for
+# * external modules dependencies
+# * relative / wildcard imports
+# * cyclic imports
+# * uses of deprecated modules
+# 
+[IMPORTS]
+
+# Deprecated modules which should not be used, separated by a comma
+deprecated-modules=regsub,string,TERMIOS,Bastion,rexec
+
+# Create a graph of every (i.e. internal and external) dependencies in the
+# given file (report R0402 must not be disabled)
+import-graph=
+
+# Create a graph of external dependencies in the given file (report R0402 must
+# not be disabled)
+ext-import-graph=
+
+# Create a graph of internal dependencies in the given file (report R0402 must
+# not be disabled)
+int-import-graph=
+
+
+# checks for :
+# * unauthorized constructions
+# * strict indentation
+# * line length
+# * use of <> instead of !=
+# 
+[FORMAT]
+
+# Maximum number of characters on a single line.
+max-line-length=80
+
+# Maximum number of lines in a module
+max-module-lines=1000
+
+# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
+# tab).
+indent-string='    '
+
+
+# checks for similarities and duplicated code. This computation may be
+# memory / CPU intensive, so you should disable it if you experiments some
+# problems.
+# 
+[SIMILARITIES]
+
+# Minimum lines number of a similarity.
+min-similarity-lines=4
+
+# Ignore comments when computing similarities.
+ignore-comments=yes
+
+# Ignore docstrings when computing similarities.
+ignore-docstrings=yes
+
+
+# checks for:
+# * warning notes in the code like FIXME, XXX
+# * PEP 263: source code with non ascii character but no encoding declaration
+# 
+[MISCELLANEOUS]
+
+# List of note tags to take in consideration, separated by a comma.
+notes=FIXME,XXX,TODO
diff --git a/pylint/GEimage.py.lint b/pylint/GEimage.py.lint
new file mode 100644
index 0000000..d870e2a
--- /dev/null
+++ b/pylint/GEimage.py.lint
@@ -0,0 +1,124 @@
+No config file found, using default configuration
+
+************* Module GEimage
+C:  1,0: Missing docstring
+C: 17,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R:181,0:GEimage: Too many instance attributes (9/7)
+C:181,0:GEimage: Missing docstring
+W:191,26:GEimage._readheader: Redefining built-in 'format'
+W:253,4:GEimage.write: Arguments number differs from overridden method
+W:253,27:GEimage.write: Unused argument 'force_type'
+W:270,17:GEimage.getframe: Access to a protected member _open of a client class
+W:271,8:GEimage.getframe: Access to a protected member _readframe of a client class
+R:181,0:GEimage: Too many public methods (25/20)
+W:269,8:GEimage.getframe: Attribute 'sequencefilename' defined outside __init__
+C:300,0:demo: Missing docstring
+
+
+Report
+======
+94 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |4      |4        |=          |
++-----------+-------+---------+-----------+
+|refactor   |2      |1        |+1.00      |
++-----------+-------+---------+-----------+
+|warning    |6      |8        |-2.00      |
++-----------+-------+---------+-----------+
+|error      |0      |3        |-3.00      |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0111      |3           |
++-----------+------------+
+|W0212      |2           |
++-----------+------------+
+|W0622      |1           |
++-----------+------------+
+|W0613      |1           |
++-----------+------------+
+|W0221      |1           |
++-----------+------------+
+|W0201      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+|C0103      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 8.72/10 (previous run: 6.99/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |262    |82.39 |260      |+2.00      |
++----------+-------+------+---------+-----------+
+|docstring |24     |7.55  |24       |=          |
++----------+-------+------+---------+-----------+
+|comment   |13     |4.09  |13       |=          |
++----------+-------+------+---------+-----------+
+|empty     |19     |5.97  |21       |-2.00      |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (GEimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|method   |8      |8          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/GEimage_old.py.lint b/pylint/GEimage_old.py.lint
new file mode 100644
index 0000000..71c1562
--- /dev/null
+++ b/pylint/GEimage_old.py.lint
@@ -0,0 +1,166 @@
+No config file found, using default configuration
+
+************* Module GEimage_old
+C: 40,0: Line too long (88/80)
+C: 41,0: Line too long (97/80)
+C: 42,0: Line too long (92/80)
+C: 43,0: Line too long (101/80)
+C: 45,0: Line too long (89/80)
+C: 46,0: Line too long (94/80)
+C: 47,0: Line too long (94/80)
+C: 48,0: Line too long (87/80)
+C: 65,0: Line too long (86/80)
+C: 68,0: Line too long (92/80)
+C: 71,0: Line too long (112/80)
+C: 74,0: Line too long (112/80)
+C: 89,0: Line too long (82/80)
+C:104,0: Line too long (82/80)
+C:107,0: Line too long (82/80)
+C:113,0: Line too long (88/80)
+C:116,0: Line too long (98/80)
+C:119,0: Line too long (102/80)
+C:122,0: Line too long (82/80)
+C:129,0: Line too long (96/80)
+C:132,0: Line too long (100/80)
+C:135,0: Line too long (96/80)
+C:156,0: Line too long (88/80)
+C:159,0: Line too long (102/80)
+C:168,0: Line too long (94/80)
+C:219,0: Line too long (88/80)
+C:222,0: Line too long (84/80)
+C:225,0: Line too long (90/80)
+C:228,0: Line too long (90/80)
+C:231,0: Line too long (86/80)
+C:237,0: Line too long (106/80)
+C:240,0: Line too long (102/80)
+C:246,0: Line too long (98/80)
+C:252,0: Line too long (92/80)
+C:272,0: Line too long (86/80)
+C:293,0: Line too long (84/80)
+C:299,0: Line too long (82/80)
+C:302,0: Line too long (82/80)
+C:305,0: Line too long (82/80)
+C:308,0: Line too long (82/80)
+C:311,0: Line too long (102/80)
+C:314,0: Line too long (98/80)
+C:320,0: Line too long (84/80)
+C:352,0: Line too long (92/80)
+C:355,0: Line too long (88/80)
+C:358,0: Line too long (84/80)
+C:361,0: Line too long (90/80)
+C:381,0: Line too long (100/80)
+C:384,0: Line too long (96/80)
+C:449,0: Line too long (82/80)
+C:484,0: Line too long (92/80)
+C:  1,0: Invalid name "GEimage_old" (should match (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$)
+R: 26,0:GEimage: Too many instance attributes (9/7)
+C: 34,8:GEimage._readheader: Invalid name "ImageFormat" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 53,8:GEimage._readheader: Invalid name "DUTID" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 26,0:GEimage: Missing docstring
+C:486,8:GEimage.read: Invalid name "ReadBytes" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 26,0:GEimage: Too many public methods (25/20)
+W: 34,8:GEimage._readheader: Attribute 'ImageFormat' defined outside __init__
+W: 53,8:GEimage._readheader: Attribute 'DUTID' defined outside __init__
+
+
+Report
+======
+50 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |56     |57       |-1.00      |
++-----------+-------+---------+-----------+
+|refactor   |2      |2        |=          |
++-----------+-------+---------+-----------+
+|warning    |2      |10       |-8.00      |
++-----------+-------+---------+-----------+
+|error      |0      |21       |-21.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0301      |51          |
++-----------+------------+
+|C0103      |4           |
++-----------+------------+
+|W0201      |2           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at -2.00/10 (previous run: -24.80/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |50     |10.25 |50       |=          |
++----------+-------+------+---------+-----------+
+|docstring |24     |4.92  |24       |=          |
++----------+-------+------+---------+-----------+
+|comment   |267    |54.71 |267      |=          |
++----------+-------+------+---------+-----------+
+|empty     |147    |30.12 |147      |=          |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (GEimage_old)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|method   |2      |2          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/HiPiCimage.py.lint b/pylint/HiPiCimage.py.lint
new file mode 100644
index 0000000..6d9a28f
--- /dev/null
+++ b/pylint/HiPiCimage.py.lint
@@ -0,0 +1,120 @@
+No config file found, using default configuration
+
+************* Module HiPiCimage
+C: 93,0: Line too long (81/80)
+C: 17,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 24,4:HiPiCimage._readheader: Too many local variables (17/15)
+C: 29,8:HiPiCimage._readheader: Invalid name "Image_tag" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 31,8:HiPiCimage._readheader: Invalid name "Comment_len" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 32,8:HiPiCimage._readheader: Invalid name "Dim_1" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 33,8:HiPiCimage._readheader: Invalid name "Dim_2" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 34,8:HiPiCimage._readheader: Invalid name "Dim_1_offset" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 35,8:HiPiCimage._readheader: Invalid name "Dim_2_offset" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 36,8:HiPiCimage._readheader: Invalid name "HeaderType" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 37,8:HiPiCimage._readheader: Invalid name "Dump" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 38,8:HiPiCimage._readheader: Invalid name "Comment" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 49,8:HiPiCimage._readheader: Invalid name "Comment_split" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 36,8:HiPiCimage._readheader: Unused variable 'HeaderType'
+W: 37,8:HiPiCimage._readheader: Unused variable 'Dump'
+R: 20,0:HiPiCimage: Too many public methods (25/20)
+
+
+Report
+======
+58 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |12     |12       |=          |
++-----------+-------+---------+-----------+
+|refactor   |2      |2        |=          |
++-----------+-------+---------+-----------+
+|warning    |2      |10       |-8.00      |
++-----------+-------+---------+-----------+
+|error      |0      |19       |-19.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |11          |
++-----------+------------+
+|W0612      |2           |
++-----------+------------+
+|R0914      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|C0301      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.24/10 (previous run: -10.52/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |61     |59.80 |61       |=          |
++----------+-------+------+---------+-----------+
+|docstring |23     |22.55 |23       |=          |
++----------+-------+------+---------+-----------+
+|comment   |8      |7.84  |8        |=          |
++----------+-------+------+---------+-----------+
+|empty     |10     |9.80  |10       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (HiPiCimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|method   |2      |2          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/OXDimage.py.lint b/pylint/OXDimage.py.lint
new file mode 100644
index 0000000..5153386
--- /dev/null
+++ b/pylint/OXDimage.py.lint
@@ -0,0 +1,221 @@
+No config file found, using default configuration
+
+************* Module OXDimage
+C: 30,0: Line too long (90/80)
+C: 80,0: Line too long (88/80)
+C: 81,0: Line too long (94/80)
+C: 82,0: Line too long (95/80)
+C: 83,0: Line too long (90/80)
+C: 84,0: Line too long (91/80)
+C: 85,0: Line too long (89/80)
+C: 89,0: Line too long (83/80)
+C: 90,0: Line too long (83/80)
+C: 91,0: Line too long (88/80)
+C: 92,0: Line too long (88/80)
+C: 93,0: Line too long (84/80)
+C: 94,0: Line too long (84/80)
+C: 95,0: Line too long (85/80)
+C:100,0: Line too long (88/80)
+C:101,0: Line too long (103/80)
+C:102,0: Line too long (92/80)
+C:103,0: Line too long (94/80)
+C:104,0: Line too long (94/80)
+C:105,0: Line too long (103/80)
+C:106,0: Line too long (103/80)
+C:107,0: Line too long (112/80)
+C:108,0: Line too long (112/80)
+C:109,0: Line too long (83/80)
+C:110,0: Line too long (103/80)
+C:111,0: Line too long (96/80)
+C:112,0: Line too long (96/80)
+C:120,0: Line too long (82/80)
+C:142,0: Line too long (81/80)
+C:149,0: Line too long (94/80)
+C:150,0: Line too long (94/80)
+C:152,0: Line too long (91/80)
+C:153,0: Line too long (91/80)
+C:154,0: Line too long (90/80)
+C:155,0: Line too long (89/80)
+C:158,0: Line too long (97/80)
+C:159,0: Line too long (97/80)
+C:160,0: Line too long (97/80)
+C:164,0: Line too long (87/80)
+C:165,0: Line too long (87/80)
+C:167,0: Line too long (92/80)
+C:169,0: Line too long (91/80)
+C:172,0: Line too long (88/80)
+C:177,0: Line too long (86/80)
+C:178,0: Line too long (97/80)
+C:179,0: Line too long (87/80)
+W:248,0: Found indentation with tabs instead of spaces
+W:249,0: Found indentation with tabs instead of spaces
+C:251,0: Line too long (107/80)
+C:252,0: Line too long (133/80)
+C:253,0: Line too long (111/80)
+C:254,0: Line too long (125/80)
+C:255,0: Line too long (125/80)
+C:256,0: Line too long (121/80)
+C:257,0: Line too long (122/80)
+C:258,0: Line too long (121/80)
+C:305,0: Line too long (91/80)
+C:307,0: Line too long (120/80)
+C:309,0: Line too long (118/80)
+C:311,0: Line too long (125/80)
+C:314,0: Line too long (95/80)
+C:316,0: Line too long (124/80)
+C:318,0: Line too long (122/80)
+C:320,0: Line too long (129/80)
+C:323,0: Line too long (96/80)
+C:325,0: Line too long (124/80)
+C:327,0: Line too long (122/80)
+C:329,0: Line too long (129/80)
+C:332,0: Line too long (94/80)
+C:334,0: Line too long (121/80)
+C:336,0: Line too long (119/80)
+C:338,0: Line too long (126/80)
+C:371,0: Line too long (82/80)
+C:397,0: Line too long (110/80)
+W:  5,0: Redefining built-in '__doc__'
+C:  1,0: Missing docstring
+C: 23,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 31,4: Invalid name "rad2deg" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 32,4: Invalid name "deg2rad" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 52,0:OXDimage: Too many instance attributes (10/7)
+R: 56,4:OXDimage._readheader: Too many statements (95/50)
+C:225,12:OXDimage.read: Invalid name "ReadBytes" (should match [a-z_][a-z0-9_]{2,30}$)
+C:269,8:OXDimage._writeheader: Invalid name "NG" (should match [a-z_][a-z0-9_]{2,30}$)
+C:279,8:OXDimage._writeheader: Invalid name "NS" (should match [a-z_][a-z0-9_]{2,30}$)
+C:299,8:OXDimage._writeheader: Invalid name "KM" (should match [a-z_][a-z0-9_]{2,30}$)
+C:366,8:OXDimage._writeheader: Invalid name "SS" (should match [a-z_][a-z0-9_]{2,30}$)
+C:375,8:OXDimage._writeheader: Invalid name "HS" (should match [a-z_][a-z0-9_]{2,30}$)
+R:237,4:OXDimage._writeheader: Too many branches (25/12)
+R:237,4:OXDimage._writeheader: Too many statements (102/50)
+C:395,4:OXDimage.getCompressionRatio: Invalid name "getCompressionRatio" (should match [a-z_][a-z0-9_]{2,30}$)
+C:400,4:OXDimage.checkData: Invalid name "checkData" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 52,0:OXDimage: Too many public methods (26/20)
+W:216,12:OXDimage.read: Attribute 'raw16' defined outside __init__
+W:215,12:OXDimage.read: Attribute 'raw8' defined outside __init__
+W:217,12:OXDimage.read: Attribute 'raw32' defined outside __init__
+C:418,8:Section.__init__: Invalid name "_dictSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:417,8:Section.__init__: Invalid name "lstChr" (should match [a-z_][a-z0-9_]{2,30}$)
+C:410,4:Section.__init__: Invalid name "dictHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:410,29:Section.__init__: Invalid name "dictHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:422,4:Section.getSize: Invalid name "getSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:422,4:Section.getSize: Missing docstring
+C:427,4:Section.setData: Invalid name "setData" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 22,0: Unused import struct
+
+
+Report
+======
+288 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |91     |56       |+35.00     |
++-----------+-------+---------+-----------+
+|refactor   |5      |3        |+2.00      |
++-----------+-------+---------+-----------+
+|warning    |7      |8        |-1.00      |
++-----------+-------+---------+-----------+
+|error      |0      |86       |-86.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0301      |72          |
++-----------+------------+
+|C0103      |17          |
++-----------+------------+
+|W0201      |3           |
++-----------+------------+
+|W0312      |2           |
++-----------+------------+
+|R0915      |2           |
++-----------+------------+
+|C0111      |2           |
++-----------+------------+
+|W0622      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|R0912      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.42/10 (previous run: -22.48/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |322    |78.35 |158      |+164.00    |
++----------+-------+------+---------+-----------+
+|docstring |42     |10.22 |18       |+24.00     |
++----------+-------+------+---------+-----------+
+|comment   |17     |4.14  |14       |+3.00      |
++----------+-------+------+---------+-----------+
+|empty     |30     |7.30  |25       |+5.00      |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (OXDimage)
+      \-deg2rad (OXDimage)
+      \-rad2deg (OXDimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |2      |1          |+1.00      |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|method   |10     |2          |+8.00      |90.00       |40.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/TiffIO.py.lint b/pylint/TiffIO.py.lint
new file mode 100644
index 0000000..3fa81aa
--- /dev/null
+++ b/pylint/TiffIO.py.lint
@@ -0,0 +1,214 @@
+************* Module TiffIO
+C:  1,0: Too many lines in module (1197)
+C:  1,0: Missing docstring
+C:122,12:TiffIO._initInternalVariables: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C: 94,0:TiffIO: Missing docstring
+W: 95,23:TiffIO.__init__: Redefining name 'filename' from outer scope (line 1170)
+C:107,12:TiffIO.__init__: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:111,12:TiffIO.__init__: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:118,4:TiffIO._initInternalVariables: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:118,4:TiffIO._initInternalVariables: Missing docstring
+C:118,37:TiffIO._initInternalVariables: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:120,12:TiffIO._initInternalVariables: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:137,12:TiffIO._initInternalVariables: Invalid name "a" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:162,4:TiffIO.__makeSureFileIsOpen: Missing docstring
+C:176,4:TiffIO.__makeSureFileIsClosed: Missing docstring
+C:186,4:TiffIO.getNumberOfImages: Missing docstring
+C:191,4:TiffIO._updateIFD: Missing docstring
+C:196,4:TiffIO.getImageFileDirectories: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:196,4:TiffIO.getImageFileDirectories: Missing docstring
+C:196,38:TiffIO.getImageFileDirectories: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:198,12:TiffIO.getImageFileDirectories: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:201,8:TiffIO.getImageFileDirectories: Invalid name "st" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+W:247,12:TiffIO._parseImageFileDirectory: Redefining name 'i' from outer scope (line 1186)
+C:232,4:TiffIO._parseImageFileDirectory: Missing docstring
+C:234,8:TiffIO._parseImageFileDirectory: Invalid name "st" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:235,8:TiffIO._parseImageFileDirectory: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+W:247,12:TiffIO._parseImageFileDirectory: Unused variable 'i'
+C:280,4:TiffIO._readIFDEntry: Missing docstring
+C:281,8:TiffIO._readIFDEntry: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:282,8:TiffIO._readIFDEntry: Invalid name "st" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+W:286,8:TiffIO._readIFDEntry: Unused variable 'ftype'
+W:294,12:TiffIO._readIFDEntry: Unused variable 'offset'
+C:298,4:TiffIO.getData: Missing docstring
+C:304,4:TiffIO.getImage: Missing docstring
+C:307,4:TiffIO.getInfo: Missing docstring
+W:311,8:TiffIO.getInfo: Unused variable 'current'
+W:307,0:TiffIO.getInfo: Unused argument 'kw'
+R:314,4:TiffIO._readInfo: Too many local variables (37/25)
+W:490,16:TiffIO._readInfo: Redefining name 'key' from outer scope (line 1188)
+W:460,8:TiffIO._readInfo: Redefining name 'info' from outer scope (line 1187)
+W:489,16:TiffIO._readInfo: Redefining name 'i' from outer scope (line 1186)
+C:314,4:TiffIO._readInfo: Missing docstring
+E:347,36:TiffIO._readInfo: Instance of 'list' has no 'shape' member (but some types could not be inferred)
+E:347,63:TiffIO._readInfo: Instance of 'list' has no 'dtype' member (but some types could not be inferred)
+E:348,29:TiffIO._readInfo: Instance of 'list' has no 'T' member (but some types could not be inferred)
+W:411,12:TiffIO._readInfo: No exception type(s) specified
+E:404,23:TiffIO._readInfo: Instance of 'list' has no 'upper' member (but some types could not be inferred)
+E:405,35:TiffIO._readInfo: Instance of 'list' has no 'split' member (but some types could not be inferred)
+E:407,32:TiffIO._readInfo: Instance of 'list' has no 'decode' member (but some types could not be inferred)
+C:438,20:TiffIO._readInfo: Invalid name "n" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+E:485,40:TiffIO._readInfo: Instance of 'list' has no 'decode' member (but some types could not be inferred)
+R:314,4:TiffIO._readInfo: Too many branches (51/15)
+R:314,4:TiffIO._readInfo: Too many statements (143/50)
+R:504,4:TiffIO._readImage: Too many local variables (35/25)
+W:583,16:TiffIO._readImage: Redefining name 'dtype' from outer scope (line 1171)
+W:525,12:TiffIO._readImage: Redefining name 'info' from outer scope (line 1187)
+W:643,16:TiffIO._readImage: Redefining name 'i' from outer scope (line 1186)
+C:504,4:TiffIO._readImage: Missing docstring
+E:573,12:TiffIO._readImage: NotImplemented raised - should raise NotImplementedError
+C:620,8:TiffIO._readImage: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:621,8:TiffIO._readImage: Invalid name "st" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+W:659,20:TiffIO._readImage: No exception type(s) specified
+C:667,24:TiffIO._readImage: Invalid name "n" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+R:504,4:TiffIO._readImage: Too many branches (77/15)
+R:504,4:TiffIO._readImage: Too many statements (190/50)
+W:742,33:TiffIO.writeImage: Redefining name 'info' from outer scope (line 1187)
+W:816,16:TiffIO.writeImage: Redefining name 'key' from outer scope (line 1188)
+C:742,4:TiffIO.writeImage: Missing docstring
+C:749,8:TiffIO.writeImage: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:768,12:TiffIO.writeImage: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:771,12:TiffIO.writeImage: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:777,8:TiffIO.writeImage: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:787,8:TiffIO.writeImage: Invalid name "st" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+R:742,4:TiffIO.writeImage: Too many branches (16/15)
+R:742,4:TiffIO.writeImage: Too many statements (67/50)
+C:837,4:TiffIO._initEmptyFile: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:837,4:TiffIO._initEmptyFile: Missing docstring
+C:837,29:TiffIO._initEmptyFile: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:839,12:TiffIO._initEmptyFile: Invalid name "fd" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C:850,8:TiffIO._initEmptyFile: Invalid name "st" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+R:866,4:TiffIO._getOutputIFD: Too many local variables (34/25)
+W:930,8:TiffIO._getOutputIFD: Redefining name 'dtype' from outer scope (line 1171)
+W:1023,8:TiffIO._getOutputIFD: Redefining name 'info' from outer scope (line 1187)
+W:999,16:TiffIO._getOutputIFD: Redefining name 'i' from outer scope (line 1186)
+C:866,4:TiffIO._getOutputIFD: Missing docstring
+C:989,8:TiffIO._getOutputIFD: Invalid name "st" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+R:866,4:TiffIO._getOutputIFD: Too many branches (54/15)
+R:866,4:TiffIO._getOutputIFD: Too many statements (177/50)
+W:501,16:TiffIO._readInfo: Attribute '_imageInfoCache' defined outside __init__
+W:849,12:TiffIO._initEmptyFile: Attribute '_structChar' defined outside __init__
+W:203,8:TiffIO.getImageFileDirectories: Attribute '_IFD' defined outside __init__
+W:738,16:TiffIO._readImage: Attribute '_imageDataCache' defined outside __init__
+W:737,16:TiffIO._readImage: Attribute '_imageDataCacheIndex' defined outside __init__
+W:834,8:TiffIO.writeImage: Attribute 'fd' defined outside __init__
+W:854,12:TiffIO._initEmptyFile: Attribute '_swap' defined outside __init__
+W:500,16:TiffIO._readInfo: Attribute '_imageInfoCacheIndex' defined outside __init__
+
+
+Report
+======
+797 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |48     |48       |=          |
++-----------+-------+---------+-----------+
+|refactor   |11     |11       |=          |
++-----------+-------+---------+-----------+
+|warning    |28     |28       |=          |
++-----------+-------+---------+-----------+
+|error      |8      |8        |=          |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |29          |
++-----------+------------+
+|C0111      |18          |
++-----------+------------+
+|W0621      |13          |
++-----------+------------+
+|W0201      |8           |
++-----------+------------+
+|E1103      |7           |
++-----------+------------+
+|W0612      |4           |
++-----------+------------+
+|R0915      |4           |
++-----------+------------+
+|R0912      |4           |
++-----------+------------+
+|R0914      |3           |
++-----------+------------+
+|W0702      |2           |
++-----------+------------+
+|W0613      |1           |
++-----------+------------+
+|E0711      |1           |
++-----------+------------+
+|C0302      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 8.41/10 (previous run: 8.41/10)
+That's pretty good. Good work mate.
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |959    |87.82 |959      |=          |
++----------+-------+------+---------+-----------+
+|docstring |11     |1.01  |11       |=          |
++----------+-------+------+---------+-----------+
+|comment   |62     |5.68  |62       |=          |
++----------+-------+------+---------+-----------+
+|empty     |60     |5.49  |60       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|method   |17     |17         |=          |5.88        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (TiffIO)
+
+
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
diff --git a/pylint/__init__.py.lint b/pylint/__init__.py.lint
new file mode 100644
index 0000000..b5a1466
--- /dev/null
+++ b/pylint/__init__.py.lint
@@ -0,0 +1,93 @@
+No config file found, using default configuration
+
+************* Module __init__
+W: 26,0: Redefining built-in 'open'
+C: 14,0: Invalid name "version" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 24,0: Invalid name "filename_object" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+16 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |2      |73       |-71.00     |
++-----------+-------+---------+-----------+
+|refactor   |0      |0        |=          |
++-----------+-------+---------+-----------+
+|warning    |1      |23       |-22.00     |
++-----------+-------+---------+-----------+
+|error      |0      |3        |-3.00      |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |2           |
++-----------+------------+
+|W0622      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 8.12/10 (previous run: 3.76/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |17     |68.00 |183      |-166.00    |
++----------+-------+------+---------+-----------+
+|docstring |4      |16.00 |52       |-48.00     |
++----------+-------+------+---------+-----------+
+|comment   |3      |12.00 |48       |-45.00     |
++----------+-------+------+---------+-----------+
+|empty     |1      |4.00  |27       |-26.00     |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|method   |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |13         |-13.00     |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/adscimage.py.lint b/pylint/adscimage.py.lint
new file mode 100644
index 0000000..86f4422
--- /dev/null
+++ b/pylint/adscimage.py.lint
@@ -0,0 +1,104 @@
+No config file found, using default configuration
+
+************* Module adscimage
+W: 91,0: FIXME ??? - made padding match header bytes keyword            
+C: 18,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 20,0:adscimage: Invalid name "adscimage" (should match [A-Z_][a-zA-Z0-9]+$)
+R: 20,0:adscimage: Too many public methods (25/20)
+
+
+Report
+======
+80 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |2      |2        |=          |
++-----------+-------+---------+-----------+
+|refactor   |1      |0        |+1.00      |
++-----------+-------+---------+-----------+
+|warning    |1      |6        |-5.00      |
++-----------+-------+---------+-----------+
+|error      |0      |31       |-31.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |2           |
++-----------+------------+
+|W0511      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 9.50/10 (previous run: -10.90/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |86     |64.66 |84       |+2.00      |
++----------+-------+------+---------+-----------+
+|docstring |24     |18.05 |24       |=          |
++----------+-------+------+---------+-----------+
+|comment   |9      |6.77  |9        |=          |
++----------+-------+------+---------+-----------+
+|empty     |14     |10.53 |16       |-2.00      |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (adscimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |4      |3          |+1.00      |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/benchheader.py.lint b/pylint/benchheader.py.lint
new file mode 100644
index 0000000..8216729
--- /dev/null
+++ b/pylint/benchheader.py.lint
@@ -0,0 +1,96 @@
+No config file found, using default configuration
+
+************* Module test.benchheader
+C: 11,0: Line too long (94/80)
+C:  1,0: Missing docstring
+C:  6,0: Invalid name "junk" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 11,0: Invalid name "images" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+10 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |4      |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |2           |
++-----------+------------+
+|C0301      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.00/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |10     |52.63 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |1      |5.26  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |3      |15.79 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |5      |26.32 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|method   |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/binaryimage.py.lint b/pylint/binaryimage.py.lint
new file mode 100644
index 0000000..a1afbaf
--- /dev/null
+++ b/pylint/binaryimage.py.lint
@@ -0,0 +1,126 @@
+No config file found, using default configuration
+
+************* Module binaryimage
+C: 46,0: Line too long (98/80)
+C: 48,0: Line too long (98/80)
+C: 79,0: Line too long (113/80)
+C: 84,0: Line too long (86/80)
+C: 98,0: Line too long (81/80)
+W:  6,0: Redefining built-in '__doc__'
+C:  1,0: Missing docstring
+C: 25,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 27,0:binaryimage: Invalid name "binaryimage" (should match [A-Z_][a-zA-Z0-9]+$)
+R: 51,4:binaryimage.read: Too many arguments (7/5)
+W: 51,4:binaryimage.read: Arguments number differs from overridden method
+C: 68,8:binaryimage.read: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 82,8:binaryimage.read: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 92,34:binaryimage.estimate_offset_value: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 90,4:binaryimage.estimate_offset_value: Method could be a function
+R: 27,0:binaryimage: Too many public methods (27/20)
+
+
+Report
+======
+53 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |11     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0301      |5           |
++-----------+------------+
+|C0103      |5           |
++-----------+------------+
+|W0622      |1           |
++-----------+------------+
+|W0221      |1           |
++-----------+------------+
+|R0913      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0201      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.98/10
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |65     |64.36 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |25     |24.75 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |3      |2.97  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |8      |7.92  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (binaryimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |5      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/bruker100image.py.lint b/pylint/bruker100image.py.lint
new file mode 100644
index 0000000..a454039
--- /dev/null
+++ b/pylint/bruker100image.py.lint
@@ -0,0 +1,118 @@
+No config file found, using default configuration
+
+************* Module bruker100image
+C: 58,0: Line too long (81/80)
+C: 66,0: Line too long (89/80)
+C:  1,0: Missing docstring
+C:  4,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:  9,4: Invalid name "Image" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 14,0:bruker100image: Invalid name "bruker100image" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 14,0:bruker100image: Missing docstring
+C: 17,4:bruker100image.toPIL16: Invalid name "toPIL16" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 23,8:bruker100image.toPIL16: Invalid name "PILimage" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 31,8:bruker100image.read: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 58,12:bruker100image.read: Invalid name "ar" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 66,12:bruker100image.read: Invalid name "M" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 14,0:bruker100image: Too many public methods (29/20)
+C: 85,4: Invalid name "b" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 88,8: Invalid name "r" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 95,4: Invalid name "e" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+61 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |15     |16       |-1.00      |
++-----------+-------+---------+-----------+
+|refactor   |1      |0        |+1.00      |
++-----------+-------+---------+-----------+
+|warning    |0      |6        |-6.00      |
++-----------+-------+---------+-----------+
+|error      |0      |22       |-22.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |11          |
++-----------+------------+
+|C0301      |2           |
++-----------+------------+
+|C0111      |2           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.38/10 (previous run: -14.00/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |66     |76.74 |63       |+3.00      |
++----------+-------+------+---------+-----------+
+|docstring |5      |5.81  |7        |-2.00      |
++----------+-------+------+---------+-----------+
+|comment   |7      |8.14  |7        |=          |
++----------+-------+------+---------+-----------+
+|empty     |8      |9.30  |10       |-2.00      |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (bruker100image)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |2      |2          |=          |100.00      |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/brukerimage.py.lint b/pylint/brukerimage.py.lint
new file mode 100644
index 0000000..500e8f9
--- /dev/null
+++ b/pylint/brukerimage.py.lint
@@ -0,0 +1,203 @@
+No config file found, using default configuration
+
+************* Module brukerimage
+C: 21,0: Line too long (86/80)
+C: 53,0: Line too long (94/80)
+C: 54,0: Line too long (84/80)
+C: 55,0: Line too long (123/80)
+C: 56,0: Line too long (155/80)
+C: 62,0: Line too long (102/80)
+C: 70,0: Line too long (87/80)
+C: 81,0: Line too long (110/80)
+C: 83,0: Line too long (91/80)
+C: 84,0: Line too long (88/80)
+C: 86,0: Line too long (93/80)
+C: 87,0: Line too long (89/80)
+C: 90,0: Line too long (100/80)
+C: 93,0: Line too long (155/80)
+C: 99,0: Line too long (90/80)
+C:100,0: Line too long (145/80)
+C:101,0: Line too long (131/80)
+C:103,0: Line too long (146/80)
+C:104,0: Line too long (97/80)
+C:105,0: Line too long (138/80)
+C:106,0: Line too long (122/80)
+C:107,0: Line too long (84/80)
+C:108,0: Line too long (207/80)
+C:110,0: Line too long (89/80)
+C:111,0: Line too long (119/80)
+C:112,0: Line too long (92/80)
+C:113,0: Line too long (91/80)
+C:116,0: Line too long (84/80)
+C:117,0: Line too long (98/80)
+C:118,0: Line too long (99/80)
+C:119,0: Line too long (145/80)
+C:121,0: Line too long (158/80)
+C:122,0: Line too long (118/80)
+C:123,0: Line too long (93/80)
+C:124,0: Line too long (91/80)
+C:126,0: Line too long (81/80)
+C:128,0: Line too long (88/80)
+C:129,0: Line too long (90/80)
+C:131,0: Line too long (201/80)
+C:132,0: Line too long (87/80)
+C:133,0: Line too long (84/80)
+C:134,0: Line too long (88/80)
+C:135,0: Line too long (90/80)
+C:136,0: Line too long (93/80)
+C:137,0: Line too long (139/80)
+C:139,0: Line too long (108/80)
+C:178,0: Line too long (99/80)
+C:216,0: Line too long (101/80)
+C:239,0: Line too long (117/80)
+C:246,0: Line too long (137/80)
+C:269,0: Line too long (121/80)
+C:280,0: Line too long (87/80)
+C:339,0: Line too long (86/80)
+C:355,0: Line too long (103/80)
+C:356,0: Line too long (92/80)
+C:367,0: Line too long (102/80)
+W: 41,0: TODO: int32 -> float32 conversion according to the "linear" keyword.
+W:245,0: TODO: check that the formula is OK, not reverted.
+W: 35,4: Redefining built-in 'bytes'
+W:  6,0: Redefining built-in '__doc__'
+C:  1,0: Missing docstring
+C: 30,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 35,4: Invalid name "bytes" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 37,0:brukerimage: Too many instance attributes (8/7)
+C: 37,0:brukerimage: Invalid name "brukerimage" (should match [A-Z_][a-zA-Z0-9]+$)
+R:193,4:brukerimage.read: Too many local variables (17/15)
+E:238,19:brukerimage.read: Undefined variable 'Except'
+W:226,16:brukerimage.read: Unused variable 'i'
+E:268,23:brukerimage.write: Undefined variable 'Except'
+W:341,44:brukerimage.gen_header: Using possibly undefined loop variable 'i'
+C:343,20:brukerimage.gen_header: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+E:343,24:brukerimage.gen_header: Too many arguments for format string
+R:318,4:brukerimage.gen_header: Too many branches (13/12)
+R: 37,0:brukerimage: Too many public methods (29/20)
+W:402,4:test: Redefining name 'sys' from outer scope (line 27)
+W:402,4:test: Redefining name 'time' from outer scope (line 29)
+W:402,4:test: Reimport 'sys' (imported line 27)
+W:402,4:test: Reimport 'time' (imported line 29)
+W:407,8:test: Unused variable 'res'
+
+
+Report
+======
+215 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |61     |2        |+59.00     |
++-----------+-------+---------+-----------+
+|refactor   |4      |0        |+4.00      |
++-----------+-------+---------+-----------+
+|warning    |11     |10       |+1.00      |
++-----------+-------+---------+-----------+
+|error      |3      |16       |-13.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0301      |56          |
++-----------+------------+
+|C0103      |4           |
++-----------+------------+
+|W0622      |2           |
++-----------+------------+
+|W0621      |2           |
++-----------+------------+
+|W0612      |2           |
++-----------+------------+
+|W0511      |2           |
++-----------+------------+
+|W0404      |2           |
++-----------+------------+
+|E0602      |2           |
++-----------+------------+
+|W0631      |1           |
++-----------+------------+
+|R0914      |1           |
++-----------+------------+
+|R0912      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+|E1305      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 5.77/10 (previous run: 1.15/10)
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |244    |59.95 |113      |+131.00    |
++----------+-------+------+---------+-----------+
+|docstring |124    |30.47 |37       |+87.00     |
++----------+-------+------+---------+-----------+
+|comment   |6      |1.47  |6        |=          |
++----------+-------+------+---------+-----------+
+|empty     |33     |8.11  |33       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (brukerimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |8      |4          |+4.00      |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/cbfimage.py.lint b/pylint/cbfimage.py.lint
new file mode 100644
index 0000000..47de725
--- /dev/null
+++ b/pylint/cbfimage.py.lint
@@ -0,0 +1,282 @@
+No config file found, using default configuration
+
+************* Module cbfimage
+C:  7,0: Line too long (81/80)
+C: 88,0: Line too long (128/80)
+C:131,0: Line too long (91/80)
+C:140,0: Line too long (131/80)
+C:142,0: Line too long (115/80)
+C:166,0: Line too long (93/80)
+C:204,0: Line too long (84/80)
+C:217,0: Line too long (128/80)
+C:237,0: Line too long (102/80)
+C:296,0: Line too long (90/80)
+C:301,0: Line too long (102/80)
+C:339,0: Line too long (98/80)
+C:350,0: Line too long (107/80)
+C:354,0: Line too long (106/80)
+C:546,0: Line too long (93/80)
+C:547,0: Line too long (93/80)
+C:548,0: Line too long (93/80)
+C:550,0: Line too long (81/80)
+C:606,0: Line too long (92/80)
+C:634,0: Line too long (83/80)
+C:638,0: Line too long (87/80)
+C:703,0: Line too long (84/80)
+C:739,0: Line too long (99/80)
+C:741,0: Line too long (91/80)
+C: 23,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 46,0:cbfimage: Too many instance attributes (9/7)
+C: 46,0:cbfimage: Invalid name "cbfimage" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 63,4:cbfimage.checkData: Invalid name "checkData" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 72,4:cbfimage._readheader: Invalid name "inStream" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 72,26:cbfimage._readheader: Invalid name "inStream" (should match [a-z_][a-z0-9_]{2,30}$)
+E: 88,117:cbfimage._readheader: Instance of 'cbfimage' has no 'fname' member
+C: 90,8:cbfimage._readheader: Invalid name "inStream2" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 92,8:cbfimage._readheader: Invalid name "iSepPos" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 97,12:cbfimage._readheader: Invalid name "oneLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:152,4:cbfimage._readbinary_byte_offset: Invalid name "inStream" (should match [a-z_][a-z0-9_]{2,30}$)
+C:152,38:cbfimage._readbinary_byte_offset: Invalid name "inStream" (should match [a-z_][a-z0-9_]{2,30}$)
+C:161,8:cbfimage._readbinary_byte_offset: Invalid name "startPos" (should match [a-z_][a-z0-9_]{2,30}$)
+C:167,12:cbfimage._readbinary_byte_offset: Invalid name "myData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:169,12:cbfimage._readbinary_byte_offset: Invalid name "myData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:215,12:cbfimage.write: Invalid name "nonCifHeaders" (should match [a-z_][a-z0-9_]{2,30}$)
+C:217,12:cbfimage.write: Invalid name "nonCifHeaders" (should match [a-z_][a-z0-9_]{2,30}$)
+R:175,4:cbfimage.write: Too many branches (17/12)
+R: 46,0:cbfimage: Too many public methods (25/20)
+C:255,4:CIF.__init__: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:255,23:CIF.__init__: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:283,4:CIF.loadCIF: Invalid name "loadCIF" (should match [a-z_][a-z0-9_]{2,30}$)
+C:283,4:CIF.loadCIF: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:283,4:CIF.loadCIF: Invalid name "_bKeepComment" (should match [a-z_][a-z0-9_]{2,30}$)
+C:283,22:CIF.loadCIF: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:283,36:CIF.loadCIF: Invalid name "_bKeepComment" (should match [a-z_][a-z0-9_]{2,30}$)
+C:309,4:CIF.isAscii: Invalid name "isAscii" (should match [a-z_][a-z0-9_]{2,30}$)
+C:309,4:CIF.isAscii: Invalid name "_strIn" (should match [a-z_][a-z0-9_]{2,30}$)
+C:309,16:CIF.isAscii: Invalid name "_strIn" (should match [a-z_][a-z0-9_]{2,30}$)
+C:318,8:CIF.isAscii: Invalid name "bIsAcii" (should match [a-z_][a-z0-9_]{2,30}$)
+C:321,16:CIF.isAscii: Invalid name "bIsAcii" (should match [a-z_][a-z0-9_]{2,30}$)
+C:327,4:CIF._readCIF: Invalid name "_readCIF" (should match [a-z_][a-z0-9_]{2,30}$)
+C:341,8:CIF._readCIF: Invalid name "lLinesRead" (should match [a-z_][a-z0-9_]{2,30}$)
+C:342,8:CIF._readCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:343,12:CIF._readCIF: Invalid name "sLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:344,12:CIF._readCIF: Invalid name "iPos" (should match [a-z_][a-z0-9_]{2,30}$)
+C:347,20:CIF._readCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:352,16:CIF._readCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:358,4:CIF._parseCIF: Invalid name "_parseCIF" (should match [a-z_][a-z0-9_]{2,30}$)
+C:358,4:CIF._parseCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:358,24:CIF._parseCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:374,8:CIF._parseCIF: Invalid name "lFields" (should match [a-z_][a-z0-9_]{2,30}$)
+C:387,16:CIF._parseCIF: Invalid name "f1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:388,16:CIF._parseCIF: Invalid name "lFields" (should match [a-z_][a-z0-9_]{2,30}$)
+C:394,42:CIF._parseCIF: More than one statement on a single line
+C:399,4:CIF._splitCIF: Invalid name "_splitCIF" (should match [a-z_][a-z0-9_]{2,30}$)
+C:399,4:CIF._splitCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:399,18:CIF._splitCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:408,8:CIF._splitCIF: Invalid name "lFields" (should match [a-z_][a-z0-9_]{2,30}$)
+C:414,16:CIF._splitCIF: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+C:421,24:CIF._splitCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:422,24:CIF._splitCIF: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+C:427,24:CIF._splitCIF: Invalid name "sText1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:428,24:CIF._splitCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:429,24:CIF._splitCIF: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+C:433,16:CIF._splitCIF: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+C:441,24:CIF._splitCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:442,24:CIF._splitCIF: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+C:448,24:CIF._splitCIF: Invalid name "sText1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:449,24:CIF._splitCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:450,24:CIF._splitCIF: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+C:460,16:CIF._splitCIF: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+C:465,24:CIF._splitCIF: Invalid name "sText1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:466,24:CIF._splitCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+C:467,24:CIF._splitCIF: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+C:469,16:CIF._splitCIF: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+C:472,16:CIF._splitCIF: Invalid name "sText1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:473,16:CIF._splitCIF: Invalid name "sText" (should match [a-z_][a-z0-9_]{2,30}$)
+R:399,4:CIF._splitCIF: Too many branches (18/12)
+R:399,4:CIF._splitCIF: Too many statements (53/50)
+C:478,4:CIF._analyseOneLoop: Invalid name "_analyseOneLoop" (should match [a-z_][a-z0-9_]{2,30}$)
+C:478,4:CIF._analyseOneLoop: Invalid name "lFields" (should match [a-z_][a-z0-9_]{2,30}$)
+C:478,4:CIF._analyseOneLoop: Invalid name "iStart" (should match [a-z_][a-z0-9_]{2,30}$)
+C:478,24:CIF._analyseOneLoop: Invalid name "lFields" (should match [a-z_][a-z0-9_]{2,30}$)
+C:478,33:CIF._analyseOneLoop: Invalid name "iStart" (should match [a-z_][a-z0-9_]{2,30}$)
+C:494,8:CIF._analyseOneLoop: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+C:500,16:CIF._analyseOneLoop: Invalid name "bFinished" (should match [a-z_][a-z0-9_]{2,30}$)
+R:478,4:CIF._analyseOneLoop: Too many branches (16/12)
+C:550,4:CIF.saveCIF: Invalid name "saveCIF" (should match [a-z_][a-z0-9_]{2,30}$)
+C:550,4:CIF.saveCIF: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:550,22:CIF.saveCIF: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:562,12:CIF.saveCIF: Invalid name "fFile" (should match [a-z_][a-z0-9_]{2,30}$)
+R:575,4:CIF.tostring: Too many local variables (16/15)
+C:575,4:CIF.tostring: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:575,23:CIF.tostring: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:585,8:CIF.tostring: Invalid name "lstStrCif" (should match [a-z_][a-z0-9_]{2,30}$)
+C:587,12:CIF.tostring: Invalid name "t" (should match [a-z_][a-z0-9_]{2,30}$)
+C:589,12:CIF.tostring: Invalid name "t" (should match [a-z_][a-z0-9_]{2,30}$)
+C:591,12:CIF.tostring: Invalid name "t" (should match [a-z_][a-z0-9_]{2,30}$)
+C:594,8:CIF.tostring: Invalid name "lKeys" (should match [a-z_][a-z0-9_]{2,30}$)
+C:601,12:CIF.tostring: Invalid name "sKey" (should match [a-z_][a-z0-9_]{2,30}$)
+C:608,12:CIF.tostring: Invalid name "sValue" (should match [a-z_][a-z0-9_]{2,30}$)
+C:610,16:CIF.tostring: Invalid name "lLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:612,16:CIF.tostring: Invalid name "sLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:614,20:CIF.tostring: Invalid name "lLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:616,20:CIF.tostring: Invalid name "lLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:618,16:CIF.tostring: Invalid name "sLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:620,20:CIF.tostring: Invalid name "lLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:622,20:CIF.tostring: Invalid name "lLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:623,12:CIF.tostring: Invalid name "lstStrCif" (should match [a-z_][a-z0-9_]{2,30}$)
+C:627,16:CIF.tostring: Invalid name "lKeys" (should match [a-z_][a-z0-9_]{2,30}$)
+C:628,16:CIF.tostring: Invalid name "llData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:629,16:CIF.tostring: Invalid name "lstStrCif" (should match [a-z_][a-z0-9_]{2,30}$)
+C:630,20:CIF.tostring: Invalid name "lData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:631,20:CIF.tostring: Invalid name "sLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:633,24:CIF.tostring: Invalid name "sRawValue" (should match [a-z_][a-z0-9_]{2,30}$)
+C:635,28:CIF.tostring: Invalid name "lstStrCif" (should match [a-z_][a-z0-9_]{2,30}$)
+C:636,28:CIF.tostring: Invalid name "sLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:643,32:CIF.tostring: Invalid name "lstStrCif" (should match [a-z_][a-z0-9_]{2,30}$)
+C:644,32:CIF.tostring: Invalid name "sLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:646,32:CIF.tostring: Invalid name "sLine" (should match [a-z_][a-z0-9_]{2,30}$)
+R:575,4:CIF.tostring: Too many branches (25/12)
+R:575,4:CIF.tostring: Too many statements (58/50)
+C:652,4:CIF.exists: Invalid name "sKey" (should match [a-z_][a-z0-9_]{2,30}$)
+C:652,21:CIF.exists: Invalid name "sKey" (should match [a-z_][a-z0-9_]{2,30}$)
+C:661,8:CIF.exists: Invalid name "bExists" (should match [a-z_][a-z0-9_]{2,30}$)
+C:665,20:CIF.exists: Invalid name "bExists" (should match [a-z_][a-z0-9_]{2,30}$)
+C:669,4:CIF.existsInLoop: Invalid name "existsInLoop" (should match [a-z_][a-z0-9_]{2,30}$)
+C:669,4:CIF.existsInLoop: Invalid name "sKey" (should match [a-z_][a-z0-9_]{2,30}$)
+C:669,27:CIF.existsInLoop: Invalid name "sKey" (should match [a-z_][a-z0-9_]{2,30}$)
+C:680,8:CIF.existsInLoop: Invalid name "bExists" (should match [a-z_][a-z0-9_]{2,30}$)
+C:685,24:CIF.existsInLoop: Invalid name "bExists" (should match [a-z_][a-z0-9_]{2,30}$)
+C:689,4:CIF.loadCHIPLOT: Invalid name "loadCHIPLOT" (should match [a-z_][a-z0-9_]{2,30}$)
+C:689,4:CIF.loadCHIPLOT: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:689,26:CIF.loadCHIPLOT: Invalid name "_strFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:702,8:CIF.loadCHIPLOT: Invalid name "lInFile" (should match [a-z_][a-z0-9_]{2,30}$)
+C:707,12:CIF.loadCHIPLOT: Invalid name "iLenData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:709,12:CIF.loadCHIPLOT: Invalid name "iLenData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:710,8:CIF.loadCHIPLOT: Invalid name "lOneLoop" (should match [a-z_][a-z0-9_]{2,30}$)
+C:712,12:CIF.loadCHIPLOT: Invalid name "f2ThetaMin" (should match [a-z_][a-z0-9_]{2,30}$)
+C:714,16:CIF.loadCHIPLOT: Invalid name "sLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:717,12:CIF.loadCHIPLOT: Invalid name "f2ThetaMax" (should match [a-z_][a-z0-9_]{2,30}$)
+C:718,12:CIF.loadCHIPLOT: Invalid name "limitsOK" (should match [a-z_][a-z0-9_]{2,30}$)
+C:721,12:CIF.loadCHIPLOT: Invalid name "limitsOK" (should match [a-z_][a-z0-9_]{2,30}$)
+C:722,12:CIF.loadCHIPLOT: Invalid name "f2ThetaMin" (should match [a-z_][a-z0-9_]{2,30}$)
+C:723,12:CIF.loadCHIPLOT: Invalid name "f2ThetaMax" (should match [a-z_][a-z0-9_]{2,30}$)
+C:725,12:CIF.loadCHIPLOT: Invalid name "sLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C:726,12:CIF.loadCHIPLOT: Invalid name "sCleaned" (should match [a-z_][a-z0-9_]{2,30}$)
+C:730,20:CIF.loadCHIPLOT: Invalid name "f2Theta" (should match [a-z_][a-z0-9_]{2,30}$)
+C:732,24:CIF.loadCHIPLOT: Invalid name "f2ThetaMin" (should match [a-z_][a-z0-9_]{2,30}$)
+C:734,24:CIF.loadCHIPLOT: Invalid name "f2ThetaMax" (should match [a-z_][a-z0-9_]{2,30}$)
+C:737,12:CIF.loadCHIPLOT: Invalid name "iLenData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:743,12:CIF.loadCHIPLOT: Invalid name "f2ThetaMax" (should match [a-z_][a-z0-9_]{2,30}$)
+C:744,12:CIF.loadCHIPLOT: Invalid name "f2ThetaMin" (should match [a-z_][a-z0-9_]{2,30}$)
+C:752,4:CIF.LoopHasKey: Invalid name "LoopHasKey" (should match [a-z_][a-z0-9_]{2,30}$)
+R:245,0:CIF: Too many public methods (25/20)
+
+
+Report
+======
+442 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |159    |168      |-9.00      |
++-----------+-------+---------+-----------+
+|refactor   |10     |6        |+4.00      |
++-----------+-------+---------+-----------+
+|warning    |0      |11       |-11.00     |
++-----------+-------+---------+-----------+
+|error      |1      |22       |-21.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |134         |
++-----------+------------+
+|C0301      |24          |
++-----------+------------+
+|R0912      |4           |
++-----------+------------+
+|R0915      |2           |
++-----------+------------+
+|R0904      |2           |
++-----------+------------+
+|R0914      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+|E1101      |1           |
++-----------+------------+
+|C0321      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.06/10 (previous run: 3.20/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |471    |64.08 |514      |-43.00     |
++----------+-------+------+---------+-----------+
+|docstring |172    |23.40 |173      |-1.00      |
++----------+-------+------+---------+-----------+
+|comment   |17     |2.31  |15       |+2.00      |
++----------+-------+------+---------+-----------+
+|empty     |75     |10.20 |92       |-17.00     |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (cbfimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |2      |2          |=          |100.00      |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|method   |22     |21         |+1.00      |100.00      |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/compression.py.lint b/pylint/compression.py.lint
new file mode 100644
index 0000000..222ab27
--- /dev/null
+++ b/pylint/compression.py.lint
@@ -0,0 +1,160 @@
+No config file found, using default configuration
+
+************* Module compression
+C: 69,0: Line too long (101/80)
+C: 73,0: Line too long (127/80)
+C: 75,0: Line too long (120/80)
+C: 77,0: Line too long (97/80)
+C: 87,0: Line too long (105/80)
+C:162,0: Line too long (98/80)
+C:211,0: Line too long (110/80)
+C:273,0: Line too long (96/80)
+C:313,0: Line too long (89/80)
+C:319,0: Line too long (89/80)
+C:399,0: Line too long (83/80)
+C:420,0: Line too long (84/80)
+W: 17,4: Redefining built-in 'str'
+C: 17,4: Invalid name "str" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 18,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 25,4: Invalid name "gzip" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 31,4: Invalid name "bz2" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 37,4: Invalid name "zlib" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+E: 43,28:md5sum: Module 'hashlib' has no 'md5' member
+C: 56,0:decGzip: Invalid name "decGzip" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 67,8:decGzip: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 76,15:decGzip: Catching too general exception Exception
+C: 74,12:decGzip: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 81,20:decGzip: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 91,0:decBzip2: Invalid name "decBzip2" (should match [a-z_][a-z0-9_]{2,30}$)
+C:102,0:decZlib: Invalid name "decZlib" (should match [a-z_][a-z0-9_]{2,30}$)
+C:113,0:decByteOffet_python: Invalid name "decByteOffet_python" (should match [a-z_][a-z0-9_]{2,30}$)
+C:123,4:decByteOffet_python: Invalid name "dataOut" (should match [a-z_][a-z0-9_]{2,30}$)
+C:148,0:decByteOffet_weave: Invalid name "decByteOffet_weave" (should match [a-z_][a-z0-9_]{2,30}$)
+C:164,4:decByteOffet_weave: Invalid name "dataIn" (should match [a-z_][a-z0-9_]{2,30}$)
+C:165,4:decByteOffet_weave: Invalid name "n" (should match [a-z_][a-z0-9_]{2,30}$)
+C:166,4:decByteOffet_weave: Invalid name "dataOut" (should match [a-z_][a-z0-9_]{2,30}$)
+C:167,4:decByteOffet_weave: Invalid name "codeC" (should match [a-z_][a-z0-9_]{2,30}$)
+C:211,4:decByteOffet_weave: Invalid name "rc" (should match [a-z_][a-z0-9_]{2,30}$)
+W:165,4:decByteOffet_weave: Unused variable 'n'
+C:218,0:decByteOffet_numpy: Invalid name "decByteOffet_numpy" (should match [a-z_][a-z0-9_]{2,30}$)
+W:218,31:decByteOffet_numpy: Unused argument 'size'
+C:259,0:decByteOffet_cython: Invalid name "decByteOffet_cython" (should match [a-z_][a-z0-9_]{2,30}$)
+W:272,24:decByteOffet_cython: Unused variable 'error'
+C:278,0:compByteOffet_numpy: Invalid name "compByteOffet_numpy" (should match [a-z_][a-z0-9_]{2,30}$)
+R:278,0:compByteOffet_numpy: Too many branches (14/12)
+C:328,0:decTY1: Invalid name "decTY1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:360,0: Invalid name "decKM4CCD" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:362,0:compTY1: Invalid name "compTY1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:387,0:decPCK: Invalid name "decPCK" (should match [a-z_][a-z0-9_]{2,30}$)
+C:387,0:decPCK: Invalid name "overflowPix" (should match [a-z_][a-z0-9_]{2,30}$)
+C:387,41:decPCK: Invalid name "overflowPix" (should match [a-z_][a-z0-9_]{2,30}$)
+W:398,24:decPCK: Unused variable 'error'
+C:409,0:compPCK: Invalid name "compPCK" (should match [a-z_][a-z0-9_]{2,30}$)
+W:419,24:compPCK: Unused variable 'error'
+
+
+Report
+======
+223 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |41     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |7      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |29          |
++-----------+------------+
+|C0301      |12          |
++-----------+------------+
+|W0612      |4           |
++-----------+------------+
+|W0703      |1           |
++-----------+------------+
+|W0622      |1           |
++-----------+------------+
+|W0613      |1           |
++-----------+------------+
+|R0912      |1           |
++-----------+------------+
+|E1101      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.58/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |284    |67.78 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |100    |23.87 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |0.48  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |33     |7.88  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (compression)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|method   |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|function |14     |NC         |NC         |100.00      |85.71    |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/converters.py.lint b/pylint/converters.py.lint
new file mode 100644
index 0000000..1c84883
--- /dev/null
+++ b/pylint/converters.py.lint
@@ -0,0 +1,88 @@
+************* Module converters
+W: 14,0: Unused import types
+
+
+Report
+======
+17 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |0      |0        |=          |
++-----------+-------+---------+-----------+
+|refactor   |0      |0        |=          |
++-----------+-------+---------+-----------+
+|warning    |1      |1        |=          |
++-----------+-------+---------+-----------+
+|error      |0      |0        |=          |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|W0611      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 9.41/10 (previous run: 9.41/10)
+So close to being perfect...
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |27     |50.00 |27       |=          |
++----------+-------+------+---------+-----------+
+|docstring |19     |35.19 |19       |=          |
++----------+-------+------+---------+-----------+
+|comment   |2      |3.70  |2        |=          |
++----------+-------+------+---------+-----------+
+|empty     |6      |11.11 |6        |=          |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|method   |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|function |3      |3          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
diff --git a/pylint/datIO.py.lint b/pylint/datIO.py.lint
new file mode 100644
index 0000000..daf62e4
--- /dev/null
+++ b/pylint/datIO.py.lint
@@ -0,0 +1,107 @@
+************* Module datIO
+C:  1,0: Invalid name "datIO" (should match (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$)
+C: 14,0:fabiodata: Invalid name "fabiodata" (should match [A-Z_][a-zA-Z0-9]+$)
+W: 36,31:fabiodata.read: Unused argument 'frame'
+W: 36,19:fabiodata.read: Unused argument 'fname'
+R: 36,4:fabiodata.read: Method could be a function
+R: 14,0:fabiodata: Too few public methods (1/2)
+C: 45,0:columnfile: Invalid name "columnfile" (should match [A-Z_][a-zA-Z0-9]+$)
+W: 47,4:columnfile.read: Signature differs from overridden method
+F: 48,8:columnfile.read: Unable to import 'cf_io'
+R: 45,0:columnfile: Too few public methods (1/2)
+
+
+Report
+======
+27 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |3      |3        |=          |
++-----------+-------+---------+-----------+
+|refactor   |3      |3        |=          |
++-----------+-------+---------+-----------+
+|warning    |3      |3        |=          |
++-----------+-------+---------+-----------+
+|error      |0      |0        |=          |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |3           |
++-----------+------------+
+|W0613      |2           |
++-----------+------------+
+|R0903      |2           |
++-----------+------------+
+|W0222      |1           |
++-----------+------------+
+|R0201      |1           |
++-----------+------------+
+|F0401      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.67/10 (previous run: 6.67/10)
+This is okay-ish, but I'm sure you can do better.
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |27     |43.55 |27       |=          |
++----------+-------+------+---------+-----------+
+|docstring |23     |37.10 |23       |=          |
++----------+-------+------+---------+-----------+
+|comment   |3      |4.84  |3        |=          |
++----------+-------+------+---------+-----------+
+|empty     |9      |14.52 |9        |=          |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|class    |2      |2          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |3      |3          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
diff --git a/pylint/dm3image.py.lint b/pylint/dm3image.py.lint
new file mode 100644
index 0000000..29e08bb
--- /dev/null
+++ b/pylint/dm3image.py.lint
@@ -0,0 +1,150 @@
+No config file found, using default configuration
+
+************* Module dm3image
+C: 67,0: Line too long (81/80)
+C: 70,0: Line too long (85/80)
+C:131,0: Line too long (97/80)
+C:148,0: Line too long (112/80)
+C:150,0: Line too long (101/80)
+C:166,0: Line too long (95/80)
+C:177,0: Line too long (88/80)
+C:182,0: Line too long (101/80)
+C:186,0: Line too long (109/80)
+C:193,0: Line too long (86/80)
+C:202,0: Line too long (97/80)
+C:206,0: Line too long (105/80)
+C:211,0: Line too long (98/80)
+C:212,0: Line too long (95/80)
+C:213,0: Line too long (94/80)
+C:214,0: Line too long (83/80)
+C:218,0: Line too long (94/80)
+C: 14,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 46,0:dm3image: Too many instance attributes (19/7)
+C: 46,0:dm3image: Invalid name "dm3image" (should match [A-Z_][a-zA-Z0-9]+$)
+W: 62,4:dm3image._readheader: Arguments number differs from overridden method
+C: 89,56:dm3image.read: More than one statement on a single line
+W:106,39:dm3image.readbytes: Redefining built-in 'format'
+C:106,4:dm3image.readbytes: Missing docstring
+C:118,4:dm3image.read_tag_group: Missing docstring
+C:127,4:dm3image.read_tag_entry: Missing docstring
+W:168,12:dm3image.read_tag_type: Redefining built-in 'format'
+C:144,4:dm3image.read_tag_type: Missing docstring
+W:180,16:dm3image.read_tag_type: Unused variable 'struct_name_length'
+W:162,16:dm3image.read_tag_type: Unused variable 'dump'
+C:217,4:dm3image.read_data: Missing docstring
+R: 46,0:dm3image: Too many public methods (30/20)
+W: 67,8:dm3image._readheader: Attribute 'byte_order' defined outside __init__
+W:158,12:dm3image.read_tag_type: Attribute 'data_type' defined outside __init__
+W: 82,8:dm3image.read: Attribute 'infile' defined outside __init__
+W: 75,12:dm3image._readheader: Attribute 'swap' defined outside __init__
+
+
+Report
+======
+135 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |25     |24       |+1.00      |
++-----------+-------+---------+-----------+
+|refactor   |2      |1        |+1.00      |
++-----------+-------+---------+-----------+
+|warning    |9      |24       |-15.00     |
++-----------+-------+---------+-----------+
+|error      |0      |33       |-33.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0301      |17          |
++-----------+------------+
+|C0111      |5           |
++-----------+------------+
+|W0201      |4           |
++-----------+------------+
+|W0622      |2           |
++-----------+------------+
+|W0612      |2           |
++-----------+------------+
+|C0103      |2           |
++-----------+------------+
+|W0221      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+|C0321      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.33/10 (previous run: -10.00/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |162    |80.60 |134      |+28.00     |
++----------+-------+------+---------+-----------+
+|docstring |14     |6.97  |14       |=          |
++----------+-------+------+---------+-----------+
+|comment   |5      |2.49  |10       |-5.00      |
++----------+-------+------+---------+-----------+
+|empty     |20     |9.95  |32       |-12.00     |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (dm3image)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |8      |7          |+1.00      |37.50       |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/edfimage.py.lint b/pylint/edfimage.py.lint
new file mode 100644
index 0000000..4e48b62
--- /dev/null
+++ b/pylint/edfimage.py.lint
@@ -0,0 +1,308 @@
+No config file found, using default configuration
+
+************* Module edfimage
+C: 89,0: Line too long (91/80)
+C:109,0: Line too long (113/80)
+C:162,0: Line too long (137/80)
+C:167,0: Line too long (141/80)
+C:177,0: Line too long (141/80)
+C:192,0: Line too long (108/80)
+C:207,0: Line too long (85/80)
+C:216,0: Line too long (125/80)
+C:217,0: Line too long (118/80)
+C:230,0: Line too long (93/80)
+C:231,0: Line too long (93/80)
+C:233,0: Line too long (94/80)
+C:234,0: Line too long (92/80)
+C:255,0: Line too long (89/80)
+C:262,0: Line too long (115/80)
+C:269,0: Line too long (81/80)
+C:277,0: Line too long (105/80)
+C:279,0: Line too long (92/80)
+C:294,0: Line too long (81/80)
+C:303,0: Line too long (104/80)
+C:306,0: Line too long (113/80)
+C:309,0: Line too long (96/80)
+C:311,0: Line too long (85/80)
+C:318,0: Line too long (104/80)
+C:359,0: Line too long (110/80)
+C:367,0: Line too long (85/80)
+C:402,0: Line too long (82/80)
+C:418,0: Line too long (117/80)
+C:424,0: Line too long (90/80)
+C:425,0: Line too long (89/80)
+C:446,0: Line too long (92/80)
+C:493,0: Line too long (95/80)
+C:497,0: Line too long (87/80)
+C:508,0: Line too long (89/80)
+C:513,0: Line too long (112/80)
+C:556,0: Line too long (126/80)
+C:560,0: Line too long (113/80)
+C:570,0: Line too long (118/80)
+C:589,0: Line too long (127/80)
+C:599,0: Line too long (93/80)
+C:600,0: Line too long (93/80)
+C:602,0: Line too long (94/80)
+C:603,0: Line too long (92/80)
+C:622,0: Line too long (90/80)
+C:625,0: Line too long (107/80)
+C:672,0: Line too long (92/80)
+C:708,0: Line too long (119/80)
+C:718,0: Line too long (82/80)
+C:730,0: Line too long (119/80)
+C:740,0: Line too long (94/80)
+C:756,0: Line too long (82/80)
+C:774,0: Line too long (90/80)
+C:798,0: Line too long (86/80)
+C:823,0: Line too long (108/80)
+C:880,0: Line too long (150/80)
+C: 23,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 93,0:Frame: Too many instance attributes (13/7)
+C:128,12:Frame.__init__: Invalid name "iFrame" (should match [a-z_][a-z0-9_]{2,30}$)
+C:112,8:Frame.__init__: Invalid name "capsHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:183,8:Frame.parseheader: Invalid name "iDim" (should match [a-z_][a-z0-9_]{2,30}$)
+C:186,12:Frame.parseheader: Invalid name "strDim" (should match [a-z_][a-z0-9_]{2,30}$)
+C:194,20:Frame.parseheader: Invalid name "iDim" (should match [a-z_][a-z0-9_]{2,30}$)
+C:200,20:Frame.parseheader: Invalid name "iDim" (should match [a-z_][a-z0-9_]{2,30}$)
+C:204,16:Frame.parseheader: Invalid name "iDim" (should match [a-z_][a-z0-9_]{2,30}$)
+C:220,15:Frame.parseheader: Invalid name "n" (should match [a-z_][a-z0-9_]{2,30}$)
+R:132,4:Frame.parseheader: Too many branches (25/12)
+R:132,4:Frame.parseheader: Too many statements (70/50)
+C:241,4:Frame.getData: Invalid name "getData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:266,20:Frame.getData: Invalid name "fileData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:279,24:Frame.getData: Invalid name "myData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:280,24:Frame.getData: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:283,20:Frame.getData: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:285,20:Frame.getData: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:288,20:Frame.getData: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:291,20:Frame.getData: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:295,20:Frame.getData: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:298,16:Frame.getData: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:304,16:Frame.getData: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:307,16:Frame.getData: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+R:241,4:Frame.getData: Too many branches (23/12)
+R:241,4:Frame.getData: Too many statements (63/50)
+C:315,4:Frame.setData: Invalid name "setData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:319,4:Frame.getByteCode: Invalid name "getByteCode" (should match [a-z_][a-z0-9_]{2,30}$)
+C:319,4:Frame.getByteCode: Missing docstring
+C:324,4:Frame.setByteCode: Invalid name "setByteCode" (should match [a-z_][a-z0-9_]{2,30}$)
+C:324,4:Frame.setByteCode: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:324,4:Frame.setByteCode: Missing docstring
+C:324,26:Frame.setByteCode: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+R:328,4:Frame.getEdfBlock: Too many local variables (22/15)
+C:328,4:Frame.getEdfBlock: Invalid name "getEdfBlock" (should match [a-z_][a-z0-9_]{2,30}$)
+C:328,4:Frame.getEdfBlock: Invalid name "fit2dMode" (should match [a-z_][a-z0-9_]{2,30}$)
+C:328,43:Frame.getEdfBlock: Invalid name "fit2dMode" (should match [a-z_][a-z0-9_]{2,30}$)
+C:341,8:Frame.getEdfBlock: Invalid name "fit2dMode" (should match [a-z_][a-z0-9_]{2,30}$)
+C:343,12:Frame.getEdfBlock: Invalid name "KEY" (should match [a-z_][a-z0-9_]{2,30}$)
+C:351,8:Frame.getEdfBlock: Invalid name "capsHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:353,8:Frame.getEdfBlock: Invalid name "listHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:359,12:Frame.getEdfBlock: Invalid name "KEY" (should match [a-z_][a-z0-9_]{2,30}$)
+C:392,8:Frame.getEdfBlock: Invalid name "approxHeaderSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:394,12:Frame.getEdfBlock: Invalid name "approxHeaderSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:395,8:Frame.getEdfBlock: Invalid name "approxHeaderSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:403,8:Frame.getEdfBlock: Invalid name "preciseSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:406,12:Frame.getEdfBlock: Invalid name "strKey" (should match [a-z_][a-z0-9_]{2,30}$)
+C:410,12:Frame.getEdfBlock: Invalid name "strValue" (should match [a-z_][a-z0-9_]{2,30}$)
+C:415,12:Frame.getEdfBlock: Invalid name "preciseSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:421,20:Frame.getEdfBlock: Invalid name "headerSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:425,24:Frame.getEdfBlock: Invalid name "headerSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:427,20:Frame.getEdfBlock: Invalid name "preciseSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:431,12:Frame.getEdfBlock: Invalid name "headerSize" (should match [a-z_][a-z0-9_]{2,30}$)
+R:328,4:Frame.getEdfBlock: Too many branches (24/12)
+R:328,4:Frame.getEdfBlock: Too many statements (82/50)
+C:437,0:edfimage: Invalid name "edfimage" (should match [A-Z_][a-zA-Z0-9]+$)
+W:445,15:edfimage.__init__: Catching too general exception Exception
+C:471,4:edfimage.checkHeader: Invalid name "checkHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:483,4:edfimage._readHeaderBlock: Invalid name "_readHeaderBlock" (should match [a-z_][a-z0-9_]{2,30}$)
+C:490,8:edfimage._readHeaderBlock: Invalid name "MAX_HEADER_SIZE" (should match [a-z_][a-z0-9_]{2,30}$)
+W:504,19:edfimage._readHeaderBlock: Catching too general exception Exception
+C:509,20:edfimage._readHeaderBlock: Invalid name "MAX_HEADER_SIZE" (should match [a-z_][a-z0-9_]{2,30}$)
+C:538,8:edfimage._readheader: Invalid name "bContinue" (should match [a-z_][a-z0-9_]{2,30}$)
+C:542,16:edfimage._readheader: Invalid name "bContinue" (should match [a-z_][a-z0-9_]{2,30}$)
+C:561,16:edfimage._readheader: Invalid name "bContinue" (should match [a-z_][a-z0-9_]{2,30}$)
+C:620,8:edfimage.getframe: Invalid name "newImage" (should match [a-z_][a-z0-9_]{2,30}$)
+C:623,12:edfimage.getframe: Invalid name "newImage" (should match [a-z_][a-z0-9_]{2,30}$)
+C:626,12:edfimage.getframe: Invalid name "newImage" (should match [a-z_][a-z0-9_]{2,30}$)
+C:638,8:edfimage.previous: Invalid name "newImage" (should match [a-z_][a-z0-9_]{2,30}$)
+C:640,12:edfimage.previous: Invalid name "newImage" (should match [a-z_][a-z0-9_]{2,30}$)
+C:642,12:edfimage.previous: Invalid name "newFrameId" (should match [a-z_][a-z0-9_]{2,30}$)
+C:643,12:edfimage.previous: Invalid name "newImage" (should match [a-z_][a-z0-9_]{2,30}$)
+C:649,8:edfimage.next: Invalid name "newImage" (should match [a-z_][a-z0-9_]{2,30}$)
+C:651,12:edfimage.next: Invalid name "newImage" (should match [a-z_][a-z0-9_]{2,30}$)
+C:653,12:edfimage.next: Invalid name "newFrameId" (should match [a-z_][a-z0-9_]{2,30}$)
+C:654,12:edfimage.next: Invalid name "newImage" (should match [a-z_][a-z0-9_]{2,30}$)
+W:658,4:edfimage.write: Arguments number differs from overridden method
+C:658,4:edfimage.write: Invalid name "fit2dMode" (should match [a-z_][a-z0-9_]{2,30}$)
+C:658,44:edfimage.write: Invalid name "fit2dMode" (should match [a-z_][a-z0-9_]{2,30}$)
+C:675,4:edfimage.appendFrame: Invalid name "appendFrame" (should match [a-z_][a-z0-9_]{2,30}$)
+C:688,4:edfimage.deleteFrame: Invalid name "deleteFrame" (should match [a-z_][a-z0-9_]{2,30}$)
+C:688,4:edfimage.deleteFrame: Invalid name "frameNb" (should match [a-z_][a-z0-9_]{2,30}$)
+C:688,26:edfimage.deleteFrame: Invalid name "frameNb" (should match [a-z_][a-z0-9_]{2,30}$)
+C:700,4:edfimage.fastReadData: Invalid name "fastReadData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:711,36:edfimage.fastReadData: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+W:717,15:edfimage.fastReadData: Catching too general exception Exception
+C:721,4:edfimage.fastReadROI: Invalid name "fastReadROI" (should match [a-z_][a-z0-9_]{2,30}$)
+C:742,8:edfimage.fastReadROI: Invalid name "d1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:749,36:edfimage.fastReadROI: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+W:755,15:edfimage.fastReadROI: Catching too general exception Exception
+C:763,4:edfimage.getNbFrames: Invalid name "getNbFrames" (should match [a-z_][a-z0-9_]{2,30}$)
+C:768,4:edfimage.setNbFrames: Invalid name "setNbFrames" (should match [a-z_][a-z0-9_]{2,30}$)
+C:777,4:edfimage.getHeader: Invalid name "getHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:782,4:edfimage.setHeader: Invalid name "setHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:782,4:edfimage.setHeader: Invalid name "_dictHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:782,24:edfimage.setHeader: Invalid name "_dictHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:793,4:edfimage.delHeader: Invalid name "delHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:800,4:edfimage.getHeaderKeys: Invalid name "getHeaderKeys" (should match [a-z_][a-z0-9_]{2,30}$)
+C:805,4:edfimage.setHeaderKeys: Invalid name "setHeaderKeys" (should match [a-z_][a-z0-9_]{2,30}$)
+C:805,4:edfimage.setHeaderKeys: Invalid name "_listtHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:805,28:edfimage.setHeaderKeys: Invalid name "_listtHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:818,4:edfimage.delHeaderKeys: Invalid name "delHeaderKeys" (should match [a-z_][a-z0-9_]{2,30}$)
+C:825,4:edfimage.getData: Invalid name "getData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:831,8:edfimage.getData: Invalid name "npaData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:833,12:edfimage.getData: Invalid name "npaData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:836,12:edfimage.getData: Invalid name "npaData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:840,16:edfimage.getData: Invalid name "npaData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:843,4:edfimage.setData: Invalid name "setData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:855,4:edfimage.delData: Invalid name "delData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:862,4:edfimage.getCapsHeader: Invalid name "getCapsHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:869,4:edfimage.setCapsHeader: Invalid name "setCapsHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:875,4:edfimage.delCapsHeader: Invalid name "delCapsHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C:882,4:edfimage.getDim1: Invalid name "getDim1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:882,4:edfimage.getDim1: Missing docstring
+C:884,4:edfimage.setDim1: Invalid name "setDim1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:884,4:edfimage.setDim1: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:884,4:edfimage.setDim1: Missing docstring
+C:884,22:edfimage.setDim1: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:894,4:edfimage.getDim2: Invalid name "getDim2" (should match [a-z_][a-z0-9_]{2,30}$)
+C:894,4:edfimage.getDim2: Missing docstring
+C:896,4:edfimage.setDim2: Invalid name "setDim2" (should match [a-z_][a-z0-9_]{2,30}$)
+C:896,4:edfimage.setDim2: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:896,4:edfimage.setDim2: Missing docstring
+C:896,22:edfimage.setDim2: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:907,4:edfimage.getDims: Invalid name "getDims" (should match [a-z_][a-z0-9_]{2,30}$)
+C:907,4:edfimage.getDims: Missing docstring
+C:910,4:edfimage.getByteCode: Invalid name "getByteCode" (should match [a-z_][a-z0-9_]{2,30}$)
+C:910,4:edfimage.getByteCode: Missing docstring
+C:912,4:edfimage.setByteCode: Invalid name "setByteCode" (should match [a-z_][a-z0-9_]{2,30}$)
+C:912,4:edfimage.setByteCode: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:912,4:edfimage.setByteCode: Missing docstring
+C:912,26:edfimage.setByteCode: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:922,4:edfimage.getBpp: Invalid name "getBpp" (should match [a-z_][a-z0-9_]{2,30}$)
+C:922,4:edfimage.getBpp: Missing docstring
+C:924,4:edfimage.setBpp: Invalid name "setBpp" (should match [a-z_][a-z0-9_]{2,30}$)
+C:924,4:edfimage.setBpp: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:924,4:edfimage.setBpp: Missing docstring
+C:924,21:edfimage.setBpp: Invalid name "_iVal" (should match [a-z_][a-z0-9_]{2,30}$)
+R:437,0:edfimage: Too many public methods (54/20)
+
+
+Report
+======
+597 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |180    |180      |=          |
++-----------+-------+---------+-----------+
+|refactor   |9      |9        |=          |
++-----------+-------+---------+-----------+
+|warning    |5      |15       |-10.00     |
++-----------+-------+---------+-----------+
+|error      |0      |5        |-5.00      |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |114         |
++-----------+------------+
+|C0301      |55          |
++-----------+------------+
+|C0111      |11          |
++-----------+------------+
+|W0703      |4           |
++-----------+------------+
+|R0915      |3           |
++-----------+------------+
+|R0912      |3           |
++-----------+------------+
+|W0221      |1           |
++-----------+------------+
+|R0914      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.75/10 (previous run: 6.12/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |631    |69.26 |623      |+8.00      |
++----------+-------+------+---------+-----------+
+|docstring |202    |22.17 |205      |-3.00      |
++----------+-------+------+---------+-----------+
+|comment   |11     |1.21  |11       |=          |
++----------+-------+------+---------+-----------+
+|empty     |67     |7.35  |70       |-3.00      |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (edfimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |2      |2          |=          |100.00      |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|method   |46     |47         |-1.00      |76.09       |73.91    |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/fabian_mar_header.py.lint b/pylint/fabian_mar_header.py.lint
new file mode 100644
index 0000000..4676403
--- /dev/null
+++ b/pylint/fabian_mar_header.py.lint
@@ -0,0 +1,421 @@
+************* Module fabian_mar_header
+C: 11:obselete: Invalid name "obselete" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 11:obselete: Missing docstring
+W: 11:obselete: Class has no __init__ method
+C: 18:obselete._readheader_fabian: Invalid name "l" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+C: 19:obselete._readheader_fabian: Invalid name "l" (should match [a-z_][a-zA-Z0-9_]{2,30}$)
+E: 24:obselete._readheader_fabian: Undefined variable 'N'
+E: 24:obselete._readheader_fabian: Undefined variable 'N'
+C: 27:obselete._readheader_fabian: Comma not followed by a space
+        self.header['header_major_version'] = N.fromstring(l[20:24],N.uint32)[0]  # UINT32 ; /* header_major_version (n.) */
+                                                                   ^^
+E: 27:obselete._readheader_fabian: Undefined variable 'N'
+E: 27:obselete._readheader_fabian: Undefined variable 'N'
+C: 28:obselete._readheader_fabian: Comma not followed by a space
+        self.header['header_minor_version'] = N.fromstring(l[24:28],N.uint32)[0]  # UINT32 ; /* header_minor_version (.n) */
+                                                                   ^^
+E: 28:obselete._readheader_fabian: Undefined variable 'N'
+E: 28:obselete._readheader_fabian: Undefined variable 'N'
+C: 29:obselete._readheader_fabian: Comma not followed by a space
+        self.header['header_byte_orde'] = N.fromstring(l[28:32],N.uint32)[0]  # UINT32 r;/* BIG_ENDIAN (Motorola,MIPS); LITTLE_ENDIAN (DEC, Intel) */
+                                                               ^^
+E: 29:obselete._readheader_fabian: Undefined variable 'N'
+E: 29:obselete._readheader_fabian: Undefined variable 'N'
+C: 30:obselete._readheader_fabian: Comma not followed by a space
+        self.header['data_byte_order'] = N.fromstring(l[32:36],N.uint32)[0]  # UINT32 ; /* BIG_ENDIAN (Motorola,MIPS); LITTLE_ENDIAN (DEC, Intel) */
+                                                              ^^
+E: 30:obselete._readheader_fabian: Undefined variable 'N'
+E: 30:obselete._readheader_fabian: Undefined variable 'N'
+C: 31:obselete._readheader_fabian: Comma not followed by a space
+        self.header['header_size'] = N.fromstring(l[36:40],N.uint32)[0]  # UINT32 ; /* in bytes */
+                                                          ^^
+E: 31:obselete._readheader_fabian: Undefined variable 'N'
+E: 31:obselete._readheader_fabian: Undefined variable 'N'
+C: 32:obselete._readheader_fabian: Comma not followed by a space
+        self.header['frame_type'] = N.fromstring(l[40:44],N.uint32)[0]  # UINT32 ; /* flag for frame type */
+                                                         ^^
+E: 32:obselete._readheader_fabian: Undefined variable 'N'
+E: 32:obselete._readheader_fabian: Undefined variable 'N'
+C: 42:obselete._readheader_fabian: Comma not followed by a space
+        self.header['nfast'] = N.fromstring(l[80:84],N.uint32)[0]  # UINT32 ; /* number of pixels in one line */
+                                                    ^^
+E: 42:obselete._readheader_fabian: Undefined variable 'N'
+E: 42:obselete._readheader_fabian: Undefined variable 'N'
+C: 43:obselete._readheader_fabian: Comma not followed by a space
+        self.header['nslow'] = N.fromstring(l[84:88],N.uint32)[0]  # UINT32 ; /* number of lines in image */
+                                                    ^^
+E: 43:obselete._readheader_fabian: Undefined variable 'N'
+E: 43:obselete._readheader_fabian: Undefined variable 'N'
+C: 44:obselete._readheader_fabian: Comma not followed by a space
+        self.header['depth'] = N.fromstring(l[88:92],N.uint32)[0]  # UINT32 ; /* number of bytes per pixel */
+                                                    ^^
+E: 44:obselete._readheader_fabian: Undefined variable 'N'
+E: 44:obselete._readheader_fabian: Undefined variable 'N'
+C: 46:obselete._readheader_fabian: Comma not followed by a space
+        self.header['signif_bits'] = N.fromstring(l[96:100],N.uint32)[0]  # UINT32 ; /* true depth of data, in bits */
+                                                           ^^
+E: 46:obselete._readheader_fabian: Undefined variable 'N'
+E: 46:obselete._readheader_fabian: Undefined variable 'N'
+C: 49:obselete._readheader_fabian: Comma not followed by a space
+        self.header['sequence'] = N.fromstring(l[108:112],N.uint32)[0]  # UINT32 ; /* TRUE or FALSE */
+                                                         ^^
+E: 49:obselete._readheader_fabian: Undefined variable 'N'
+E: 49:obselete._readheader_fabian: Undefined variable 'N'
+C: 50:obselete._readheader_fabian: Comma not followed by a space
+        self.header['nimages'] = N.fromstring(l[112:116],N.uint32)[0]  # UINT32 ; /* total number of images - size of each is nfast*(nslow/nimages) */
+                                                        ^^
+E: 50:obselete._readheader_fabian: Undefined variable 'N'
+E: 50:obselete._readheader_fabian: Undefined variable 'N'
+C: 51:obselete._readheader_fabian: Comma not followed by a space
+        self.header['origin'] = N.fromstring(l[116:120],N.uint32)[0]  # UINT32 ; /* corner of origin */
+                                                       ^^
+E: 51:obselete._readheader_fabian: Undefined variable 'N'
+E: 51:obselete._readheader_fabian: Undefined variable 'N'
+C: 52:obselete._readheader_fabian: Comma not followed by a space
+        self.header['orientation'] = N.fromstring(l[120:124],N.uint32)[0]  # UINT32 ; /* direction of fast axis */
+                                                            ^^
+E: 52:obselete._readheader_fabian: Undefined variable 'N'
+E: 52:obselete._readheader_fabian: Undefined variable 'N'
+C: 53:obselete._readheader_fabian: Comma not followed by a space
+        self.header['view_direction'] = N.fromstring(l[124:128],N.uint32)[0]  # UINT32 ; /* direction to view frame */
+                                                               ^^
+E: 53:obselete._readheader_fabian: Undefined variable 'N'
+E: 53:obselete._readheader_fabian: Undefined variable 'N'
+C: 54:obselete._readheader_fabian: Comma not followed by a space
+        self.header['overflow_locatio'] = N.fromstring(l[128:132],N.uint32)[0]  # UINT32 n;/* FOLLOWING_HEADER, FOLLOWING_DATA */
+                                                                 ^^
+E: 54:obselete._readheader_fabian: Undefined variable 'N'
+E: 54:obselete._readheader_fabian: Undefined variable 'N'
+C: 55:obselete._readheader_fabian: Comma not followed by a space
+        self.header['over_8_bits'] = N.fromstring(l[132:136],N.uint32)[0]  # UINT32 ; /* # of pixels with counts > 255 */
+                                                            ^^
+E: 55:obselete._readheader_fabian: Undefined variable 'N'
+E: 55:obselete._readheader_fabian: Undefined variable 'N'
+C: 56:obselete._readheader_fabian: Comma not followed by a space
+        self.header['over_16_bits'] = N.fromstring(l[136:140],N.uint32)[0]  # UINT32 ; /* # of pixels with count > 65535 */
+                                                             ^^
+E: 56:obselete._readheader_fabian: Undefined variable 'N'
+E: 56:obselete._readheader_fabian: Undefined variable 'N'
+C: 57:obselete._readheader_fabian: Comma not followed by a space
+        self.header['multiplexed'] = N.fromstring(l[140:144],N.uint32)[0]  # UINT32 ; /* multiplex flag */
+                                                            ^^
+E: 57:obselete._readheader_fabian: Undefined variable 'N'
+E: 57:obselete._readheader_fabian: Undefined variable 'N'
+C: 58:obselete._readheader_fabian: Comma not followed by a space
+        self.header['nfastimages'] = N.fromstring(l[144:148],N.uint32)[0]  # UINT32 ; /* # of images in fast direction */
+                                                            ^^
+E: 58:obselete._readheader_fabian: Undefined variable 'N'
+E: 58:obselete._readheader_fabian: Undefined variable 'N'
+C: 59:obselete._readheader_fabian: Comma not followed by a space
+        self.header['nslowimages'] = N.fromstring(l[148:152],N.uint32)[0]  # UINT32 ; /* # of images in slow direction */
+                                                            ^^
+E: 59:obselete._readheader_fabian: Undefined variable 'N'
+E: 59:obselete._readheader_fabian: Undefined variable 'N'
+C: 60:obselete._readheader_fabian: Comma not followed by a space
+        self.header['background_applied'] = N.fromstring(l[152:156],N.uint32)[0]  # UINT32 ; /* flags correction has been applied hold magic number ? */
+                                                                   ^^
+E: 60:obselete._readheader_fabian: Undefined variable 'N'
+E: 60:obselete._readheader_fabian: Undefined variable 'N'
+C: 61:obselete._readheader_fabian: Comma not followed by a space
+        self.header['bias_applied'] = N.fromstring(l[156:160],N.uint32)[0]  # UINT32 ; /* flags correction has been applied - hold magic number ? */
+                                                             ^^
+E: 61:obselete._readheader_fabian: Undefined variable 'N'
+E: 61:obselete._readheader_fabian: Undefined variable 'N'
+C: 62:obselete._readheader_fabian: Comma not followed by a space
+        self.header['flatfield_applied'] = N.fromstring(l[160:164],N.uint32)[0]  # UINT32 ; /* flags correction has been applied hold magic number ? */
+                                                                  ^^
+E: 62:obselete._readheader_fabian: Undefined variable 'N'
+E: 62:obselete._readheader_fabian: Undefined variable 'N'
+C: 63:obselete._readheader_fabian: Comma not followed by a space
+        self.header['distortion_applied'] = N.fromstring(l[164:168],N.uint32)[0]  # UINT32 ; /* flags correction has been applied hold magic number ? */
+                                                                   ^^
+E: 63:obselete._readheader_fabian: Undefined variable 'N'
+E: 63:obselete._readheader_fabian: Undefined variable 'N'
+C: 67:obselete._readheader_fabian: Comma not followed by a space
+        self.header['xtal_to_detector'] = N.fromstring(l[640:644],N.int32)[0]*1000  #INT32 ; /* 1000*distance in millimeters */
+                                                                 ^^
+E: 67:obselete._readheader_fabian: Undefined variable 'N'
+E: 67:obselete._readheader_fabian: Undefined variable 'N'
+C: 68:obselete._readheader_fabian: Comma not followed by a space
+        self.header['beam_x'] = N.fromstring(l[644:648],N.int32)[0]*1000  #INT32 ; /* 1000*x beam position (pixels) */
+                                                       ^^
+E: 68:obselete._readheader_fabian: Undefined variable 'N'
+E: 68:obselete._readheader_fabian: Undefined variable 'N'
+C: 69:obselete._readheader_fabian: Comma not followed by a space
+        self.header['beam_y'] = N.fromstring(l[648:652],N.int32)[0]*1000  #INT32 ; /* 1000*y beam position (pixels) */
+                                                       ^^
+E: 69:obselete._readheader_fabian: Undefined variable 'N'
+E: 69:obselete._readheader_fabian: Undefined variable 'N'
+C: 70:obselete._readheader_fabian: Comma not followed by a space
+        self.header['integration_time'] = N.fromstring(l[652:656],N.int32)[0]  #INT32 ; /* integration time in milliseconds */
+                                                                 ^^
+E: 70:obselete._readheader_fabian: Undefined variable 'N'
+E: 70:obselete._readheader_fabian: Undefined variable 'N'
+C: 71:obselete._readheader_fabian: Comma not followed by a space
+        self.header['exposure_time'] = N.fromstring(l[656:660],N.int32)[0]  #INT32 ; /* exposure time in milliseconds */
+                                                              ^^
+E: 71:obselete._readheader_fabian: Undefined variable 'N'
+E: 71:obselete._readheader_fabian: Undefined variable 'N'
+C: 72:obselete._readheader_fabian: Comma not followed by a space
+        self.header['readout_time'] = N.fromstring(l[660:664],N.int32)[0]  #INT32 ; /* readout time in milliseconds */
+                                                             ^^
+E: 72:obselete._readheader_fabian: Undefined variable 'N'
+E: 72:obselete._readheader_fabian: Undefined variable 'N'
+C: 73:obselete._readheader_fabian: Comma not followed by a space
+        self.header['nreads'] = N.fromstring(l[664:668],N.int32)[0]  #INT32 ; /* number of readouts to get this image */
+                                                       ^^
+E: 73:obselete._readheader_fabian: Undefined variable 'N'
+E: 73:obselete._readheader_fabian: Undefined variable 'N'
+C: 74:obselete._readheader_fabian: Comma not followed by a space
+        self.header['start_twotheta'] = N.fromstring(l[668:672],N.int32)[0]*1000  #INT32 ; /* 1000*two_theta angle */
+                                                               ^^
+E: 74:obselete._readheader_fabian: Undefined variable 'N'
+E: 74:obselete._readheader_fabian: Undefined variable 'N'
+C: 75:obselete._readheader_fabian: Comma not followed by a space
+        self.header['start_omega'] = N.fromstring(l[676:680],N.int32)[0]*1000  #INT32 ; /* 1000*omega angle */
+                                                            ^^
+E: 75:obselete._readheader_fabian: Undefined variable 'N'
+E: 75:obselete._readheader_fabian: Undefined variable 'N'
+C: 76:obselete._readheader_fabian: Comma not followed by a space
+        self.header['start_chi'] = N.fromstring(l[680:684],N.int32)[0]*1000  #INT32 ; /* 1000*chi angle */
+                                                          ^^
+E: 76:obselete._readheader_fabian: Undefined variable 'N'
+E: 76:obselete._readheader_fabian: Undefined variable 'N'
+C: 77:obselete._readheader_fabian: Comma not followed by a space
+        self.header['start_kappa'] = N.fromstring(l[684:688],N.int32)[0]*1000  #INT32 ; /* 1000*kappa angle */
+                                                            ^^
+E: 77:obselete._readheader_fabian: Undefined variable 'N'
+E: 77:obselete._readheader_fabian: Undefined variable 'N'
+C: 78:obselete._readheader_fabian: Comma not followed by a space
+        self.header['start_phi'] = N.fromstring(l[688:692],N.int32)[0]*1000  #INT32 ; /* 1000*phi angle */
+                                                          ^^
+E: 78:obselete._readheader_fabian: Undefined variable 'N'
+E: 78:obselete._readheader_fabian: Undefined variable 'N'
+C: 79:obselete._readheader_fabian: Comma not followed by a space
+        self.header['start_delta'] = N.fromstring(l[692:696],N.int32)[0]*1000  #INT32 ; /* 1000*delta angle */
+                                                            ^^
+E: 79:obselete._readheader_fabian: Undefined variable 'N'
+E: 79:obselete._readheader_fabian: Undefined variable 'N'
+C: 80:obselete._readheader_fabian: Comma not followed by a space
+        self.header['start_gamma'] = N.fromstring(l[696:700],N.int32)[0]*1000  #INT32 ; /* 1000*gamma angle */
+                                                            ^^
+E: 80:obselete._readheader_fabian: Undefined variable 'N'
+E: 80:obselete._readheader_fabian: Undefined variable 'N'
+C: 81:obselete._readheader_fabian: Comma not followed by a space
+        self.header['start_xtal_to_detector'] = N.fromstring(l[700:704],N.int32)[0]*1000  #INT32 ; /* 1000*distance in mm (dist in um)*/
+                                                                       ^^
+E: 81:obselete._readheader_fabian: Undefined variable 'N'
+E: 81:obselete._readheader_fabian: Undefined variable 'N'
+C: 82:obselete._readheader_fabian: Comma not followed by a space
+        self.header['end_twotheta'] = N.fromstring(l[704:708],N.int32)[0]*1000  #INT32 ; /* 1000*two_theta angle */
+                                                             ^^
+E: 82:obselete._readheader_fabian: Undefined variable 'N'
+E: 82:obselete._readheader_fabian: Undefined variable 'N'
+C: 83:obselete._readheader_fabian: Comma not followed by a space
+        self.header['end_omega'] = N.fromstring(l[708:712],N.int32)[0]*1000  #INT32 ; /* 1000*omega angle */
+                                                          ^^
+E: 83:obselete._readheader_fabian: Undefined variable 'N'
+E: 83:obselete._readheader_fabian: Undefined variable 'N'
+C: 84:obselete._readheader_fabian: Comma not followed by a space
+        self.header['end_chi'] = N.fromstring(l[712:716],N.int32)[0]*1000  #INT32 ; /* 1000*chi angle */
+                                                        ^^
+E: 84:obselete._readheader_fabian: Undefined variable 'N'
+E: 84:obselete._readheader_fabian: Undefined variable 'N'
+C: 85:obselete._readheader_fabian: Comma not followed by a space
+        self.header['end_kappa'] = N.fromstring(l[716:720],N.int32)[0]*1000  #INT32 ; /* 1000*kappa angle */
+                                                          ^^
+E: 85:obselete._readheader_fabian: Undefined variable 'N'
+E: 85:obselete._readheader_fabian: Undefined variable 'N'
+C: 86:obselete._readheader_fabian: Comma not followed by a space
+        self.header['end_phi'] = N.fromstring(l[720:724],N.int32)[0]*1000  #INT32 ; /* 1000*phi angle */
+                                                        ^^
+E: 86:obselete._readheader_fabian: Undefined variable 'N'
+E: 86:obselete._readheader_fabian: Undefined variable 'N'
+C: 87:obselete._readheader_fabian: Comma not followed by a space
+        self.header['end_delta'] = N.fromstring(l[724:728],N.int32)[0]*1000  #INT32 ; /* 1000*delta angle */
+                                                          ^^
+E: 87:obselete._readheader_fabian: Undefined variable 'N'
+E: 87:obselete._readheader_fabian: Undefined variable 'N'
+C: 88:obselete._readheader_fabian: Comma not followed by a space
+        self.header['end_gamma'] = N.fromstring(l[728:732],N.int32)[0]*1000  #INT32 ; /* 1000*gamma angle */
+                                                          ^^
+E: 88:obselete._readheader_fabian: Undefined variable 'N'
+E: 88:obselete._readheader_fabian: Undefined variable 'N'
+C: 89:obselete._readheader_fabian: Comma not followed by a space
+        self.header['end_xtal_to_detector'] = N.fromstring(l[732:736],N.int32)[0]*1000  #INT32 ; /* 1000*distance in mm (dist in um)*/
+                                                                     ^^
+E: 89:obselete._readheader_fabian: Undefined variable 'N'
+E: 89:obselete._readheader_fabian: Undefined variable 'N'
+C: 90:obselete._readheader_fabian: Comma not followed by a space
+        self.header['rotation_axis'] = N.fromstring(l[736:740],N.int32)[0]  #INT32 ; /* active rotation axis */
+                                                              ^^
+E: 90:obselete._readheader_fabian: Undefined variable 'N'
+E: 90:obselete._readheader_fabian: Undefined variable 'N'
+C: 91:obselete._readheader_fabian: Comma not followed by a space
+        self.header['rotation_range'] = N.fromstring(l[740:744],N.int32)[0]*1000  #INT32 ; /* 1000*rotation angle */
+                                                               ^^
+E: 91:obselete._readheader_fabian: Undefined variable 'N'
+E: 91:obselete._readheader_fabian: Undefined variable 'N'
+C: 92:obselete._readheader_fabian: Comma not followed by a space
+        self.header['detector_rotx'] = N.fromstring(l[744:748],N.int32)[0]*1000  #INT32 ; /* 1000*rotation of detector around X */
+                                                              ^^
+E: 92:obselete._readheader_fabian: Undefined variable 'N'
+E: 92:obselete._readheader_fabian: Undefined variable 'N'
+C: 93:obselete._readheader_fabian: Comma not followed by a space
+        self.header['detector_roty'] = N.fromstring(l[748:752],N.int32)[0]*1000  #INT32 ; /* 1000*rotation of detector around Y */
+                                                              ^^
+E: 93:obselete._readheader_fabian: Undefined variable 'N'
+E: 93:obselete._readheader_fabian: Undefined variable 'N'
+C: 94:obselete._readheader_fabian: Comma not followed by a space
+        self.header['detector_rotz'] = N.fromstring(l[752:756],N.int32)[0]*1000  #INT32 ; /* 1000*rotation of detector around Z */
+                                                              ^^
+E: 94:obselete._readheader_fabian: Undefined variable 'N'
+E: 94:obselete._readheader_fabian: Undefined variable 'N'
+C: 96:obselete._readheader_fabian: Comma not followed by a space
+        self.header['detector_type'] = N.fromstring(l[768:772],N.int32)[0]  #INT32 ; /* detector type */
+                                                              ^^
+E: 96:obselete._readheader_fabian: Undefined variable 'N'
+E: 96:obselete._readheader_fabian: Undefined variable 'N'
+C: 97:obselete._readheader_fabian: Comma not followed by a space
+        self.header['pixelsize_x'] = N.fromstring(l[772:776],N.int32)[0]  #INT32 ; /* pixel size (nanometers) */
+                                                            ^^
+E: 97:obselete._readheader_fabian: Undefined variable 'N'
+E: 97:obselete._readheader_fabian: Undefined variable 'N'
+C: 98:obselete._readheader_fabian: Comma not followed by a space
+        self.header['pixelsize_y'] = N.fromstring(l[776:780],N.int32)[0]  #INT32 ; /* pixel size (nanometers) */
+                                                            ^^
+E: 98:obselete._readheader_fabian: Undefined variable 'N'
+E: 98:obselete._readheader_fabian: Undefined variable 'N'
+C: 99:obselete._readheader_fabian: Comma not followed by a space
+        self.header['mean_bias'] = N.fromstring(l[780:784],N.int32)[0]*1000  #INT32 ; /* 1000*mean bias value */
+                                                          ^^
+E: 99:obselete._readheader_fabian: Undefined variable 'N'
+E: 99:obselete._readheader_fabian: Undefined variable 'N'
+C:100:obselete._readheader_fabian: Comma not followed by a space
+        self.header['photons_per_100adu'] = N.fromstring(l[784:788],N.int32)[0]  #INT32 ; /* photons / 100 ADUs */
+                                                                   ^^
+E:100:obselete._readheader_fabian: Undefined variable 'N'
+E:100:obselete._readheader_fabian: Undefined variable 'N'
+C:101:obselete._readheader_fabian: Comma not followed by a space
+        self.header['measured_bias'] = N.fromstring(l[788:792],N.int32)[0]*1000  #INT32 [MAXIMAGES]; /* 1000*mean bias value for each image*/
+                                                              ^^
+E:101:obselete._readheader_fabian: Undefined variable 'N'
+E:101:obselete._readheader_fabian: Undefined variable 'N'
+C:102:obselete._readheader_fabian: Comma not followed by a space
+        self.header['measured_temperature'] = N.fromstring(l[792:796],N.int32)[0] #INT32  [MAXIMAGES]; /* Temperature of each detector in milliKelvins */
+                                                                     ^^
+E:102:obselete._readheader_fabian: Undefined variable 'N'
+E:102:obselete._readheader_fabian: Undefined variable 'N'
+C:103:obselete._readheader_fabian: Comma not followed by a space
+        self.header['measured_pressure'] = N.fromstring(l[796:800],N.int32)[0] #INT32 [MAXIMAGES] ; /* Pressure of each chamber in microTorr */
+                                                                  ^^
+E:103:obselete._readheader_fabian: Undefined variable 'N'
+E:103:obselete._readheader_fabian: Undefined variable 'N'
+C:108:obselete._readheader_fabian: Comma not followed by a space
+        self.header['source_wavelength'] = N.fromstring(l[908:912],N.int32)[0]  #INT32 ; /* wavelength (femtoMeters) */
+                                                                  ^^
+E:108:obselete._readheader_fabian: Undefined variable 'N'
+E:108:obselete._readheader_fabian: Undefined variable 'N'
+R: 12:obselete._readheader_fabian: Too many statements (74/50)
+W: 16:obselete._readheader_fabian: Attribute 'header' defined outside __init__
+R: 11:obselete: Too few public methods (0/2)
+
+
+Report
+======
+75 statements analysed.
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |77     |55.80 |77       |=          |
++----------+-------+------+---------+-----------+
+|docstring |10     |7.25  |10       |=          |
++----------+-------+------+---------+-----------+
+|comment   |35     |25.36 |35       |=          |
++----------+-------+------+---------+-----------+
+|empty     |16     |11.59 |16       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |66     |66       |=          |
++-----------+-------+---------+-----------+
+|refactor   |2      |2        |=          |
++-----------+-------+---------+-----------+
+|warning    |2      |2        |=          |
++-----------+-------+---------+-----------+
+|error      |126    |126      |=          |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|E0602      |126         |
++-----------+------------+
+|C0324      |62          |
++-----------+------------+
+|C0103      |3           |
++-----------+------------+
+|W0232      |1           |
++-----------+------------+
+|W0201      |1           |
++-----------+------------+
+|R0915      |1           |
++-----------+------------+
+|R0903      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at -83.33/10 (previous run: -83.33/10)
+You have to do something quick !
+
diff --git a/pylint/fabioimage.py.lint b/pylint/fabioimage.py.lint
new file mode 100644
index 0000000..f607513
--- /dev/null
+++ b/pylint/fabioimage.py.lint
@@ -0,0 +1,164 @@
+No config file found, using default configuration
+
+************* Module fabioimage
+C: 92,0: Line too long (106/80)
+C:277,0: Line too long (83/80)
+C:291,0: Line too long (83/80)
+C:295,0: Line too long (85/80)
+C:319,0: Line too long (86/80)
+C:363,0: Line too long (94/80)
+C:414,0: Line too long (81/80)
+C:476,0: Line too long (95/80)
+C:477,0: Line too long (99/80)
+W:121,0: FIXME - this should be handled by the libraries now
+W:372,0: FIXME - what about seek ?
+W:397,0: FIXME - should we fix that or complain about the daft naming?
+C: 17,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 23,4: Invalid name "Image" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 27,0:fabioimage: Too many instance attributes (22/7)
+C: 27,0:fabioimage: Invalid name "fabioimage" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 70,4:fabioimage.checkHeader: Invalid name "checkHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 80,4:fabioimage.checkData: Invalid name "checkData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:117,4:fabioimage.toPIL16: Invalid name "toPIL16" (should match [a-z_][a-z0-9_]{2,30}$)
+C:261,4:fabioimage.rebin: Invalid name "keep_I" (should match [a-z_][a-z0-9_]{2,30}$)
+C:261,48:fabioimage.rebin: Invalid name "keep_I" (should match [a-z_][a-z0-9_]{2,30}$)
+C:280,12:fabioimage.rebin: Invalid name "dataIn" (should match [a-z_][a-z0-9_]{2,30}$)
+C:281,12:fabioimage.rebin: Invalid name "shapeIn" (should match [a-z_][a-z0-9_]{2,30}$)
+C:282,12:fabioimage.rebin: Invalid name "shapeOut" (should match [a-z_][a-z0-9_]{2,30}$)
+W:305,20:fabioimage.write: Unused argument 'fname'
+R:305,4:fabioimage.write: Method could be a function
+W:327,26:fabioimage._readheader: Unused argument 'fik_obj'
+R:327,4:fabioimage._readheader: Method could be a function
+W:340,29:fabioimage.read: Unused argument 'frame'
+W:340,19:fabioimage.read: Unused argument 'filename'
+R:340,4:fabioimage.read: Method could be a function
+C:351,4:fabioimage.readROI: Invalid name "readROI" (should match [a-z_][a-z0-9_]{2,30}$)
+C:374,8:fabioimage._open: Invalid name "fileObject" (should match [a-z_][a-z0-9_]{2,30}$)
+C:384,16:fabioimage._open: Invalid name "fileObject" (should match [a-z_][a-z0-9_]{2,30}$)
+C:389,16:fabioimage._open: Invalid name "fileObject" (should match [a-z_][a-z0-9_]{2,30}$)
+C:399,16:fabioimage._open: Invalid name "fileObject" (should match [a-z_][a-z0-9_]{2,30}$)
+C:418,12:fabioimage._compressed_stream: Invalid name "fo" (should match [a-z_][a-z0-9_]{2,30}$)
+C:428,12:fabioimage._compressed_stream: Invalid name "fo" (should match [a-z_][a-z0-9_]{2,30}$)
+W:407,27:fabioimage._compressed_stream: Unused argument 'system_uncompress'
+W:454,24:fabioimage.convert: No exception type(s) specified
+R:434,4:fabioimage.convert: Too many branches (15/12)
+R: 27,0:fabioimage: Too many public methods (25/20)
+R:480,0:test: Too many local variables (17/15)
+W:526,12:test.clean: No exception type(s) specified
+W:533,11:test: Access to a protected member _open of a client class
+W:539,11:test: Access to a protected member _open of a client class
+W:545,20:test: Access to a protected member _open of a client class
+W:547,11:test: Access to a protected member _open of a client class
+
+
+Report
+======
+309 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |27     |19       |+8.00      |
++-----------+-------+---------+-----------+
+|refactor   |7      |4        |+3.00      |
++-----------+-------+---------+-----------+
+|warning    |14     |13       |+1.00      |
++-----------+-------+---------+-----------+
+|error      |0      |15       |-15.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |18          |
++-----------+------------+
+|C0301      |9           |
++-----------+------------+
+|W0613      |5           |
++-----------+------------+
+|W0212      |4           |
++-----------+------------+
+|W0511      |3           |
++-----------+------------+
+|R0201      |3           |
++-----------+------------+
+|W0702      |2           |
++-----------+------------+
+|R0914      |1           |
++-----------+------------+
+|R0912      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 8.45/10 (previous run: 5.32/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |350    |66.16 |271      |+79.00     |
++----------+-------+------+---------+-----------+
+|docstring |119    |22.50 |104      |+15.00     |
++----------+-------+------+---------+-----------+
+|comment   |15     |2.84  |14       |+1.00      |
++----------+-------+------+---------+-----------+
+|empty     |45     |8.51  |41       |+4.00      |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (fabioimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |2          |-1.00      |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |29     |23         |+6.00      |100.00      |13.79    |
++---------+-------+-----------+-----------+------------+---------+
+|function |2      |2          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/fabioutils.py.lint b/pylint/fabioutils.py.lint
new file mode 100644
index 0000000..e18249e
--- /dev/null
+++ b/pylint/fabioutils.py.lint
@@ -0,0 +1,171 @@
+No config file found, using default configuration
+
+************* Module fabioutils
+C: 82,0: Line too long (123/80)
+C: 95,0: Line too long (106/80)
+C:234,0: Line too long (81/80)
+C:444,0: Line too long (101/80)
+C:454,0: Line too long (84/80)
+C:493,0: Line too long (85/80)
+W:569,0: Bad indentation. Found 16 spaces, expected 12
+W:572,0: Bad indentation. Found 16 spaces, expected 12
+C: 10,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 51,0: Invalid name "dictAscii" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 61,7: Catching too general exception Exception
+C: 55,4: Invalid name "lines" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 71,7: Catching too general exception Exception
+C: 65,4: Invalid name "lines" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W:103,4:getnum: Unused variable 'stem'
+W:103,16:getnum: Unused variable 'post_num'
+R:109,0:FilenameObject: Too many instance attributes (8/7)
+R:113,4:FilenameObject.__init__: Too many arguments (9/5)
+W:116,12:FilenameObject.__init__: Redefining built-in 'format'
+W:207,19:FilenameObject.deconstruct_filename: Catching too general exception Exception
+W:228,23:FilenameObject.deconstruct_filename: Catching too general exception Exception
+R:182,4:FilenameObject.deconstruct_filename: Too many statements (60/50)
+C:313,0:isAscii: Invalid name "isAscii" (should match [a-z_][a-z0-9_]{2,30}$)
+C:313,0:isAscii: Invalid name "listExcluded" (should match [a-z_][a-z0-9_]{2,30}$)
+C:313,18:isAscii: Invalid name "listExcluded" (should match [a-z_][a-z0-9_]{2,30}$)
+W:339,12:toAscii: Redefining name 'i' from outer scope (line 51)
+C:331,0:toAscii: Invalid name "toAscii" (should match [a-z_][a-z0-9_]{2,30}$)
+E:343,29:toAscii: Unsupported format character 'n' (0x6e) at index 11
+C:350,0:nice_int: Invalid name "s" (should match [a-z_][a-z0-9_]{2,30}$)
+C:350,13:nice_int: Invalid name "s" (should match [a-z_][a-z0-9_]{2,30}$)
+C:379,4:StringIO.getSize: Invalid name "getSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:379,4:StringIO.getSize: Missing docstring
+C:388,4:StringIO.setSize: Invalid name "setSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:388,4:StringIO.setSize: Missing docstring
+W:390,11:StringIO: Use of "property" on an old style class
+C:418,4:File.getSize: Invalid name "getSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:418,4:File.getSize: Missing docstring
+C:427,4:File.setSize: Invalid name "setSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:427,4:File.setSize: Missing docstring
+C:448,4: Invalid name "GzipFile" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:488,12:GzipFile.getSize: Invalid name "getSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:488,12:GzipFile.getSize: Missing docstring
+C:491,54:GzipFile.getSize: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+E:493,38:GzipFile.getSize: Undefined variable 'numpy'
+E:493,72:GzipFile.getSize: Undefined variable 'numpy'
+C:495,12:GzipFile.setSize: Invalid name "setSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:495,12:GzipFile.setSize: Missing docstring
+R:450,4:GzipFile: Too many public methods (24/20)
+C:532,4: Invalid name "BZ2File" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W:561,20:BZ2File.getSize: Redefining built-in 'all'
+C:556,8:BZ2File.getSize: Invalid name "getSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:556,8:BZ2File.getSize: Missing docstring
+W:561,20:BZ2File.getSize: Unused variable 'all'
+C:565,8:BZ2File.setSize: Invalid name "setSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:565,8:BZ2File.setSize: Missing docstring
+
+
+Report
+======
+297 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |35     |30       |+5.00      |
++-----------+-------+---------+-----------+
+|refactor   |4      |3        |+1.00      |
++-----------+-------+---------+-----------+
+|warning    |13     |19       |-6.00      |
++-----------+-------+---------+-----------+
+|error      |3      |13       |-10.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |21          |
++-----------+------------+
+|C0111      |8           |
++-----------+------------+
+|C0301      |6           |
++-----------+------------+
+|W0703      |4           |
++-----------+------------+
+|W0612      |3           |
++-----------+------------+
+|W0622      |2           |
++-----------+------------+
+|W0311      |2           |
++-----------+------------+
+|E0602      |2           |
++-----------+------------+
+|W1001      |1           |
++-----------+------------+
+|W0621      |1           |
++-----------+------------+
+|R0915      |1           |
++-----------+------------+
+|R0913      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+|E1300      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.74/10 (previous run: 5.36/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |324    |56.94 |283      |+41.00     |
++----------+-------+------+---------+-----------+
+|docstring |187    |32.86 |149      |+38.00     |
++----------+-------+------+---------+-----------+
+|comment   |8      |1.41  |33       |-25.00     |
++----------+-------+------+---------+-----------+
+|empty     |50     |8.79  |40       |+10.00     |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |6      |6          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|method   |25     |15         |+10.00     |68.00       |32.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |14     |11         |+3.00      |100.00      |14.29    |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/file_series.py.lint b/pylint/file_series.py.lint
new file mode 100644
index 0000000..0d5e536
--- /dev/null
+++ b/pylint/file_series.py.lint
@@ -0,0 +1,118 @@
+No config file found, using default configuration
+
+************* Module file_series
+C:116,0: Line too long (93/80)
+C: 18,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 32,4:new_file_series0: Invalid name "im" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 47,15:new_file_series0: Catching too general exception Exception
+C: 46,12:new_file_series0: Invalid name "im" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 54,19:new_file_series0: Catching too general exception Exception
+C: 95,4:new_file_series: Invalid name "im" (should match [a-z_][a-z0-9_]{2,30}$)
+W:106,15:new_file_series: Catching too general exception Exception
+C:104,12:new_file_series: Invalid name "im" (should match [a-z_][a-z0-9_]{2,30}$)
+C:105,12:new_file_series: Invalid name "retVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:107,12:new_file_series: Invalid name "retVal" (should match [a-z_][a-z0-9_]{2,30}$)
+W:115,19:new_file_series: Catching too general exception Exception
+C:120,12:new_file_series: Invalid name "retVal" (should match [a-z_][a-z0-9_]{2,30}$)
+C:121,22:new_file_series: More than one statement on a single line
+C:126,0:file_series: Invalid name "file_series" (should match [A-Z_][a-zA-Z0-9]+$)
+R:126,0:file_series: Too many public methods (28/20)
+C:322,0:numbered_file_series: Invalid name "numbered_file_series" (should match [A-Z_][a-zA-Z0-9]+$)
+R:328,4:numbered_file_series.__init__: Too many arguments (8/5)
+R:322,0:numbered_file_series: Too many public methods (28/20)
+C:349,0:filename_series: Invalid name "filename_series" (should match [A-Z_][a-zA-Z0-9]+$)
+
+
+Report
+======
+141 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |13     |11       |+2.00      |
++-----------+-------+---------+-----------+
+|refactor   |3      |3        |=          |
++-----------+-------+---------+-----------+
+|warning    |4      |5        |-1.00      |
++-----------+-------+---------+-----------+
+|error      |0      |0        |=          |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |11          |
++-----------+------------+
+|W0703      |4           |
++-----------+------------+
+|R0904      |2           |
++-----------+------------+
+|R0913      |1           |
++-----------+------------+
+|C0321      |1           |
++-----------+------------+
+|C0301      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 8.58/10 (previous run: 8.64/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |146    |36.68 |145      |+1.00      |
++----------+-------+------+---------+-----------+
+|docstring |194    |48.74 |101      |+93.00     |
++----------+-------+------+---------+-----------+
+|comment   |7      |1.76  |7        |=          |
++----------+-------+------+---------+-----------+
+|empty     |51     |12.81 |33       |+18.00     |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |3      |3          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |34     |34         |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |2      |2          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/fit2dmaskimage.py.lint b/pylint/fit2dmaskimage.py.lint
new file mode 100644
index 0000000..c9143dd
--- /dev/null
+++ b/pylint/fit2dmaskimage.py.lint
@@ -0,0 +1,101 @@
+No config file found, using default configuration
+
+************* Module fit2dmaskimage
+C: 15,0:fit2dmaskimage: Invalid name "fit2dmaskimage" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 90,4:fit2dmaskimage.checkData: Invalid name "checkData" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 15,0:fit2dmaskimage: Too many public methods (25/20)
+
+
+Report
+======
+43 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |2      |1        |+1.00      |
++-----------+-------+---------+-----------+
+|refactor   |1      |1        |=          |
++-----------+-------+---------+-----------+
+|warning    |0      |8        |-8.00      |
++-----------+-------+---------+-----------+
+|error      |0      |18       |-18.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |2           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 9.30/10 (previous run: -16.32/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |50     |56.18 |43       |+7.00      |
++----------+-------+------+---------+-----------+
+|docstring |18     |20.22 |18       |=          |
++----------+-------+------+---------+-----------+
+|comment   |7      |7.87  |7        |=          |
++----------+-------+------+---------+-----------+
+|empty     |14     |15.73 |14       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (fit2dmaskimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |4      |3          |+1.00      |100.00      |25.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/fit2dspreadsheetimage.py.lint b/pylint/fit2dspreadsheetimage.py.lint
new file mode 100644
index 0000000..d94d8c6
--- /dev/null
+++ b/pylint/fit2dspreadsheetimage.py.lint
@@ -0,0 +1,112 @@
+No config file found, using default configuration
+
+************* Module fit2dspreadsheetimage
+W: 23,0: TODO : test for minimal attributes?
+C: 15,0:fit2dspreadsheetimage: Invalid name "fit2dspreadsheetimage" (should match [A-Z_][a-zA-Z0-9]+$)
+W: 62,16:fit2dspreadsheetimage.read: No exception type(s) specified
+R: 15,0:fit2dspreadsheetimage: Too many public methods (25/20)
+C: 78,4: Invalid name "start" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 79,4: Invalid name "img" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+51 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |3      |3        |=          |
++-----------+-------+---------+-----------+
+|refactor   |1      |1        |=          |
++-----------+-------+---------+-----------+
+|warning    |2      |9        |-7.00      |
++-----------+-------+---------+-----------+
+|error      |0      |6        |-6.00      |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |3           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0511      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 8.82/10 (previous run: 1.57/10)
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |50     |60.98 |50       |=          |
++----------+-------+------+---------+-----------+
+|docstring |16     |19.51 |16       |=          |
++----------+-------+------+---------+-----------+
+|comment   |1      |1.22  |1        |=          |
++----------+-------+------+---------+-----------+
+|empty     |15     |18.29 |15       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    matplotlib 
+      \-pylab 
+        \-imshow (fit2dspreadsheetimage)
+        \-show (fit2dspreadsheetimage)
+    numpy (fit2dspreadsheetimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |2      |2          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/kcdimage.py.lint b/pylint/kcdimage.py.lint
new file mode 100644
index 0000000..7e24878
--- /dev/null
+++ b/pylint/kcdimage.py.lint
@@ -0,0 +1,125 @@
+No config file found, using default configuration
+
+************* Module kcdimage
+C:  6,0: Line too long (97/80)
+C: 49,0: Line too long (92/80)
+C:113,0: Line too long (104/80)
+W: 11,0: Uses of a deprecated module 'string'
+C: 13,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 29,0:kcdimage: Invalid name "kcdimage" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 39,8:kcdimage._readheader: Invalid name "oneLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 41,8:kcdimage._readheader: Invalid name "asciiHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 42,12:kcdimage._readheader: Invalid name "oneChar" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 44,16:kcdimage._readheader: Invalid name "asciiHeader" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 50,8:kcdimage._readheader: Invalid name "endOfHeaders" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 52,12:kcdimage._readheader: Invalid name "oneLine" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 54,16:kcdimage._readheader: Invalid name "endOfHeaders" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 57,16:kcdimage._readheader: Invalid name "oneLine" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 60,12:kcdimage._readheader: No exception type(s) specified
+C: 61,16:kcdimage._readheader: Invalid name "endOfHeaders" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 97,12:kcdimage.read: Invalid name "nbReadOut" (should match [a-z_][a-z0-9_]{2,30}$)
+C:100,12:kcdimage.read: Invalid name "nbReadOut" (should match [a-z_][a-z0-9_]{2,30}$)
+C:101,8:kcdimage.read: Invalid name "fileSize" (should match [a-z_][a-z0-9_]{2,30}$)
+C:127,4:kcdimage.checkData: Invalid name "checkData" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 29,0:kcdimage: Too many public methods (25/20)
+
+
+Report
+======
+83 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |18     |17       |+1.00      |
++-----------+-------+---------+-----------+
+|refactor   |1      |1        |=          |
++-----------+-------+---------+-----------+
+|warning    |2      |10       |-8.00      |
++-----------+-------+---------+-----------+
+|error      |0      |11       |-11.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |15          |
++-----------+------------+
+|C0301      |3           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0402      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.47/10 (previous run: -0.51/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |85     |66.41 |79       |+6.00      |
++----------+-------+------+---------+-----------+
+|docstring |23     |17.97 |23       |=          |
++----------+-------+------+---------+-----------+
+|comment   |2      |1.56  |2        |=          |
++----------+-------+------+---------+-----------+
+|empty     |18     |14.06 |18       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (kcdimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |3      |2          |+1.00      |100.00      |33.33    |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/lintem.py b/pylint/lintem.py
new file mode 100755
index 0000000..9417ec3
--- /dev/null
+++ b/pylint/lintem.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+# coding: utf8
+from __future__ import with_statement
+
+__author__ = "Jerome Kieffer"
+__email__ = "jerome.kieffer at esrf.fr"
+__doc__ = "This runs pylint on all modules from fabio package"
+__date__ = "20120416"
+__status__ = "production"
+__licence__ = "GPL"
+
+import os, subprocess, sys, distutils.util
+import numpy
+import Image
+from os.path import dirname
+arch = "lib.%s-%i.%i" % (distutils.util.get_platform(), sys.version_info[0], sys.version_info[1])
+pylint_dir = os.path.dirname(os.path.abspath(__file__))
+fabio_root = os.path.dirname(pylint_dir)
+installDir = os.path.abspath(os.path.join(fabio_root, "build", arch, "fabio"))
+testDir = os.path.abspath(os.path.join(fabio_root, "test"))
+sys.path.append(testDir)
+import utilstest
+#env = {"PYTHONPATH":":".join([installDir, testDir, dirname(dirname(numpy.__file__)), dirname(Image.__file__)])}
+env = {"PYTHONPATH":installDir}
+print env
+def lintit(infile, outfile):
+    print ("Updating %s" % outfile)
+    process = subprocess.Popen(["pylint", infile], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env)
+    result, error = process.communicate()
+    if len(result) > 0:
+        with open(outfile, "wb") as lintfile:
+            if len(error) > 0:
+                lintfile.write(error + os.linesep)
+            lintfile.write(result)
+    else:
+        print ("Error in running pylint on %s:%s%s" % (infile, os.linesep, error))
+
+files = [ os.path.join(installDir, i) for i in os.listdir(installDir) if i.endswith(".py") ] + \
+        [ os.path.join(testDir, i) for i in os.listdir(testDir) if i.endswith(".py") ]
+
+for f in files:
+    outf = os.path.join(pylint_dir, os.path.basename(f) + ".lint")
+    if not os.path.exists(outf) :
+        lintit(f, outf)
+    elif os.stat(f).st_mtime > os.stat(outf).st_mtime:
+        lintit(f, outf)
+    else:
+        print ("Not updating %s" % outf)
+#    lintit(f, outf)
diff --git a/pylint/mar345image.py.lint b/pylint/mar345image.py.lint
new file mode 100644
index 0000000..3929c8b
--- /dev/null
+++ b/pylint/mar345image.py.lint
@@ -0,0 +1,183 @@
+No config file found, using default configuration
+
+************* Module mar345image
+C: 41,0: Line too long (81/80)
+C: 45,0: Line too long (106/80)
+C: 98,0: Line too long (85/80)
+C:149,0: Line too long (86/80)
+C:169,0: Line too long (90/80)
+C:182,0: Line too long (83/80)
+C:196,0: Line too long (128/80)
+C:197,0: Line too long (104/80)
+C:200,0: Line too long (82/80)
+C:203,0: Line too long (134/80)
+C:206,0: Line too long (82/80)
+C:210,0: Line too long (130/80)
+C:214,0: Line too long (127/80)
+C:217,0: Line too long (82/80)
+C:220,0: Line too long (82/80)
+C:223,0: Line too long (82/80)
+C:226,0: Line too long (82/80)
+C:229,0: Line too long (82/80)
+C:233,0: Line too long (85/80)
+C:234,0: Line too long (151/80)
+C:238,0: Line too long (85/80)
+C:239,0: Line too long (153/80)
+C:242,0: Line too long (82/80)
+C:245,0: Line too long (82/80)
+C:249,0: Line too long (121/80)
+C:252,0: Line too long (82/80)
+C:255,0: Line too long (82/80)
+C:260,0: Line too long (156/80)
+C:264,0: Line too long (125/80)
+C:268,0: Line too long (125/80)
+C:273,0: Line too long (103/80)
+C:274,0: Line too long (182/80)
+C:279,0: Line too long (157/80)
+C:282,0: Line too long (82/80)
+C:285,0: Line too long (82/80)
+C:289,0: Line too long (134/80)
+C:292,0: Line too long (82/80)
+W:120,0: TODO: validate these values against the binaries already read
+W:  4,0: Redefining built-in '__doc__'
+C:  1,0: Missing docstring
+C: 24,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 28,0:mar345image: Too many instance attributes (8/7)
+C: 28,0:mar345image: Invalid name "mar345image" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 28,0:mar345image: Missing docstring
+C: 38,8:mar345image.read: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 44,19:mar345image.read: Catching too general exception Exception
+C: 66,8:mar345image._readheader: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 67,8:mar345image._readheader: Invalid name "h" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 70,8:mar345image._readheader: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 78,12:mar345image._readheader: Invalid name "fs" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 80,12:mar345image._readheader: Invalid name "fs" (should match [a-z_][a-z0-9_]{2,30}$)
+C:121,8:mar345image._readheader: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C:129,8:mar345image._readheader: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C:130,12:mar345image._readheader: Invalid name "m" (should match [a-z_][a-z0-9_]{2,30}$)
+C:133,12:mar345image._readheader: Invalid name "n" (should match [a-z_][a-z0-9_]{2,30}$)
+C:148,16:mar345image._readheader: Invalid name "n" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 61,4:mar345image._readheader: Too many branches (13/12)
+R: 61,4:mar345image._readheader: Too many statements (57/50)
+W:166,15:mar345image.write: Catching too general exception Exception
+R:169,4:mar345image._writeheader: Too many branches (28/12)
+R:169,4:mar345image._writeheader: Too many statements (123/50)
+C:300,4:mar345image._high_intensity_pixel_records: Missing docstring
+C:312,4:mar345image.nb_overflow_pixels: Missing docstring
+C:316,4:mar345image.checkData: Invalid name "checkData" (should match [a-z_][a-z0-9_]{2,30}$)
+C:324,12:mar345image.checkData: Invalid name "z" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 28,0:mar345image: Too many public methods (26/20)
+W: 22,0: Unused import traceback
+
+
+Report
+======
+246 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |56     |18       |+38.00     |
++-----------+-------+---------+-----------+
+|refactor   |6      |3        |+3.00      |
++-----------+-------+---------+-----------+
+|warning    |5      |10       |-5.00      |
++-----------+-------+---------+-----------+
+|error      |0      |4        |-4.00      |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0301      |37          |
++-----------+------------+
+|C0103      |15          |
++-----------+------------+
+|C0111      |4           |
++-----------+------------+
+|W0703      |2           |
++-----------+------------+
+|R0915      |2           |
++-----------+------------+
+|R0912      |2           |
++-----------+------------+
+|W0622      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0511      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.28/10 (previous run: 4.07/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |265    |83.60 |86       |+179.00    |
++----------+-------+------+---------+-----------+
+|docstring |16     |5.05  |20       |-4.00      |
++----------+-------+------+---------+-----------+
+|comment   |13     |4.10  |12       |+1.00      |
++----------+-------+------+---------+-----------+
+|empty     |23     |7.26  |20       |+3.00      |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (mar345image)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |8      |4          |+4.00      |75.00       |12.50    |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/marccdimage.py.lint b/pylint/marccdimage.py.lint
new file mode 100644
index 0000000..cecc900
--- /dev/null
+++ b/pylint/marccdimage.py.lint
@@ -0,0 +1,96 @@
+No config file found, using default configuration
+
+************* Module marccdimage
+C: 28,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W:234,4:make_format: Unused variable 'expected'
+C:291,0:marccdimage: Invalid name "marccdimage" (should match [A-Z_][a-zA-Z0-9]+$)
+R:291,0:marccdimage: Too many public methods (25/20)
+
+
+Report
+======
+63 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |2      |2        |=          |
++-----------+-------+---------+-----------+
+|refactor   |1      |1        |=          |
++-----------+-------+---------+-----------+
+|warning    |1      |3        |-2.00      |
++-----------+-------+---------+-----------+
+|error      |0      |0        |=          |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |2           |
++-----------+------------+
+|W0612      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 9.37/10 (previous run: 9.05/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |236    |75.88 |236      |=          |
++----------+-------+------+---------+-----------+
+|docstring |45     |14.47 |41       |+4.00      |
++----------+-------+------+---------+-----------+
+|comment   |9      |2.89  |9        |=          |
++----------+-------+------+---------+-----------+
+|empty     |21     |6.75  |21       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |2      |2          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |2      |2          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/oldtifimage.py.lint b/pylint/oldtifimage.py.lint
new file mode 100644
index 0000000..b53590c
--- /dev/null
+++ b/pylint/oldtifimage.py.lint
@@ -0,0 +1,131 @@
+************* Module oldtifimage
+C0301: 80: Line too long (84/80)
+W0704: 40:tifimage._readheader: Except doesn't do anything
+W0702: 41:tifimage._readheader: No exception's type specified
+C0111: 43:tifimage._readheader: Missing docstring
+E0102: 43:tifimage._readheader: method already defined line 34
+C0324: 43:tifimage._readheader: Comma not followed by a space
+    def _readheader(self,infile):
+                        ^^
+C0324: 45:tifimage._readheader: Comma not followed by a space
+        header = N.fromstring(infile.read(64),N.uint16)
+                                             ^^
+W0107: 50:tifimage._readheader: Unnecessary pass statement
+E1103: 60:tifimage.read: Instance of 'str' has no 'seek' member (but some types could not be inferred)
+W0702: 64:tifimage.read: No exception's type specified
+E1103: 64:tifimage.read: Instance of 'str' has no 'seek' member (but some types could not be inferred)
+E1103: 65:tifimage.read: Instance of 'str' has no 'read' member (but some types could not be inferred)
+W0201: 48:tifimage._readheader: Attribute 'nbits' defined outside __init__
+
+
+Report
+======
+52 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |72     |61.54 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |30     |25.64 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |4      |3.42  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |11     |9.40  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (oldtifimage)
+    fabio 
+      \-fabioimage (oldtifimage)
+    PIL 
+      \-Image (oldtifimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|method   |4      |NC         |NC         |75.00       |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |4      |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |5      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |4      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+-----------+
+|message id |occurences |
++===========+===========+
+|E1103      |3          |
++-----------+-----------+
+|W0702      |2          |
++-----------+-----------+
+|C0324      |2          |
++-----------+-----------+
+|W0704      |1          |
++-----------+-----------+
+|W0201      |1          |
++-----------+-----------+
+|W0107      |1          |
++-----------+-----------+
+|E0102      |1          |
++-----------+-----------+
+|C0301      |1          |
++-----------+-----------+
+|C0111      |1          |
++-----------+-----------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 4.42/10
+
diff --git a/pylint/openimage.py.lint b/pylint/openimage.py.lint
new file mode 100644
index 0000000..d5559af
--- /dev/null
+++ b/pylint/openimage.py.lint
@@ -0,0 +1,120 @@
+No config file found, using default configuration
+
+************* Module openimage
+C: 77,0: Line too long (92/80)
+C: 96,0: Line too long (84/80)
+C: 14,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 90,15:openimage: Catching too general exception Exception
+W:120,15:_openimage: Access to a protected member _open of a client class
+W: 22,0: Unused import fit2dmaskimage
+W: 32,0: Unused import kcdimage
+W: 24,0: Unused import bruker100image
+W: 35,0: Unused import binaryimage
+W: 30,0: Unused import pilatusimage
+W: 29,0: Unused import HiPiCimage
+W: 18,0: Unused import adscimage
+W: 21,0: Unused import mar345image
+W: 31,0: Unused import fit2dspreadsheetimage
+W: 25,0: Unused import pnmimage
+W: 28,0: Unused import dm3image
+W: 34,0: Unused import xsdimage
+W: 20,0: Unused import marccdimage
+W: 26,0: Unused import GEimage
+W: 33,0: Unused import cbfimage
+W: 17,0: Unused import edfimage
+W: 27,0: Unused import OXDimage
+W: 19,0: Unused import tifimage
+W: 23,0: Unused import brukerimage
+
+
+Report
+======
+89 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |3      |2        |+1.00      |
++-----------+-------+---------+-----------+
+|refactor   |0      |0        |=          |
++-----------+-------+---------+-----------+
+|warning    |21     |22       |-1.00      |
++-----------+-------+---------+-----------+
+|error      |0      |0        |=          |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|W0611      |19          |
++-----------+------------+
+|C0301      |2           |
++-----------+------------+
+|W0703      |1           |
++-----------+------------+
+|W0212      |1           |
++-----------+------------+
+|C0103      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.30/10 (previous run: 6.96/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |116    |72.96 |102      |+14.00     |
++----------+-------+------+---------+-----------+
+|docstring |19     |11.95 |19       |=          |
++----------+-------+------+---------+-----------+
+|comment   |10     |6.29  |11       |-1.00      |
++----------+-------+------+---------+-----------+
+|empty     |14     |8.81  |15       |-1.00      |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|method   |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|function |4      |4          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/pilatusimage.py.lint b/pylint/pilatusimage.py.lint
new file mode 100644
index 0000000..e5b82bf
--- /dev/null
+++ b/pylint/pilatusimage.py.lint
@@ -0,0 +1,94 @@
+************* Module pilatusimage
+C: 26,0:pilatusimage: Invalid name "pilatusimage" (should match [A-Z_][a-zA-Z0-9]+$)
+W: 53,19:pilatusimage._readheader: Catching too general exception Exception
+R: 26,0:pilatusimage: Too many public methods (25/20)
+
+
+Report
+======
+34 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |1      |1        |=          |
++-----------+-------+---------+-----------+
+|refactor   |1      |1        |=          |
++-----------+-------+---------+-----------+
+|warning    |1      |1        |=          |
++-----------+-------+---------+-----------+
+|error      |0      |0        |=          |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|W0703      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|C0103      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 9.12/10 (previous run: 9.12/10)
+So close to being perfect...
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |34     |42.50 |34       |=          |
++----------+-------+------+---------+-----------+
+|docstring |26     |32.50 |26       |=          |
++----------+-------+------+---------+-----------+
+|comment   |6      |7.50  |6        |=          |
++----------+-------+------+---------+-----------+
+|empty     |14     |17.50 |14       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |2      |2          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
diff --git a/pylint/pnmimage.py.lint b/pylint/pnmimage.py.lint
new file mode 100644
index 0000000..3c16261
--- /dev/null
+++ b/pylint/pnmimage.py.lint
@@ -0,0 +1,173 @@
+No config file found, using default configuration
+
+************* Module pnmimage
+C: 39,0: Line too long (88/80)
+C: 56,0: Line too long (83/80)
+C: 77,0: Line too long (91/80)
+C: 98,0: Line too long (84/80)
+C:110,0: Line too long (96/80)
+C:127,0: Line too long (96/80)
+C:134,0: Line too long (98/80)
+C:136,0: Line too long (92/80)
+C: 15,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 23,0:pnmimage: Too many instance attributes (10/7)
+C: 23,0:pnmimage: Invalid name "pnmimage" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 31,8:pnmimage.__init__: Invalid name "m" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 23,0:pnmimage: Missing docstring
+C: 35,4:pnmimage._readheader: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 35,26:pnmimage._readheader: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 42,8:pnmimage._readheader: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 52,16:pnmimage._readheader: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 53,36:pnmimage._readheader: More than one statement on a single line
+C: 53,36:pnmimage._readheader: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 54,16:pnmimage._readheader: Invalid name "s" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 61,16:pnmimage._readheader: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 62,36:pnmimage._readheader: More than one statement on a single line
+C: 62,36:pnmimage._readheader: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 70,8:pnmimage._readheader: Invalid name "m" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 35,4:pnmimage._readheader: Too many branches (13/12)
+C:103,4:pnmimage.P1dec: Invalid name "P1dec" (should match [a-z_][a-z0-9_]{2,30}$)
+C:103,4:pnmimage.P1dec: Missing docstring
+E:104,28:pnmimage.P1dec: Undefined variable 'self'
+E:104,39:pnmimage.P1dec: Undefined variable 'self'
+C:106,12:pnmimage.P1dec: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C:114,4:pnmimage.P4dec: Invalid name "P4dec" (should match [a-z_][a-z0-9_]{2,30}$)
+C:114,4:pnmimage.P4dec: Missing docstring
+W:114,14:pnmimage.P4dec: Unused argument 'buf'
+W:114,19:pnmimage.P4dec: Unused argument 'bytecode'
+C:120,4:pnmimage.P2dec: Invalid name "P2dec" (should match [a-z_][a-z0-9_]{2,30}$)
+C:120,4:pnmimage.P2dec: Missing docstring
+E:121,28:pnmimage.P2dec: Undefined variable 'self'
+E:121,39:pnmimage.P2dec: Undefined variable 'self'
+C:123,12:pnmimage.P2dec: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+C:131,4:pnmimage.P5dec: Invalid name "P5dec" (should match [a-z_][a-z0-9_]{2,30}$)
+C:131,4:pnmimage.P5dec: Missing docstring
+C:132,8:pnmimage.P5dec: Invalid name "l" (should match [a-z_][a-z0-9_]{2,30}$)
+E:134,65:pnmimage.P5dec: Undefined variable 'self'
+E:134,76:pnmimage.P5dec: Undefined variable 'self'
+C:140,4:pnmimage.P3dec: Invalid name "P3dec" (should match [a-z_][a-z0-9_]{2,30}$)
+C:140,4:pnmimage.P3dec: Missing docstring
+W:140,14:pnmimage.P3dec: Unused argument 'buf'
+W:140,19:pnmimage.P3dec: Unused argument 'bytecode'
+C:146,4:pnmimage.P6dec: Invalid name "P6dec" (should match [a-z_][a-z0-9_]{2,30}$)
+C:146,4:pnmimage.P6dec: Missing docstring
+W:146,14:pnmimage.P6dec: Unused argument 'buf'
+W:146,19:pnmimage.P6dec: Unused argument 'bytecode'
+C:152,4:pnmimage.P7dec: Invalid name "P7dec" (should match [a-z_][a-z0-9_]{2,30}$)
+C:152,4:pnmimage.P7dec: Missing docstring
+W:152,14:pnmimage.P7dec: Unused argument 'buf'
+W:152,19:pnmimage.P7dec: Unused argument 'bytecode'
+C:161,4:pnmimage.checkData: Invalid name "checkData" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 23,0:pnmimage: Too many public methods (32/20)
+R: 23,0:pnmimage: Abstract class not referenced
+
+
+Report
+======
+110 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |41     |43       |-2.00      |
++-----------+-------+---------+-----------+
+|refactor   |4      |4        |=          |
++-----------+-------+---------+-----------+
+|warning    |8      |4        |+4.00      |
++-----------+-------+---------+-----------+
+|error      |6      |12       |-6.00      |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |23          |
++-----------+------------+
+|W0613      |8           |
++-----------+------------+
+|C0301      |8           |
++-----------+------------+
+|C0111      |8           |
++-----------+------------+
+|E0602      |6           |
++-----------+------------+
+|C0321      |2           |
++-----------+------------+
+|R0921      |1           |
++-----------+------------+
+|R0912      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 2.45/10 (previous run: -1.44/10)
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |121    |80.67 |98       |+23.00     |
++----------+-------+------+---------+-----------+
+|docstring |15     |10.00 |10       |+5.00      |
++----------+-------+------+---------+-----------+
+|comment   |8      |5.33  |8        |=          |
++----------+-------+------+---------+-----------+
+|empty     |6      |4.00  |10       |-4.00      |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (pnmimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |12     |11         |+1.00      |41.67       |66.67    |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/profile_compressed.py.lint b/pylint/profile_compressed.py.lint
new file mode 100644
index 0000000..dd5ebce
--- /dev/null
+++ b/pylint/profile_compressed.py.lint
@@ -0,0 +1,121 @@
+No config file found, using default configuration
+
+************* Module test.profile_compressed
+W: 10,0: No exception type(s) specified
+C: 18,0: Invalid name "npts" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 19,0: Invalid name "data" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 20,0: Invalid name "sdata" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 20,8: Used * or ** magic
+C: 33,4:tst: Invalid name "fo" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 40,0: Invalid name "start" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 42,0: Invalid name "p" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 49,0: Invalid name "p" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 55,4:tstsys: Invalid name "fo" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 61,0: Invalid name "p" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 67,0: Invalid name "p" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 74,0: Invalid name "cl" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 97,4: Invalid name "start" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 98,4: Invalid name "s" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:101,4: Invalid name "start" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:102,4: Invalid name "s" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:105,4: Invalid name "start" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:106,4: Invalid name "s" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:109,4: Invalid name "start" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:110,4: Invalid name "s" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:116,4: Invalid name "s" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:120,4: Invalid name "s" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:124,4: Invalid name "s" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:128,4: Invalid name "s" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W:  6,0: Unused import bz2
+W:  6,0: Unused import gzip
+
+
+Report
+======
+93 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |23     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |4      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |23          |
++-----------+------------+
+|W0611      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0142      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.10/10
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |88     |72.73 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |17     |14.05 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |1      |0.83  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |15     |12.40 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|method   |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|function |2      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/readbytestream.py.lint b/pylint/readbytestream.py.lint
new file mode 100644
index 0000000..e5d4748
--- /dev/null
+++ b/pylint/readbytestream.py.lint
@@ -0,0 +1,96 @@
+************* Module readbytestream
+W: 49,0: TODO : Read in regions of interest
+
+
+Report
+======
+27 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |0      |0        |=          |
++-----------+-------+---------+-----------+
+|refactor   |0      |0        |=          |
++-----------+-------+---------+-----------+
+|warning    |1      |1        |=          |
++-----------+-------+---------+-----------+
+|error      |0      |0        |=          |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|W0511      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 9.63/10 (previous run: 9.63/10)
+So close to being perfect...
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |46     |56.79 |46       |=          |
++----------+-------+------+---------+-----------+
+|docstring |25     |30.86 |25       |=          |
++----------+-------+------+---------+-----------+
+|comment   |4      |4.94  |4        |=          |
++----------+-------+------+---------+-----------+
+|empty     |6      |7.41  |6        |=          |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (readbytestream)
+
+
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|method   |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/templateimage.py.lint b/pylint/templateimage.py.lint
new file mode 100644
index 0000000..83d9d2a
--- /dev/null
+++ b/pylint/templateimage.py.lint
@@ -0,0 +1,131 @@
+No config file found, using default configuration
+
+************* Module templateimage
+C:  5,0: Line too long (117/80)
+C:  6,0: Line too long (91/80)
+C: 13,0: Line too long (94/80)
+C: 14,0: Line too long (91/80)
+C: 16,0: Line too long (99/80)
+C: 23,0: Line too long (83/80)
+C: 26,0: Line too long (81/80)
+C: 27,0: Line too long (81/80)
+C: 28,0: Line too long (84/80)
+C: 31,0: Line too long (99/80)
+C: 33,0: Line too long (102/80)
+W:  7,0: XXXimage where XXX means something (eg tifimage).
+W: 58,0: XXX detector
+W: 38,0: Redefining built-in '__doc__'
+C:  1,0: Missing docstring
+C: 53,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 56,0:templateimage: Too many instance attributes (10/7)
+C: 56,0:templateimage: Invalid name "templateimage" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 68,8:templateimage.__init__: Invalid name "m" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 72,26:templateimage._readheader: Unused argument 'infile'
+R: 56,0:templateimage: Too many public methods (25/20)
+
+
+Report
+======
+29 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |15     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |4      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0301      |11          |
++-----------+------------+
+|C0103      |3           |
++-----------+------------+
+|W0511      |2           |
++-----------+------------+
+|W0622      |1           |
++-----------+------------+
+|W0613      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 2.76/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |35     |36.08 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |16     |16.49 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |36     |37.11 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |10     |10.31 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (templateimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |3      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testGEimage.py.lint b/pylint/testGEimage.py.lint
new file mode 100644
index 0000000..74069e0
--- /dev/null
+++ b/pylint/testGEimage.py.lint
@@ -0,0 +1,119 @@
+No config file found, using default configuration
+
+************* Module test.testGEimage
+C: 34,0: Line too long (86/80)
+C: 36,0: Line too long (89/80)
+C:  1,0: Invalid name "testGEimage" (should match (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$)
+C: 10,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 11,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 25,0: No exception type(s) specified
+W: 28,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 39,0:testGE: Invalid name "testGE" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 45,8:testGE.setUp: Invalid name "GE" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 39,0:testGE: Missing docstring
+C: 41,4:testGE.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 48,4:testGE.test_read: Missing docstring
+R: 39,0:testGE: Too many public methods (46/20)
+C: 65,0:test_suite_all_GE: Invalid name "test_suite_all_GE" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 65,0:test_suite_all_GE: Missing docstring
+C: 66,4:test_suite_all_GE: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 71,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 72,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 31,0: Unused import fabio
+
+
+Report
+======
+49 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |15     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |10          |
++-----------+------------+
+|C0111      |3           |
++-----------+------------+
+|C0301      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.12/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |50     |71.43 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |8      |11.43 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |2.86  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |10     |14.29 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |2      |NC         |NC         |50.00       |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testOXDimage.py.lint b/pylint/testOXDimage.py.lint
new file mode 100644
index 0000000..caa4fca
--- /dev/null
+++ b/pylint/testOXDimage.py.lint
@@ -0,0 +1,132 @@
+No config file found, using default configuration
+
+************* Module test.testOXDimage
+C: 77,0: Line too long (86/80)
+C: 81,0: Line too long (81/80)
+C: 82,0: Line too long (107/80)
+C:  1,0: Invalid name "testOXDimage" (should match (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$)
+C: 10,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 11,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 26,0: No exception type(s) specified
+W: 29,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 41,0:testOXD: Invalid name "testOXD" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 43,8:testOXD.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 41,0:testOXD: Missing docstring
+C: 42,4:testOXD.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 49,4:testOXD.tearDown: Invalid name "tearDown" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 41,0:testOXD: Too many public methods (47/20)
+C: 84,0:testOXD_same: Invalid name "testOXD_same" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 86,8:testOXD_same.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 84,0:testOXD_same: Missing docstring
+C: 85,4:testOXD_same.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 93,8:testOXD_same.test_same: Invalid name "o1" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 94,8:testOXD_same.test_same: Invalid name "o2" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 96,12:testOXD_same.test_same: Invalid name "a1" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 97,12:testOXD_same.test_same: Invalid name "a2" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 84,0:testOXD_same: Too many public methods (46/20)
+C:100,0:testOXD_big: Invalid name "testOXD_big" (should match [A-Z_][a-zA-Z0-9]+$)
+C:103,8:testOXD_big.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C:102,4:testOXD_big.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C:108,4:testOXD_big.test_same: Missing docstring
+C:110,8:testOXD_big.test_same: Invalid name "df" (should match [a-z_][a-z0-9_]{2,30}$)
+R:100,0:testOXD_big: Too many public methods (46/20)
+C:113,0:test_suite_all_OXD: Invalid name "test_suite_all_OXD" (should match [a-z_][a-z0-9_]{2,30}$)
+C:113,0:test_suite_all_OXD: Missing docstring
+C:114,4:test_suite_all_OXD: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:122,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:123,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+98 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |29     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |22          |
++-----------+------------+
+|C0111      |4           |
++-----------+------------+
+|R0904      |3           |
++-----------+------------+
+|C0301      |3           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.53/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |99     |83.19 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |9      |7.56  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |3      |2.52  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |8      |6.72  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|class    |3      |NC         |NC         |33.33       |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |8      |NC         |NC         |87.50       |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testXSDimage.py.lint b/pylint/testXSDimage.py.lint
new file mode 100644
index 0000000..18de54f
--- /dev/null
+++ b/pylint/testXSDimage.py.lint
@@ -0,0 +1,127 @@
+No config file found, using default configuration
+
+************* Module test.testXSDimage
+C: 39,0: Line too long (82/80)
+C: 70,0: Line too long (91/80)
+C: 77,0: Line too long (102/80)
+C: 84,0: Line too long (103/80)
+C:  1,0: Invalid name "testXSDimage" (should match (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$)
+C: 13,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 14,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 28,0: No exception type(s) specified
+W: 31,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 42,0:testXSD: Invalid name "testXSD" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 44,8:testXSD.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 42,0:testXSD: Missing docstring
+C: 43,4:testXSD.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 74,8:testXSD.test_invert: Invalid name "m1" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 75,8:testXSD.test_invert: Invalid name "m2" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 42,0:testXSD: Too many public methods (48/20)
+C: 81,0:test_suite_all_XSD: Invalid name "test_suite_all_XSD" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 81,0:test_suite_all_XSD: Missing docstring
+C: 82,4:test_suite_all_XSD: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 93,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 94,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+68 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |18     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |12          |
++-----------+------------+
+|C0301      |4           |
++-----------+------------+
+|C0111      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.91/10
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |72     |80.00 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |8      |8.89  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |2.22  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |8      |8.89  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (test.testXSDimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |4      |NC         |NC         |100.00      |25.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/test_all.py.lint b/pylint/test_all.py.lint
new file mode 100644
index 0000000..9ce6b04
--- /dev/null
+++ b/pylint/test_all.py.lint
@@ -0,0 +1,124 @@
+No config file found, using default configuration
+
+************* Module test.test_all
+C: 13,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 14,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 28,0: No exception type(s) specified
+W: 31,0: Relative import 'utilstest', should be 'test.utilstest'
+W: 37,0: Relative import 'testfabioimage', should be 'test.testfabioimage'
+W: 38,0: Relative import 'testedfimage', should be 'test.testedfimage'
+W: 39,0: Relative import 'testcbfimage', should be 'test.testcbfimage'
+W: 40,0: Relative import 'testfilenames', should be 'test.testfilenames'
+W: 41,0: Relative import 'test_file_series', should be 'test.test_file_series'
+W: 42,0: Relative import 'test_filename_steps', should be 'test.test_filename_steps'
+W: 44,0: Relative import 'testadscimage', should be 'test.testadscimage'
+W: 45,0: Relative import 'testfit2dmaskimage', should be 'test.testfit2dmaskimage'
+W: 46,0: Relative import 'testGEimage', should be 'test.testGEimage'
+W: 47,0: Relative import 'testheadernotsingleton', should be 'test.testheadernotsingleton'
+W: 48,0: Relative import 'testmar345image', should be 'test.testmar345image'
+W: 49,0: Relative import 'testbrukerimage', should be 'test.testbrukerimage'
+W: 50,0: Relative import 'testmccdimage', should be 'test.testmccdimage'
+W: 51,0: Relative import 'testopenheader', should be 'test.testopenheader'
+W: 52,0: Relative import 'testopenimage', should be 'test.testopenimage'
+W: 53,0: Relative import 'testOXDimage', should be 'test.testOXDimage'
+W: 54,0: Relative import 'testkcdimage', should be 'test.testkcdimage'
+W: 55,0: Relative import 'testtifimage', should be 'test.testtifimage'
+W: 56,0: Relative import 'testXSDimage', should be 'test.testXSDimage'
+C: 58,0:test_suite_all: Missing docstring
+C: 59,4:test_suite_all: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 84,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 85,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 34,4: Unused import fabio
+
+
+Report
+======
+70 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |6      |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |22     |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|W0403      |20          |
++-----------+------------+
+|C0103      |5           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.00/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |70     |86.42 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |3      |3.70  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |2.47  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |6      |7.41  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|method   |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/test_all_images.py.lint b/pylint/test_all_images.py.lint
new file mode 100644
index 0000000..6e9b1a7
--- /dev/null
+++ b/pylint/test_all_images.py.lint
@@ -0,0 +1,93 @@
+No config file found, using default configuration
+
+************* Module test.test_all_images
+W: 10,0: No exception type(s) specified
+C: 13,0: Invalid name "times" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 14,0: Invalid name "images" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+72 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 9.58/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |65     |69.89 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |12     |12.90 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |1      |1.08  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |15     |16.13 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|method   |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/test_file_series.py.lint b/pylint/test_file_series.py.lint
new file mode 100644
index 0000000..ce27994
--- /dev/null
+++ b/pylint/test_file_series.py.lint
@@ -0,0 +1,113 @@
+No config file found, using default configuration
+
+************* Module test.test_file_series
+C: 12,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 13,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 27,0: No exception type(s) specified
+W: 30,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 37,0:testrandomseries: Invalid name "testrandomseries" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 39,4:testrandomseries.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 37,0:testrandomseries: Too many public methods (48/20)
+C: 55,0:testedfnumbered: Invalid name "testedfnumbered" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 59,4:testedfnumbered.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 55,0:testedfnumbered: Too many public methods (52/20)
+C:106,0:test_suite_all_series: Missing docstring
+C:107,4:test_suite_all_series: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:125,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:126,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 33,4: Unused import fabio
+
+
+Report
+======
+82 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |10     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |9           |
++-----------+------------+
+|R0904      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 8.17/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |81     |72.32 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |20     |17.86 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |1.79  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |9      |8.04  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |2      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |12     |NC         |NC         |100.00      |16.67    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/test_filename_steps.py.lint b/pylint/test_filename_steps.py.lint
new file mode 100644
index 0000000..8a885ab
--- /dev/null
+++ b/pylint/test_filename_steps.py.lint
@@ -0,0 +1,120 @@
+No config file found, using default configuration
+
+************* Module test.test_filename_steps
+C:  1,0: Missing docstring
+C:  5,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:  6,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 20,0: No exception type(s) specified
+W: 23,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 28,0:test_next: Invalid name "test_next" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 28,0:test_next: Missing docstring
+W: 30,18:test_next.test_next1: Redefining built-in 'next'
+C: 29,4:test_next.test_next1: Missing docstring
+R: 28,0:test_next: Too many public methods (46/20)
+C: 37,0:test_prev: Invalid name "test_prev" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 37,0:test_prev: Missing docstring
+C: 38,4:test_prev.test_prev1: Missing docstring
+R: 37,0:test_prev: Too many public methods (46/20)
+C: 46,0:test_jump: Invalid name "test_jump" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 46,0:test_jump: Missing docstring
+C: 47,4:test_jump.test_jump1: Missing docstring
+R: 46,0:test_jump: Too many public methods (46/20)
+C: 56,0:test_suite_all_steps: Missing docstring
+C: 57,4:test_suite_all_steps: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 65,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 66,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+44 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |16     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0111      |8           |
++-----------+------------+
+|C0103      |8           |
++-----------+------------+
+|R0904      |3           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0622      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 5.00/10
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |55     |91.67 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |0      |0.00  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |3.33  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |3      |5.00  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |3      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |3      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/test_flat_binary.py.lint b/pylint/test_flat_binary.py.lint
new file mode 100644
index 0000000..ad9803e
--- /dev/null
+++ b/pylint/test_flat_binary.py.lint
@@ -0,0 +1,118 @@
+No config file found, using default configuration
+
+************* Module test.test_flat_binary
+C: 58,0: Line too long (91/80)
+C:  1,0: Missing docstring
+C:  3,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:  4,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 18,0: No exception type(s) specified
+W: 21,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 27,0:test_flat_binary: Invalid name "test_flat_binary" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 27,0:test_flat_binary: Missing docstring
+C: 35,4:test_flat_binary.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 37,12:test_flat_binary.setUp: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 42,4:test_flat_binary.NOtest_openimage: Invalid name "NOtest_openimage" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 55,12:test_flat_binary.NOtest_openimage: No exception type(s) specified
+C: 50,16:test_flat_binary.NOtest_openimage: Invalid name "im" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 60,4:test_flat_binary.tearDown: Invalid name "tearDown" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 27,0:test_flat_binary: Too many public methods (46/20)
+C: 71,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+E: 71,14: Undefined variable 'test_suite_all_flat'
+C: 72,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+48 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |13     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |10          |
++-----------+------------+
+|W0702      |2           |
++-----------+------------+
+|C0111      |2           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|E0602      |1           |
++-----------+------------+
+|C0301      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 5.42/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |48     |71.64 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |8      |11.94 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |5      |7.46  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |6      |8.96  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |3      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testadscimage.py.lint b/pylint/testadscimage.py.lint
new file mode 100644
index 0000000..0aee58c
--- /dev/null
+++ b/pylint/testadscimage.py.lint
@@ -0,0 +1,121 @@
+No config file found, using default configuration
+
+************* Module test.testadscimage
+C: 63,0: Line too long (115/80)
+C: 64,0: Line too long (115/80)
+C: 65,0: Line too long (91/80)
+C: 13,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 14,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 28,0: No exception type(s) specified
+W: 31,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 47,0:testmatch: Invalid name "testmatch" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 51,4:testmatch.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 47,0:testmatch: Too many public methods (46/20)
+C: 69,0:testflatmccdsadsc: Invalid name "testflatmccdsadsc" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 69,0:testflatmccdsadsc: Empty docstring
+C: 72,4:testflatmccdsadsc.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 69,0:testflatmccdsadsc: Too many public methods (46/20)
+C: 97,0:test_suite_all_adsc: Missing docstring
+C: 98,4:test_suite_all_adsc: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:104,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:105,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 34,0: Unused import fabio
+
+
+Report
+======
+65 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |14     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |9           |
++-----------+------------+
+|C0301      |3           |
++-----------+------------+
+|R0904      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|C0112      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.08/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |67     |63.81 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |16     |15.24 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |4      |3.81  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |18     |17.14 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |2      |NC         |NC         |50.00       |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |4      |NC         |NC         |100.00      |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testbrukerimage.py.lint b/pylint/testbrukerimage.py.lint
new file mode 100644
index 0000000..174c8f8
--- /dev/null
+++ b/pylint/testbrukerimage.py.lint
@@ -0,0 +1,141 @@
+No config file found, using default configuration
+
+************* Module test.testbrukerimage
+C: 98,0: Line too long (93/80)
+C:107,0: Line too long (90/80)
+C:125,0: Line too long (88/80)
+C:143,0: Line too long (82/80)
+C:175,0: Line too long (86/80)
+C:180,0: Line too long (102/80)
+C:182,0: Line too long (164/80)
+C: 10,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 11,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 25,0: No exception type(s) specified
+W: 28,0: Relative import 'utilstest', should be 'test.utilstest'
+W: 35,0: Reimport 'tempfile' (imported line 9)
+C: 60,0:testbruker: Invalid name "testbruker" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 64,4:testbruker.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 60,0:testbruker: Too many public methods (46/20)
+C: 92,0:testbzipbruker: Invalid name "testbzipbruker" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 94,4:testbzipbruker.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 92,0:testbzipbruker: Too many public methods (46/20)
+C:101,0:testgzipbruker: Invalid name "testgzipbruker" (should match [A-Z_][a-zA-Z0-9]+$)
+C:103,4:testgzipbruker.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R:101,0:testgzipbruker: Too many public methods (46/20)
+C:112,0:testbrukerLinear: Invalid name "testbrukerLinear" (should match [A-Z_][a-zA-Z0-9]+$)
+R:112,0:testbrukerLinear: Too many public methods (46/20)
+C:136,0:test_real_im: Invalid name "test_real_im" (should match [A-Z_][a-zA-Z0-9]+$)
+C:138,4:test_real_im.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R:136,0:test_real_im: Too many public methods (47/20)
+C:184,0:test_suite_all_bruker: Missing docstring
+C:185,4:test_suite_all_bruker: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:195,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:196,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 31,0: Unused import fabio
+
+
+Report
+======
+131 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |22     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |5      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |4      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |14          |
++-----------+------------+
+|C0301      |7           |
++-----------+------------+
+|R0904      |5           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0404      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.63/10
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |138    |75.00 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |27     |14.67 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |6      |3.26  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |13     |7.07  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (test.testbrukerimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |5      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |8      |NC         |NC         |100.00      |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testcbfimage.py.lint b/pylint/testcbfimage.py.lint
new file mode 100644
index 0000000..29e3ce3
--- /dev/null
+++ b/pylint/testcbfimage.py.lint
@@ -0,0 +1,133 @@
+No config file found, using default configuration
+
+************* Module test.testcbfimage
+C: 44,0: Line too long (91/80)
+C: 69,0: Line too long (122/80)
+C: 79,0: Line too long (82/80)
+C: 84,0: Line too long (103/80)
+C: 91,0: Line too long (98/80)
+C:102,0: Line too long (87/80)
+C:109,0: Line too long (90/80)
+C:116,0: Line too long (89/80)
+C:127,0: Line too long (82/80)
+C:132,0: Line too long (149/80)
+C:143,0: Line too long (82/80)
+C:148,0: Line too long (149/80)
+C:158,0: Line too long (82/80)
+C:163,0: Line too long (149/80)
+C: 12,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 13,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 27,0: No exception type(s) specified
+W: 30,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 38,0:test_cbfimage_reader: Invalid name "test_cbfimage_reader" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 41,4:test_cbfimage_reader.__init__: Invalid name "methodName" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 41,23:test_cbfimage_reader.__init__: Invalid name "methodName" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 49,4:test_cbfimage_reader.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 55,4:test_cbfimage_reader.tearDown: Invalid name "tearDown" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 90,8:test_cbfimage_reader.test_byte_offset: Invalid name "startPos" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 92,8:test_cbfimage_reader.test_byte_offset: Invalid name "startTime" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 93,8:test_cbfimage_reader.test_byte_offset: Invalid name "numpyRes" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 94,8:test_cbfimage_reader.test_byte_offset: Invalid name "tNumpy" (should match [a-z_][a-z0-9_]{2,30}$)
+C:111,8:test_cbfimage_reader.test_byte_offset: Invalid name "startTime" (should match [a-z_][a-z0-9_]{2,30}$)
+C:112,8:test_cbfimage_reader.test_byte_offset: Invalid name "cythonRes" (should match [a-z_][a-z0-9_]{2,30}$)
+C:113,8:test_cbfimage_reader.test_byte_offset: Invalid name "tCython" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 38,0:test_cbfimage_reader: Too many public methods (51/20)
+C:166,0:test_suite_all_cbf: Missing docstring
+C:167,4:test_suite_all_cbf: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:179,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:180,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+122 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |32     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |17          |
++-----------+------------+
+|C0301      |14          |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.13/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |122    |72.62 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |22     |13.10 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |15     |8.93  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |9      |5.36  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |9      |NC         |NC         |100.00      |22.22    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testcompression.py.lint b/pylint/testcompression.py.lint
new file mode 100644
index 0000000..c843964
--- /dev/null
+++ b/pylint/testcompression.py.lint
@@ -0,0 +1,138 @@
+No config file found, using default configuration
+
+************* Module test.testcompression
+C: 42,0: Line too long (217/80)
+C: 43,0: Line too long (390/80)
+C: 55,0: Line too long (84/80)
+C: 56,0: Line too long (92/80)
+C: 59,0: Line too long (86/80)
+C: 61,0: Line too long (89/80)
+C: 63,0: Line too long (90/80)
+C: 65,0: Line too long (105/80)
+C: 67,0: Line too long (103/80)
+C: 11,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 12,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 26,0: No exception type(s) specified
+W: 29,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 37,0:testbyteoffset: Invalid name "testbyteoffset" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 42,8:testbyteoffset.setUp: Invalid name "ds" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 41,4:testbyteoffset.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 44,4:testbyteoffset.testComp: Invalid name "testComp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 44,4:testbyteoffset.testComp: Empty docstring
+C: 47,8:testbyteoffset.testComp: Invalid name "ds" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 50,8:testbyteoffset.testComp: Invalid name "ds" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 53,8:testbyteoffset.testComp: Invalid name "ds" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 58,4:testbyteoffset.testSC: Invalid name "testSC" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 37,0:testbyteoffset: Too many public methods (47/20)
+C: 74,0:test_suite_all_compression: Missing docstring
+C: 75,4:test_suite_all_compression: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 81,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 82,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 32,0: Unused import fabio
+
+
+Report
+======
+57 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |24     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |13          |
++-----------+------------+
+|C0301      |9           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|C0112      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 5.09/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |57     |69.51 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |11     |13.41 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |2.44  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |12     |14.63 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (test.testcompression)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |3      |NC         |NC         |66.67       |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testedfimage.py.lint b/pylint/testedfimage.py.lint
new file mode 100644
index 0000000..4f1f62a
--- /dev/null
+++ b/pylint/testedfimage.py.lint
@@ -0,0 +1,225 @@
+No config file found, using default configuration
+
+************* Module test.testedfimage
+C: 72,0: Line too long (86/80)
+C: 73,0: Line too long (86/80)
+C: 75,0: Line too long (106/80)
+C: 76,0: Line too long (105/80)
+C: 96,0: Line too long (101/80)
+W: 96,0: Bad indentation. Found 20 spaces, expected 12
+C:105,0: Line too long (98/80)
+W:105,0: Bad indentation. Found 20 spaces, expected 12
+C:124,0: Line too long (85/80)
+C:140,0: Line too long (89/80)
+C:141,0: Line too long (87/80)
+C:143,0: Line too long (89/80)
+C:144,0: Line too long (87/80)
+C:145,0: Line too long (95/80)
+C:154,0: Line too long (123/80)
+C:179,0: Line too long (83/80)
+C:183,0: Line too long (86/80)
+C:187,0: Line too long (92/80)
+C:188,0: Line too long (93/80)
+C:189,0: Line too long (104/80)
+C:199,0: Line too long (82/80)
+C:200,0: Line too long (82/80)
+C:207,0: Line too long (105/80)
+C:211,0: Line too long (89/80)
+C:215,0: Line too long (89/80)
+C:219,0: Line too long (110/80)
+C:221,0: Line too long (100/80)
+C:222,0: Line too long (110/80)
+C:226,0: Line too long (109/80)
+C:228,0: Line too long (108/80)
+C:232,0: Line too long (106/80)
+C:234,0: Line too long (102/80)
+C:238,0: Line too long (105/80)
+C:240,0: Line too long (101/80)
+C:245,0: Line too long (104/80)
+C:247,0: Line too long (104/80)
+C:252,0: Line too long (103/80)
+C:254,0: Line too long (105/80)
+C:257,0: Line too long (84/80)
+C:258,0: Line too long (145/80)
+C:259,0: Line too long (147/80)
+C:260,0: Line too long (147/80)
+C:274,0: Line too long (83/80)
+C:292,0: Line too long (94/80)
+C:300,0: Line too long (94/80)
+C:308,0: Line too long (94/80)
+C: 10,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 11,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 25,0: No exception type(s) specified
+W: 28,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 38,0:testflatedfs: Invalid name "testflatedfs" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 58,4:testflatedfs.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 38,0:testflatedfs: Too many public methods (47/20)
+C: 90,0:testbzipedf: Invalid name "testbzipedf" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 92,4:testbzipedf.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 90,0:testbzipedf: Too many public methods (47/20)
+C: 99,0:testgzipedf: Invalid name "testgzipedf" (should match [A-Z_][a-zA-Z0-9]+$)
+C:101,4:testgzipedf.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 99,0:testgzipedf: Too many public methods (47/20)
+C:119,0:testedfs: Invalid name "testedfs" (should match [A-Z_][a-zA-Z0-9]+$)
+C:123,4:testedfs.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C:151,8:testedfs.test_rebin: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+R:119,0:testedfs: Too many public methods (47/20)
+C:158,0:testedfcompresseddata: Invalid name "testedfcompresseddata" (should match [A-Z_][a-zA-Z0-9]+$)
+C:163,4:testedfcompresseddata.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C:173,8:testedfcompresseddata.test_read: Invalid name "refFile" (should match [a-z_][a-z0-9_]{2,30}$)
+C:174,8:testedfcompresseddata.test_read: Invalid name "gzippedFile" (should match [a-z_][a-z0-9_]{2,30}$)
+C:175,8:testedfcompresseddata.test_read: Invalid name "compressedFile" (should match [a-z_][a-z0-9_]{2,30}$)
+R:158,0:testedfcompresseddata: Too many public methods (46/20)
+C:192,0:testedfmultiframe: Invalid name "testedfmultiframe" (should match [A-Z_][a-zA-Z0-9]+$)
+C:200,8:testedfmultiframe.setUp: Invalid name "Frame1Filename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:198,8:testedfmultiframe.setUp: Invalid name "multiFrameFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:199,8:testedfmultiframe.setUp: Invalid name "Frame0Filename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:197,4:testedfmultiframe.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+E:211,73:testedfmultiframe.setUp: Instance of 'testedfmultiframe' has no 'Frame0File' member
+E:215,73:testedfmultiframe.setUp: Instance of 'testedfmultiframe' has no 'Frame1File' member
+C:217,4:testedfmultiframe.test_getFrame_multi: Invalid name "test_getFrame_multi" (should match [a-z_][a-z0-9_]{2,30}$)
+C:224,4:testedfmultiframe.test_getFrame_mono: Invalid name "test_getFrame_mono" (should match [a-z_][a-z0-9_]{2,30}$)
+W:233,8:testedfmultiframe.test_next_multi: Redefining built-in 'next'
+W:239,8:testedfmultiframe.text_next_mono: Redefining built-in 'next'
+C:244,8:testedfmultiframe.test_previous_multi: Invalid name "f1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:246,8:testedfmultiframe.test_previous_multi: Invalid name "f0" (should match [a-z_][a-z0-9_]{2,30}$)
+C:251,8:testedfmultiframe.test_previous_mono: Invalid name "f1" (should match [a-z_][a-z0-9_]{2,30}$)
+R:192,0:testedfmultiframe: Too many public methods (52/20)
+C:262,0:testedffastread: Invalid name "testedffastread" (should match [A-Z_][a-zA-Z0-9]+$)
+C:268,8:testedffastread.setUp: Invalid name "refFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:269,8:testedffastread.setUp: Invalid name "fastFilename" (should match [a-z_][a-z0-9_]{2,30}$)
+C:267,4:testedffastread.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C:270,4:testedffastread.test_fastread: Missing docstring
+R:262,0:testedffastread: Too many public methods (46/20)
+C:276,0:testedfwrite: Invalid name "testedfwrite" (should match [A-Z_][a-zA-Z0-9]+$)
+C:281,4:testedfwrite.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C:285,4:testedfwrite.testFlat: Invalid name "testFlat" (should match [a-z_][a-z0-9_]{2,30}$)
+C:285,4:testedfwrite.testFlat: Missing docstring
+C:287,8:testedfwrite.testFlat: Invalid name "e" (should match [a-z_][a-z0-9_]{2,30}$)
+C:289,8:testedfwrite.testFlat: Invalid name "r" (should match [a-z_][a-z0-9_]{2,30}$)
+C:293,4:testedfwrite.testGzip: Invalid name "testGzip" (should match [a-z_][a-z0-9_]{2,30}$)
+C:293,4:testedfwrite.testGzip: Missing docstring
+C:295,8:testedfwrite.testGzip: Invalid name "e" (should match [a-z_][a-z0-9_]{2,30}$)
+C:297,8:testedfwrite.testGzip: Invalid name "r" (should match [a-z_][a-z0-9_]{2,30}$)
+C:301,4:testedfwrite.testBzip2: Invalid name "testBzip2" (should match [a-z_][a-z0-9_]{2,30}$)
+C:301,4:testedfwrite.testBzip2: Missing docstring
+C:303,8:testedfwrite.testBzip2: Invalid name "e" (should match [a-z_][a-z0-9_]{2,30}$)
+C:305,8:testedfwrite.testBzip2: Invalid name "r" (should match [a-z_][a-z0-9_]{2,30}$)
+C:309,4:testedfwrite.tearDown: Invalid name "tearDown" (should match [a-z_][a-z0-9_]{2,30}$)
+R:276,0:testedfwrite: Too many public methods (48/20)
+W:302,8:testedfwrite.testBzip2: Attribute 'filename' defined outside __init__
+C:313,0:test_suite_all_edf: Missing docstring
+C:314,4:test_suite_all_edf: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:338,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:339,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+239 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |94     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |8      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |7      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |45          |
++-----------+------------+
+|C0301      |44          |
++-----------+------------+
+|R0904      |8           |
++-----------+------------+
+|C0111      |5           |
++-----------+------------+
+|W0622      |2           |
++-----------+------------+
+|W0311      |2           |
++-----------+------------+
+|E1101      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|W0201      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 5.02/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |242    |75.39 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |51     |15.89 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |4      |1.25  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |24     |7.48  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (test.testedfimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |8      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |25     |NC         |NC         |84.00       |56.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testfabioimage.py.lint b/pylint/testfabioimage.py.lint
new file mode 100644
index 0000000..335c978
--- /dev/null
+++ b/pylint/testfabioimage.py.lint
@@ -0,0 +1,146 @@
+No config file found, using default configuration
+
+************* Module test.testfabioimage
+C:100,0: Line too long (90/80)
+C:198,0: Line too long (81/80)
+C:  9,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 10,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 24,0: No exception type(s) specified
+W: 27,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 35,0:test50000: Invalid name "test50000" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 37,4:test50000.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 35,0:test50000: Too many public methods (49/20)
+C: 61,0:testslices: Invalid name "testslices" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 63,4:testslices.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 94,4:testslices.testRebin: Invalid name "testRebin" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 61,0:testslices: Too many public methods (49/20)
+C:103,0:testopen: Invalid name "testopen" (should match [A-Z_][a-zA-Z0-9]+$)
+C:106,4:testopen.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C:116,4:testopen.testFlat: Invalid name "testFlat" (should match [a-z_][a-z0-9_]{2,30}$)
+W:118,14:testopen.testFlat: Access to a protected member _open of a client class
+W:123,14:testopen.testgz: Access to a protected member _open of a client class
+W:128,14:testopen.testbz2: Access to a protected member _open of a client class
+R:103,0:testopen: Too many public methods (48/20)
+C:142,0:testPILimage: Invalid name "testPILimage" (should match [A-Z_][a-zA-Z0-9]+$)
+C:144,4:testPILimage.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R:155,4:testPILimage.mkdata: Method could be a function
+C:160,4:testPILimage.testpil: Missing docstring
+R:142,0:testPILimage: Too many public methods (47/20)
+C:188,0:testPILimage2: Invalid name "testPILimage2" (should match [A-Z_][a-zA-Z0-9]+$)
+R:188,0:testPILimage2: Too many public methods (47/20)
+C:194,0:testPILimage3: Invalid name "testPILimage3" (should match [A-Z_][a-zA-Z0-9]+$)
+R:194,0:testPILimage3: Too many public methods (47/20)
+C:200,0:test_suite_all_fabio: Missing docstring
+C:201,4:test_suite_all_fabio: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:225,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:226,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 30,0: Unused import fabio
+
+
+Report
+======
+136 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |21     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |7      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |6      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |17          |
++-----------+------------+
+|R0904      |6           |
++-----------+------------+
+|W0212      |3           |
++-----------+------------+
+|C0301      |2           |
++-----------+------------+
+|C0111      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0201      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.50/10
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |154    |78.97 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |29     |14.87 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |3      |1.54  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |9      |4.62  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (test.testfabioimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |6      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |19     |NC         |NC         |94.74       |31.58    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testfilenames.py.lint b/pylint/testfilenames.py.lint
new file mode 100644
index 0000000..2cae7a1
--- /dev/null
+++ b/pylint/testfilenames.py.lint
@@ -0,0 +1,102 @@
+************* Module testfilenames
+W: 28,0: No exception type(s) specified
+F: 31,0: Unable to import 'utilstest'
+C: 83,0:testfilenames: Invalid name "testfilenames" (should match [A-Z_][a-zA-Z0-9]+$)
+E: 89,18:testfilenames.test_many_cases: Module 'fabio' has no 'FilenameObject' member
+C: 96,4:testfilenames.test_more_cases: Missing docstring
+C:101,4:testfilenames.test_more_cases_jump: Missing docstring
+C:107,0:test_suite_all_filenames: Missing docstring
+
+
+Report
+======
+49 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |4      |4        |=          |
++-----------+-------+---------+-----------+
+|refactor   |0      |0        |=          |
++-----------+-------+---------+-----------+
+|warning    |1      |1        |=          |
++-----------+-------+---------+-----------+
+|error      |1      |0        |+1.00      |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0111      |3           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|F0401      |1           |
++-----------+------------+
+|E1101      |1           |
++-----------+------------+
+|C0103      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.96/10 (previous run: 8.98/10)
+If you commit now, people should not be making nasty comments about you on c.l.py
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |89     |81.65 |89       |=          |
++----------+-------+------+---------+-----------+
+|docstring |9      |8.26  |9        |=          |
++----------+-------+------+---------+-----------+
+|comment   |3      |2.75  |3        |=          |
++----------+-------+------+---------+-----------+
+|empty     |8      |7.34  |8        |=          |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |3      |3          |=          |33.33       |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |1          |=          |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
diff --git a/pylint/testfit2dmaskimage.py.lint b/pylint/testfit2dmaskimage.py.lint
new file mode 100644
index 0000000..ba4d2fd
--- /dev/null
+++ b/pylint/testfit2dmaskimage.py.lint
@@ -0,0 +1,118 @@
+No config file found, using default configuration
+
+************* Module test.testfit2dmaskimage
+C: 14,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 15,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 29,0: No exception type(s) specified
+W: 32,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 39,0:testfacemask: Invalid name "testfacemask" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 42,4:testfacemask.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 39,0:testfacemask: Too many public methods (46/20)
+C: 63,0:testclickedmask: Invalid name "testclickedmask" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 66,4:testclickedmask.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 63,0:testclickedmask: Too many public methods (47/20)
+C: 99,0:test_suite_all_fit2d: Missing docstring
+C:100,4:test_suite_all_fit2d: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:107,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:108,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+70 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |10     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |9           |
++-----------+------------+
+|R0904      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 8.00/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |70     |67.31 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |15     |14.42 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |4      |3.85  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |15     |14.42 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (test.testfit2dmaskimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |2      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |5      |NC         |NC         |100.00      |40.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testheadernotsingleton.py.lint b/pylint/testheadernotsingleton.py.lint
new file mode 100644
index 0000000..26edbcd
--- /dev/null
+++ b/pylint/testheadernotsingleton.py.lint
@@ -0,0 +1,109 @@
+No config file found, using default configuration
+
+************* Module test.testheadernotsingleton
+C: 10,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 11,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 25,0: No exception type(s) specified
+W: 28,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 34,0:testheadernotsingleton: Invalid name "testheadernotsingleton" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 34,0:testheadernotsingleton: Missing docstring
+C: 36,4:testheadernotsingleton.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 43,4:testheadernotsingleton.testheader: Missing docstring
+R: 34,0:testheadernotsingleton: Too many public methods (46/20)
+C: 55,0:test_suite_all_header: Missing docstring
+C: 56,4:test_suite_all_header: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 61,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 62,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+44 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |10     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |7           |
++-----------+------------+
+|C0111      |3           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.05/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |44     |74.58 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |8      |13.56 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |3.39  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |5      |8.47  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |2      |NC         |NC         |50.00       |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testkcdimage.py.lint b/pylint/testkcdimage.py.lint
new file mode 100644
index 0000000..61cfb96
--- /dev/null
+++ b/pylint/testkcdimage.py.lint
@@ -0,0 +1,118 @@
+No config file found, using default configuration
+
+************* Module test.testkcdimage
+C: 42,0: Line too long (88/80)
+C: 69,0: Line too long (81/80)
+C: 10,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 11,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 25,0: No exception type(s) specified
+W: 28,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 38,0:testkcd: Invalid name "testkcd" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 47,8:testkcd.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 45,4:testkcd.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 56,8:testkcd.test_read: Unused variable 'name'
+R: 38,0:testkcd: Too many public methods (47/20)
+C: 77,0:test_suite_all_kcd: Missing docstring
+C: 78,4:test_suite_all_kcd: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 84,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 85,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 33,0: Unused import edfimage
+
+
+Report
+======
+62 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |11     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |4      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |8           |
++-----------+------------+
+|C0301      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0612      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.42/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |61     |76.25 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |9      |11.25 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |2.50  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |8      |10.00 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |3      |NC         |NC         |100.00      |33.33    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testmar345image.py.lint b/pylint/testmar345image.py.lint
new file mode 100644
index 0000000..4f76630
--- /dev/null
+++ b/pylint/testmar345image.py.lint
@@ -0,0 +1,122 @@
+No config file found, using default configuration
+
+************* Module test.testmar345image
+C: 61,0: Line too long (98/80)
+C: 62,0: Line too long (98/80)
+C: 63,0: Line too long (101/80)
+C: 64,0: Line too long (111/80)
+C: 78,0: Line too long (86/80)
+C: 82,0: Line too long (81/80)
+C: 83,0: Line too long (154/80)
+C:  9,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 10,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 24,0: No exception type(s) specified
+W: 27,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 39,0:testMAR345: Invalid name "testMAR345" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 39,0:testMAR345: Missing docstring
+C: 40,4:testMAR345.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 46,4:testMAR345.tearDown: Invalid name "tearDown" (should match [a-z_][a-z0-9_]{2,30}$)
+W: 56,18:testMAR345.test_read: Unused variable 'dim2'
+W: 91,16:testMAR345.test_memoryleak: Unused variable 'img'
+R: 39,0:testMAR345: Too many public methods (48/20)
+C: 96,0:test_suite_all_mar345: Missing docstring
+C: 97,4:test_suite_all_mar345: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:105,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:106,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+76 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |17     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |4      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |8           |
++-----------+------------+
+|C0301      |7           |
++-----------+------------+
+|W0612      |2           |
++-----------+------------+
+|C0111      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.11/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |77     |73.33 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |15     |14.29 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |3      |2.86  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |10     |9.52  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |5      |NC         |NC         |100.00      |40.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testmccdimage.py.lint b/pylint/testmccdimage.py.lint
new file mode 100644
index 0000000..d86a742
--- /dev/null
+++ b/pylint/testmccdimage.py.lint
@@ -0,0 +1,128 @@
+No config file found, using default configuration
+
+************* Module test.testmccdimage
+C: 50,0: Line too long (89/80)
+C: 63,0: Line too long (81/80)
+C: 10,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 11,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 25,0: No exception type(s) specified
+W: 28,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 45,0:testnormaltifok: Invalid name "testnormaltifok" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 51,4:testnormaltifok.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 60,4:testnormaltifok.test_read_openimage: Missing docstring
+R: 45,0:testnormaltifok: Too many public methods (46/20)
+C: 73,0:testflatmccds: Invalid name "testflatmccds" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 75,8:testflatmccds.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 73,0:testflatmccds: Missing docstring
+C: 74,4:testflatmccds.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 73,0:testflatmccds: Too many public methods (46/20)
+C:103,0:test_suite_all_mccd: Missing docstring
+C:104,4:test_suite_all_mccd: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:110,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:111,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 31,0: Unused import fabio
+
+
+Report
+======
+74 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |15     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |10          |
++-----------+------------+
+|C0111      |3           |
++-----------+------------+
+|R0904      |2           |
++-----------+------------+
+|C0301      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.30/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |80     |72.73 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |12     |10.91 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |4      |3.64  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |14     |12.73 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (test.testmccdimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |2      |NC         |NC         |50.00       |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |4      |NC         |NC         |75.00       |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testopenheader.py.lint b/pylint/testopenheader.py.lint
new file mode 100644
index 0000000..b690527
--- /dev/null
+++ b/pylint/testopenheader.py.lint
@@ -0,0 +1,113 @@
+No config file found, using default configuration
+
+************* Module test.testopenheader
+C: 36,0: Line too long (83/80)
+C:  8,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:  9,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 23,0: No exception type(s) specified
+W: 26,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 33,0:test1: Invalid name "test1" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 35,4:test1.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 33,0:test1: Too many public methods (46/20)
+C: 50,0:test_suite_all_openheader: Missing docstring
+C: 51,4:test_suite_all_openheader: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 56,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 57,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 29,0: Unused import fabio
+
+
+Report
+======
+40 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |9      |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |1      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |7           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|C0301      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 6.75/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |40     |72.73 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |7      |12.73 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |3.64  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |6      |10.91 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |2      |NC         |NC         |100.00      |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testopenimage.py.lint b/pylint/testopenimage.py.lint
new file mode 100644
index 0000000..e517821
--- /dev/null
+++ b/pylint/testopenimage.py.lint
@@ -0,0 +1,161 @@
+No config file found, using default configuration
+
+************* Module test.testopenimage
+C: 54,0: Line too long (84/80)
+C: 81,0: Line too long (84/80)
+C:112,0: Line too long (84/80)
+C:113,0: Line too long (84/80)
+C:140,0: Line too long (84/80)
+C:166,0: Line too long (84/80)
+C:193,0: Line too long (84/80)
+C:  9,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 10,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 24,0: No exception type(s) specified
+W: 27,0: Relative import 'utilstest', should be 'test.utilstest'
+W: 32,0: Relative import 'utilstest', should be 'test.utilstest'
+W: 32,0: Reimport 'UtilsTest' (imported line 27)
+C: 41,0:testopenedf: Invalid name "testopenedf" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 44,4:testopenedf.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 41,0:testopenedf: Too many public methods (46/20)
+C: 58,0:testedfgz: Invalid name "testedfgz" (should match [A-Z_][a-zA-Z0-9]+$)
+R: 58,0:testedfgz: Too many public methods (46/20)
+C: 63,0:testedfbz2: Invalid name "testedfbz2" (should match [A-Z_][a-zA-Z0-9]+$)
+R: 63,0:testedfbz2: Too many public methods (46/20)
+C: 69,0:testopenmccd: Invalid name "testopenmccd" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 72,4:testopenmccd.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 69,0:testopenmccd: Too many public methods (46/20)
+C: 85,0:testmccdgz: Invalid name "testmccdgz" (should match [A-Z_][a-zA-Z0-9]+$)
+R: 85,0:testmccdgz: Too many public methods (46/20)
+C: 90,0:testmccdbz2: Invalid name "testmccdbz2" (should match [A-Z_][a-zA-Z0-9]+$)
+R: 90,0:testmccdbz2: Too many public methods (46/20)
+C: 98,0:testmask: Invalid name "testmask" (should match [A-Z_][a-zA-Z0-9]+$)
+C:101,4:testmask.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 98,0:testmask: Too many public methods (46/20)
+C:116,0:testmaskgz: Invalid name "testmaskgz" (should match [A-Z_][a-zA-Z0-9]+$)
+R:116,0:testmaskgz: Too many public methods (46/20)
+C:120,0:testmaskbz2: Invalid name "testmaskbz2" (should match [A-Z_][a-zA-Z0-9]+$)
+R:120,0:testmaskbz2: Too many public methods (46/20)
+C:128,0:testbruker: Invalid name "testbruker" (should match [A-Z_][a-zA-Z0-9]+$)
+C:131,4:testbruker.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R:128,0:testbruker: Too many public methods (46/20)
+C:143,0:testbrukergz: Invalid name "testbrukergz" (should match [A-Z_][a-zA-Z0-9]+$)
+R:143,0:testbrukergz: Too many public methods (46/20)
+C:147,0:testbrukerbz2: Invalid name "testbrukerbz2" (should match [A-Z_][a-zA-Z0-9]+$)
+R:147,0:testbrukerbz2: Too many public methods (46/20)
+C:154,0:testadsc: Invalid name "testadsc" (should match [A-Z_][a-zA-Z0-9]+$)
+C:157,4:testadsc.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R:154,0:testadsc: Too many public methods (46/20)
+C:169,0:testadscgz: Invalid name "testadscgz" (should match [A-Z_][a-zA-Z0-9]+$)
+R:169,0:testadscgz: Too many public methods (46/20)
+C:173,0:testadscbz2: Invalid name "testadscbz2" (should match [A-Z_][a-zA-Z0-9]+$)
+R:173,0:testadscbz2: Too many public methods (46/20)
+C:181,0:testOXD: Invalid name "testOXD" (should match [A-Z_][a-zA-Z0-9]+$)
+C:184,4:testOXD.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R:181,0:testOXD: Too many public methods (46/20)
+C:197,0:testOXDUNC: Invalid name "testOXDUNC" (should match [A-Z_][a-zA-Z0-9]+$)
+C:200,4:testOXDUNC.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+R:197,0:testOXDUNC: Too many public methods (46/20)
+C:204,0:test_suite_all_openimage: Missing docstring
+C:205,4:test_suite_all_openimage: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:232,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:233,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 30,0: Unused import fabio
+
+
+Report
+======
+145 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |37     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |17     |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |5      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |29          |
++-----------+------------+
+|R0904      |17          |
++-----------+------------+
+|C0301      |7           |
++-----------+------------+
+|W0403      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0611      |1           |
++-----------+------------+
+|W0404      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 5.93/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |144    |68.57 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |29     |13.81 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |4      |1.90  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |33     |15.71 |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |17     |NC         |NC         |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |13     |NC         |NC         |100.00      |53.85    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testtifgz.py.lint b/pylint/testtifgz.py.lint
new file mode 100644
index 0000000..b3cf633
--- /dev/null
+++ b/pylint/testtifgz.py.lint
@@ -0,0 +1,118 @@
+No config file found, using default configuration
+
+************* Module test.testtifgz
+C: 10,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 11,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 25,0: No exception type(s) specified
+W: 28,0: Relative import 'utilstest', should be 'test.utilstest'
+C: 34,0:testgziptif: Invalid name "testgziptif" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 34,0:testgziptif: Missing docstring
+C: 35,4:testgziptif.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 41,4:testgziptif.test1: Missing docstring
+C: 42,8:testgziptif.test1: Invalid name "o1" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 43,8:testgziptif.test1: Invalid name "o2" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 34,0:testgziptif: Too many public methods (46/20)
+C: 48,0:testtif_rect: Invalid name "testtif_rect" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 50,8:testtif_rect.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 48,0:testtif_rect: Missing docstring
+C: 49,4:testtif_rect.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 52,4:testtif_rect.test1: Missing docstring
+C: 54,12:testtif_rect.test1: Invalid name "o1" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 48,0:testtif_rect: Too many public methods (46/20)
+C: 58,0:test_suite_all_tiff: Missing docstring
+C: 59,4:test_suite_all_tiff: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 65,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 66,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+49 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |18     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |13          |
++-----------+------------+
+|C0111      |5           |
++-----------+------------+
+|R0904      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+|W0403      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 5.51/10
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |48     |78.69 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |5      |8.20  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |3.28  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |6      |9.84  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |2      |NC         |NC         |0.00        |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |4      |NC         |NC         |50.00       |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/testtifimage.py.lint b/pylint/testtifimage.py.lint
new file mode 100644
index 0000000..857bb55
--- /dev/null
+++ b/pylint/testtifimage.py.lint
@@ -0,0 +1,132 @@
+No config file found, using default configuration
+
+************* Module test.testtifimage
+C: 13,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 14,0: Invalid name "force_build" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 28,0: No exception type(s) specified
+W: 31,0: Relative import 'utilstest', should be 'test.utilstest'
+W: 35,0: Relative import 'testtifgz', should be 'test.testtifgz'
+C: 37,0:testtifimage_pilatus: Invalid name "testtifimage_pilatus" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 39,8:testtifimage_pilatus.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 37,0:testtifimage_pilatus: Missing docstring
+C: 38,4:testtifimage_pilatus.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 50,8:testtifimage_pilatus.test1: Invalid name "o1" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 51,8:testtifimage_pilatus.test1: Invalid name "o2" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 37,0:testtifimage_pilatus: Too many public methods (46/20)
+C: 54,0:testtifimage_packbits: Invalid name "testtifimage_packbits" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 56,8:testtifimage_packbits.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 54,0:testtifimage_packbits: Missing docstring
+C: 55,4:testtifimage_packbits.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 66,8:testtifimage_packbits.test1: Invalid name "o1" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 67,8:testtifimage_packbits.test1: Invalid name "o2" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 54,0:testtifimage_packbits: Too many public methods (46/20)
+C: 70,0:testtifimage_fit2d: Invalid name "testtifimage_fit2d" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 72,8:testtifimage_fit2d.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 70,0:testtifimage_fit2d: Missing docstring
+C: 71,4:testtifimage_fit2d.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 82,8:testtifimage_fit2d.test1: Invalid name "o1" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 83,8:testtifimage_fit2d.test1: Invalid name "o2" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 70,0:testtifimage_fit2d: Too many public methods (46/20)
+C: 86,0:testtifimage_a0009: Invalid name "testtifimage_a0009" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 95,8:testtifimage_a0009.setUp: Invalid name "fn" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 94,4:testtifimage_a0009.setUp: Invalid name "setUp" (should match [a-z_][a-z0-9_]{2,30}$)
+C:105,8:testtifimage_a0009.test1: Invalid name "o1" (should match [a-z_][a-z0-9_]{2,30}$)
+C:106,8:testtifimage_a0009.test1: Invalid name "o2" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 86,0:testtifimage_a0009: Too many public methods (46/20)
+C:110,0:test_suite_all_tiffimage: Missing docstring
+C:111,4:test_suite_all_tiffimage: Invalid name "testSuite" (should match [a-z_][a-z0-9_]{2,30}$)
+C:121,4: Invalid name "mysuite" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:122,4: Invalid name "runner" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+83 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |29     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |4      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |3      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |25          |
++-----------+------------+
+|R0904      |4           |
++-----------+------------+
+|C0111      |4           |
++-----------+------------+
+|W0403      |2           |
++-----------+------------+
+|W0702      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 5.66/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |82     |69.49 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |24     |20.34 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |2      |1.69  |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |10     |8.47  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |4      |NC         |NC         |25.00       |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |8      |NC         |NC         |100.00      |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/tifimage.py.lint b/pylint/tifimage.py.lint
new file mode 100644
index 0000000..7f42509
--- /dev/null
+++ b/pylint/tifimage.py.lint
@@ -0,0 +1,165 @@
+No config file found, using default configuration
+
+************* Module tifimage
+C:  5,0: Line too long (84/80)
+C: 48,0: Line too long (167/80)
+C:108,0: Line too long (112/80)
+C:131,0: Line too long (98/80)
+C:139,0: Line too long (120/80)
+C:155,0: Line too long (112/80)
+C:156,0: Line too long (101/80)
+C:157,0: Line too long (106/80)
+C:160,0: Line too long (100/80)
+C:176,0: Line too long (100/80)
+C:216,0: Line too long (85/80)
+C:226,0: Line too long (89/80)
+C:248,0: Line too long (94/80)
+C:273,0: Line too long (88/80)
+C:276,0: Line too long (84/80)
+C:281,0: Line too long (84/80)
+C:287,0: Line too long (84/80)
+C:289,0: Line too long (170/80)
+C: 28,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 33,4: Invalid name "Image" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 52,0: Invalid name "baseline_tiff_tags" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 80,0:tifimage: Too many instance attributes (9/7)
+C: 80,0:tifimage: Invalid name "tifimage" (should match [A-Z_][a-zA-Z0-9]+$)
+W:130,15:tifimage.read: Catching too general exception Exception
+C:125,12:tifimage.read: Invalid name "tiffIO" (should match [a-z_][a-z0-9_]{2,30}$)
+W:147,23:tifimage.read: Catching too general exception Exception
+R:116,4:tifimage.read: Too many branches (13/12)
+W:136,38:tifimage.read: Unused variable 'ncol'
+C:175,8:tifimage.write: Invalid name "tiffIO" (should match [a-z_][a-z0-9_]{2,30}$)
+R: 80,0:tifimage: Too many public methods (25/20)
+C:181,0:Tiff_header: Invalid name "Tiff_header" (should match [A-Z_][a-zA-Z0-9]+$)
+C:181,0:Tiff_header: Missing docstring
+R:181,0:Tiff_header: Too few public methods (0/2)
+C:205,0:Image_File_Directory: Invalid name "Image_File_Directory" (should match [A-Z_][a-zA-Z0-9]+$)
+C:205,0:Image_File_Directory: Missing docstring
+W:206,23:Image_File_Directory.__init__: Unused argument 'instring'
+C:211,4:Image_File_Directory.unpack: Missing docstring
+C:212,27:Image_File_Directory.unpack: More than one statement on a single line
+C:214,8:Image_File_Directory.unpack: Invalid name "strInput" (should match [a-z_][a-z0-9_]{2,30}$)
+C:218,12:Image_File_Directory.unpack: Invalid name "e" (should match [a-z_][a-z0-9_]{2,30}$)
+C:222,16:Image_File_Directory.unpack: Invalid name "e" (should match [a-z_][a-z0-9_]{2,30}$)
+R:205,0:Image_File_Directory: Too few public methods (1/2)
+C:229,0:Image_File_Directory_entry: Invalid name "Image_File_Directory_entry" (should match [A-Z_][a-zA-Z0-9]+$)
+C:229,0:Image_File_Directory_entry: Missing docstring
+C:237,4:Image_File_Directory_entry.unpack: Invalid name "strInput" (should match [a-z_][a-z0-9_]{2,30}$)
+C:237,4:Image_File_Directory_entry.unpack: Missing docstring
+C:237,21:Image_File_Directory_entry.unpack: Invalid name "strInput" (should match [a-z_][a-z0-9_]{2,30}$)
+C:258,4:Image_File_Directory_entry.extract_data: Missing docstring
+R:258,4:Image_File_Directory_entry.extract_data: Too many branches (15/12)
+
+
+Report
+======
+168 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |39     |35       |+4.00      |
++-----------+-------+---------+-----------+
+|refactor   |6      |4        |+2.00      |
++-----------+-------+---------+-----------+
+|warning    |4      |3        |+1.00      |
++-----------+-------+---------+-----------+
+|error      |0      |10       |-10.00     |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0301      |18          |
++-----------+------------+
+|C0103      |14          |
++-----------+------------+
+|C0111      |6           |
++-----------+------------+
+|W0703      |2           |
++-----------+------------+
+|R0912      |2           |
++-----------+------------+
+|R0903      |2           |
++-----------+------------+
+|W0613      |1           |
++-----------+------------+
+|W0612      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+|C0321      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.08/10 (previous run: 3.99/10)
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |199    |72.36 |183      |+16.00     |
++----------+-------+------+---------+-----------+
+|docstring |38     |13.82 |33       |+5.00      |
++----------+-------+------+---------+-----------+
+|comment   |18     |6.55  |18       |=          |
++----------+-------+------+---------+-----------+
+|empty     |20     |7.27  |18       |+2.00      |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (tifimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |4      |4          |=          |25.00       |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |10     |10         |=          |70.00       |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/utilstest.py.lint b/pylint/utilstest.py.lint
new file mode 100644
index 0000000..398effe
--- /dev/null
+++ b/pylint/utilstest.py.lint
@@ -0,0 +1,115 @@
+No config file found, using default configuration
+
+************* Module test.utilstest
+C: 62,0: Line too long (86/80)
+C: 71,0: Line too long (95/80)
+C: 84,0: Line too long (99/80)
+C:  1,0: Missing docstring
+C: 42,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 71,12:UtilsTest: Used * or ** magic
+W: 73,4:UtilsTest: Specify string format arguments as logging function parameters
+C: 76,4:UtilsTest.forceBuild: Invalid name "forceBuild" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 81,8:UtilsTest.forceBuild: Invalid name "p" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 91,4:UtilsTest.timeoutDuringDownload: Invalid name "timeoutDuringDownload" (should match [a-z_][a-z0-9_]{2,30}$)
+C:114,16:UtilsTest.getimage: Invalid name "dictProxies" (should match [a-z_][a-z0-9_]{2,30}$)
+R:103,4:UtilsTest.getimage: Too many branches (16/12)
+R:103,4:UtilsTest.getimage: Too many statements (52/50)
+C:180,4:UtilsTest.recursive_delete: Invalid name "strDirname" (should match [a-z_][a-z0-9_]{2,30}$)
+C:180,25:UtilsTest.recursive_delete: Invalid name "strDirname" (should match [a-z_][a-z0-9_]{2,30}$)
+
+
+Report
+======
+104 statements analysed.
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |11     |NC       |NC         |
++-----------+-------+---------+-----------+
+|refactor   |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|warning    |2      |NC       |NC         |
++-----------+-------+---------+-----------+
+|error      |0      |NC       |NC         |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |7           |
++-----------+------------+
+|C0301      |3           |
++-----------+------------+
+|W1201      |1           |
++-----------+------------+
+|W0142      |1           |
++-----------+------------+
+|R0915      |1           |
++-----------+------------+
+|R0912      |1           |
++-----------+------------+
+|C0111      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 8.56/10
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |NC       |NC         |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |NC       |NC         |
++-------------------------+------+---------+-----------+
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |133    |69.27 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|docstring |24     |12.50 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|comment   |26     |13.54 |NC       |NC         |
++----------+-------+------+---------+-----------+
+|empty     |9      |4.69  |NC       |NC         |
++----------+-------+------+---------+-----------+
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |NC         |NC         |0.00        |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |NC         |NC         |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|method   |4      |NC         |NC         |100.00      |50.00    |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |NC         |NC         |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/pylint/xsdimage.py.lint b/pylint/xsdimage.py.lint
new file mode 100644
index 0000000..5e43b41
--- /dev/null
+++ b/pylint/xsdimage.py.lint
@@ -0,0 +1,125 @@
+No config file found, using default configuration
+
+************* Module xsdimage
+C: 21,0: Line too long (110/80)
+C: 80,0: Line too long (158/80)
+C: 86,0: Line too long (92/80)
+C:106,0: Line too long (102/80)
+C:111,0: Line too long (101/80)
+C: 15,0: Invalid name "logger" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 22,4: Invalid name "etree" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R: 24,0:xsdimage: Too many instance attributes (14/7)
+C: 24,0:xsdimage: Invalid name "xsdimage" (should match [A-Z_][a-zA-Z0-9]+$)
+C: 40,8:xsdimage.__init__: Invalid name "rawData" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 72,8:xsdimage.read: Invalid name "decData" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 74,12:xsdimage.read: Invalid name "decData" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 76,12:xsdimage.read: Invalid name "decData" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 78,12:xsdimage.read: Invalid name "decData" (should match [a-z_][a-z0-9_]{2,30}$)
+C: 81,12:xsdimage.read: Invalid name "decData" (should match [a-z_][a-z0-9_]{2,30}$)
+E: 83,20:xsdimage.read: Module 'hashlib' has no 'md5' member
+W:110,19:xsdimage._readheader: Catching too general exception Exception
+R: 24,0:xsdimage: Too many public methods (25/20)
+C:130,4: Invalid name "xsdimage" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+
+
+Report
+======
+95 statements analysed.
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |0     |0        |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |0.000 |0.000    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |15     |16       |-1.00      |
++-----------+-------+---------+-----------+
+|refactor   |2      |2        |=          |
++-----------+-------+---------+-----------+
+|warning    |1      |8        |-7.00      |
++-----------+-------+---------+-----------+
+|error      |1      |9        |-8.00      |
++-----------+-------+---------+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0103      |10          |
++-----------+------------+
+|C0301      |5           |
++-----------+------------+
+|W0703      |1           |
++-----------+------------+
+|R0904      |1           |
++-----------+------------+
+|R0902      |1           |
++-----------+------------+
+|E1101      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 7.58/10 (previous run: 2.53/10)
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |96     |73.85 |96       |=          |
++----------+-------+------+---------+-----------+
+|docstring |22     |16.92 |22       |=          |
++----------+-------+------+---------+-----------+
+|comment   |2      |1.54  |2        |=          |
++----------+-------+------+---------+-----------+
+|empty     |10     |7.69  |10       |=          |
++----------+-------+------+---------+-----------+
+
+
+
+External dependencies
+---------------------
+::
+
+    numpy (xsdimage)
+
+
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |1      |1          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |1      |1          |=          |100.00      |100.00   |
++---------+-------+-----------+-----------+------------+---------+
+|method   |3      |3          |=          |100.00      |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|function |0      |0          |=          |0           |0        |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
diff --git a/setup.py b/setup.py
index ab1b940..ebae18c 100644
--- a/setup.py
+++ b/setup.py
@@ -1,15 +1,16 @@
 #!/usr/bin/env python
-#coding: utf8
+# coding: utf8
 
 """
 Setup script for python distutils package and fabio
 """
+import os, sys
 import os.path as op
 try:
     from setuptools import setup
 except ImportError:
     from distutils.core import setup
-from distutils.core import Extension
+from distutils.core import Extension, Command
 from numpy.distutils.misc_util import get_numpy_include_dirs
 
 
@@ -25,13 +26,57 @@ mar345_backend = Extension('mar345_IO',
                            include_dirs=get_numpy_include_dirs(),
                            sources=['src/mar345_IO.c',
                                     'src/ccp4_pack.c',
-#                                    'src/pack_c.c',
                                       ])
 
 version = [eval(l.split("=")[1])
-           for l in open(op.join(op.dirname(op.abspath(__file__)), "fabio", "__init__.py"))
+           for l in open(op.join(op.dirname(op.abspath(__file__)), "fabio-src", "__init__.py"))
            if l.strip().startswith("version")][0]
+#######################
+# build_doc commandes #
+#######################
+cmdclass = {}
 
+try:
+    import sphinx
+    import sphinx.util.console
+    sphinx.util.console.color_terminal = lambda: False
+    from sphinx.setup_command import BuildDoc
+except ImportError:
+    sphinx = None
+
+if sphinx:
+    class build_doc(BuildDoc):
+
+        def run(self):
+            # make sure the python path is pointing to the newly built
+            # code so that the documentation is built on this and not a
+            # previously installed version
+
+            build = self.get_finalized_command('build')
+            print(os.path.abspath(build.build_lib))
+            sys.path.insert(0, os.path.abspath(build.build_lib))
+            # we need to reload PyMca from the build directory and not
+            # the one from the source directory which does not contain
+            # the extensions
+            BuildDoc.run(self)
+            sys.path.pop(0)
+    cmdclass['build_doc'] = build_doc
+
+class PyTest(Command):
+    user_options = []
+    def initialize_options(self):
+        pass
+    def finalize_options(self):
+        pass
+    def run(self):
+        import subprocess
+        os.chdir(os.path.join(os.path.dirname(os.path.abspath(__file__)), "test"))
+        errno = subprocess.call([sys.executable, 'test_all.py'])
+        if errno != 0:
+            raise SystemExit(errno)
+        else:
+            os.chdir("..")
+cmdclass['test'] = PyTest
 
 # See the distutils docs...
 setup(name='fabio',
@@ -40,10 +85,29 @@ setup(name='fabio',
       author_email="fable-talk at lists.sourceforge.net",
       description='Image IO for fable',
       url="http://fable.wiki.sourceforge.net/fabio",
-      download_url="http://sourceforge.net/projects/fable/files/fabio/0.0.9",
+      download_url="http://sourceforge.net/projects/fable/files/fabio/0.1.2",
       ext_package="fabio",
       ext_modules=[mar345_backend, cf_backend, byteOffset_backend],
       packages=["fabio"],
-      package_dir={"fabio": "fabio" },
-      test_suite="test"
-      )
+      package_dir={"fabio": "fabio-src" },
+      test_suite="test",
+      cmdclass=cmdclass,
+      classifiers=[
+          'Development Status :: 5 - Production/Stable',
+          'Environment :: Console',
+          'Intended Audience :: End Users/Desktop',
+          'Intended Audience :: Developers',
+          'Intended Audience :: Science/Research',
+          "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)",
+          'Operating System :: MacOS :: MacOS X',
+          'Operating System :: Microsoft :: Windows',
+          'Operating System :: POSIX',
+          'Programming Language :: Python',
+          'Programming Language :: Cython',
+          'Programming Language :: C',
+          'Topic :: Scientific/Engineering :: Chemistry',
+          'Topic :: Scientific/Engineering :: Bio-Informatics',
+          'Topic :: Scientific/Engineering :: Physics',
+          'Topic :: Scientific/Engineering :: Visualization',
+          'Topic :: Software Development :: Libraries :: Python Modules',
+          ],)
diff --git a/src/byte_offset.html b/src/byte_offset.html
deleted file mode 100644
index d4eaae1..0000000
--- a/src/byte_offset.html
+++ /dev/null
@@ -1,1240 +0,0 @@
-<!-- Generated by Cython 0.15.1+ on Fri Dec  9 12:19:09 2011 -->
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<style type="text/css">
-
-body { font-family: courier; font-size: 12; }
-
-.code  { font-size: 9; color: #444444; display: none; margin-left: 20px; }
-.py_c_api  { color: red; }
-.py_macro_api  { color: #FF7000; }
-.pyx_c_api  { color: #FF3000; }
-.pyx_macro_api  { color: #FF7000; }
-.refnanny  { color: #FFA000; }
-
-.error_goto  { color: #FFA000; }
-
-.tag  {  }
-
-.coerce  { color: #008000; border: 1px dotted #008000 }
-
-.py_attr { color: #FF0000; font-weight: bold; }
-.c_attr  { color: #0000FF; }
-
-.py_call { color: #FF0000; font-weight: bold; }
-.c_call  { color: #0000FF; }
-
-.line { margin: 0em }
-
-</style>
-<script>
-function toggleDiv(id) {
-    theDiv = document.getElementById(id);
-    if (theDiv.style.display == 'none') theDiv.style.display = 'block';
-    else theDiv.style.display = 'none';
-}
-</script>
-</head>
-        <body>
-<p>Generated by Cython 0.15.1+ on Fri Dec  9 12:19:09 2011
-<p>Raw output: <a href="byte_offset.c">byte_offset.c</a>
-<pre class='line' style='background-color: #FFFF79' onclick='toggleDiv("line1")'> 1: """</pre>
-<pre id='line1' class='code' style='background-color: #FFFF79'>
-  /* "byte_offset.pyx":1
- * """             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * Authors:      Jerome Kieffer, ESRF
- * Email:        jerome.kieffer at esrf.eu
- */
-  __pyx_t_1 = <span class='py_c_api'>PyDict_New</span>();<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(((PyObject *)__pyx_t_1));
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_1)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line2")'> 2: Authors:      Jerome Kieffer, ESRF</pre>
-<pre id='line2' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line3")'> 3: Email:        jerome.kieffer at esrf.eu</pre>
-<pre id='line3' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line4")'> 4: </pre>
-<pre id='line4' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line5")'> 5: Cif Binary Files images are 2D images written by the Pilatus detector and others.</pre>
-<pre id='line5' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line6")'> 6: They use a modified (simplified) byte-offset algorithm.  This file contains the</pre>
-<pre id='line6' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line7")'> 7: decompression function from a string to an int64 numpy array.</pre>
-<pre id='line7' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line8")'> 8: </pre>
-<pre id='line8' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line9")'> 9: This is Cython: convert it to pure C then compile it with gcc</pre>
-<pre id='line9' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line10")'> 10: $ cython byte_offset.pyx</pre>
-<pre id='line10' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line11")'> 11: </pre>
-<pre id='line11' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line12")'> 12: """</pre>
-<pre id='line12' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line13")'> 13: </pre>
-<pre id='line13' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line14")'> 14: __author__ = "Jérôme Kieffer"</pre>
-<pre id='line14' class='code' style='background-color: #FFFFaa'>
-  /* "byte_offset.pyx":14
- * """
- * 
- * __author__ = "Jrme Kieffer"             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * __contact__ = "jerome.kieffer at esrf.eu"
- * __license__ = "GPLv3+"
- */
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____author__, ((PyObject *)__pyx_kp_s_14)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-</pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line15")'> 15: __contact__ = "jerome.kieffer at esrf.eu"</pre>
-<pre id='line15' class='code' style='background-color: #FFFFaa'>
-  /* "byte_offset.pyx":15
- * 
- * __author__ = "Jrme Kieffer"
- * __contact__ = "jerome.kieffer at esrf.eu"             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * __license__ = "GPLv3+"
- * __copyright__ = "2010, European Synchrotron Radiation Facility, Grenoble, France"
- */
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____contact__, ((PyObject *)__pyx_kp_s_15)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-</pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line16")'> 16: __license__ = "GPLv3+"</pre>
-<pre id='line16' class='code' style='background-color: #FFFFaa'>
-  /* "byte_offset.pyx":16
- * __author__ = "Jrme Kieffer"
- * __contact__ = "jerome.kieffer at esrf.eu"
- * __license__ = "GPLv3+"             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * __copyright__ = "2010, European Synchrotron Radiation Facility, Grenoble, France"
- * 
- */
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____license__, ((PyObject *)__pyx_kp_s_16)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-</pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line17")'> 17: __copyright__ = "2010, European Synchrotron Radiation Facility, Grenoble, France"</pre>
-<pre id='line17' class='code' style='background-color: #FFFFaa'>
-  /* "byte_offset.pyx":17
- * __contact__ = "jerome.kieffer at esrf.eu"
- * __license__ = "GPLv3+"
- * __copyright__ = "2010, European Synchrotron Radiation Facility, Grenoble, France"             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * 
- * 
- */
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____copyright__, ((PyObject *)__pyx_kp_s_17)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line18")'> 18: </pre>
-<pre id='line18' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line19")'> 19: </pre>
-<pre id='line19' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line20")'> 20: cimport numpy</pre>
-<pre id='line20' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF8d' onclick='toggleDiv("line21")'> 21: import numpy</pre>
-<pre id='line21' class='code' style='background-color: #FFFF8d'>
-  /* "byte_offset.pyx":21
- * 
- * cimport numpy
- * import numpy             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * import cython
- * 
- */
-  __pyx_t_1 = <span class='pyx_c_api'>__Pyx_Import</span>(((PyObject *)__pyx_n_s__numpy), 0, -1);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s__numpy, __pyx_t_1) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line22")'> 22: import cython</pre>
-<pre id='line22' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line23")'> 23: </pre>
-<pre id='line23' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line24")'> 24: @cython.boundscheck(False)</pre>
-<pre id='line24' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF17' onclick='toggleDiv("line25")'> 25: def analyseCython(bytes stream not None, size=None):</pre>
-<pre id='line25' class='code' style='background-color: #FFFF17'>
-/* "byte_offset.pyx":25
- * 
- * @cython.boundscheck(False)
- * def analyseCython(bytes stream not None, size=None):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     """
- *     Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)
- */
-
-static PyObject *__pyx_pf_11byte_offset_analyseCython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_11byte_offset_analyseCython[] = "\n    Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)\n    @param stream: string representing the compressed data\n    @param size: the size of the output array (of longInts)\n    @return : int64 ndArrays \n    ";
-static PyMethodDef __pyx_mdef_11byte_offset_analyseCython = {<span class='pyx_macro_api'>__Pyx_NAMESTR</span>("analyseCython"), (PyCFunction)__pyx_pf_11byte_offset_analyseCython, METH_VARARGS|METH_KEYWORDS, <span class='pyx_macro_api'>__Pyx_DOCSTR</span>(__pyx_doc_11byte_offset_analyseCython)};
-static PyObject *__pyx_pf_11byte_offset_analyseCython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
-  PyObject *__pyx_v_stream = 0;
-  PyObject *__pyx_v_size = 0;
-  int __pyx_v_i;
-  int __pyx_v_j;
-  PY_LONG_LONG __pyx_v_last;
-  PY_LONG_LONG __pyx_v_current;
-  char __pyx_v_tmp8;
-  unsigned char __pyx_v_utmp8a;
-  unsigned char __pyx_v_utmp8b;
-  unsigned char __pyx_v_utmp8c;
-  unsigned char __pyx_v_utmp8d;
-  unsigned char __pyx_v_utmp8e;
-  unsigned char __pyx_v_utmp8f;
-  unsigned char __pyx_v_utmp8g;
-  PY_LONG_LONG __pyx_v_tmp64;
-  PY_LONG_LONG __pyx_v_tmp64a;
-  PY_LONG_LONG __pyx_v_tmp64b;
-  PY_LONG_LONG __pyx_v_tmp64c;
-  PY_LONG_LONG __pyx_v_tmp64d;
-  PY_LONG_LONG __pyx_v_tmp64e;
-  PY_LONG_LONG __pyx_v_tmp64f;
-  PY_LONG_LONG __pyx_v_tmp64g;
-  char __pyx_v_key8;
-  char __pyx_v_key0;
-  int __pyx_v_csize;
-  int __pyx_v_lenStream;
-  char *__pyx_v_cstream;
-  PyArrayObject *__pyx_v_dataOut = 0;
-  __Pyx_LocalBuf_ND __pyx_pybuffernd_dataOut;
-  __Pyx_Buffer __pyx_pybuffer_dataOut;
-  PyObject *__pyx_r = NULL;
-  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__stream,&__pyx_n_s__size,0};
-  <span class='refnanny'>__Pyx_RefNannyDeclarations</span>
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannySetupContext</span></span>("analyseCython");
-  __pyx_self = __pyx_self;
-  {
-    PyObject* values[2] = {0,0};
-    values[1] = ((PyObject *)Py_None);
-    if (unlikely(__pyx_kwds)) {
-      Py_ssize_t kw_args;
-      const Py_ssize_t pos_args = <span class='py_macro_api'>PyTuple_GET_SIZE</span>(__pyx_args);
-      switch (pos_args) {
-        case  2: values[1] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 1);
-        case  1: values[0] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 0);
-        case  0: break;
-        default: goto __pyx_L5_argtuple_error;
-      }
-      kw_args = <span class='py_c_api'>PyDict_Size</span>(__pyx_kwds);
-      switch (pos_args) {
-        case  0:
-        values[0] = <span class='py_c_api'>PyDict_GetItem</span>(__pyx_kwds, __pyx_n_s__stream);
-        if (likely(values[0])) kw_args--;
-        else goto __pyx_L5_argtuple_error;
-        case  1:
-        if (kw_args > 0) {
-          PyObject* value = <span class='py_c_api'>PyDict_GetItem</span>(__pyx_kwds, __pyx_n_s__size);
-          if (value) { values[1] = value; kw_args--; }
-        }
-      }
-      if (unlikely(kw_args > 0)) {
-        if (unlikely(<span class='pyx_c_api'>__Pyx_ParseOptionalKeywords</span>(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "analyseCython") <code><</code> 0))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L3_error;}</span>
-      }
-      __pyx_v_stream = ((PyObject*)values[0]);
-      __pyx_v_size = values[1];
-    } else {
-      switch (<span class='py_macro_api'>PyTuple_GET_SIZE</span>(__pyx_args)) {
-        case  2: values[1] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 1);
-        case  1: values[0] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 0);
-        break;
-        default: goto __pyx_L5_argtuple_error;
-      }
-    }
-    __pyx_v_stream = ((PyObject*)values[0]);
-    __pyx_v_size = values[1];
-  }
-  goto __pyx_L4_argument_unpacking_done;
-  __pyx_L5_argtuple_error:;
-  <span class='pyx_c_api'>__Pyx_RaiseArgtupleInvalid</span>("analyseCython", 0, 1, 2, <span class='py_macro_api'>PyTuple_GET_SIZE</span>(__pyx_args));<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L3_error;}</span>
-  __pyx_L3_error:;
-  <span class='pyx_c_api'>__Pyx_AddTraceback</span>("byte_offset.analyseCython", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannyFinishContext</span></span>();
-  return NULL;
-  __pyx_L4_argument_unpacking_done:;
-  __pyx_pybuffer_dataOut.pybuffer.buf = NULL;
-  __pyx_pybuffer_dataOut.refcount = 0;
-  __pyx_pybuffernd_dataOut.data = NULL;
-  __pyx_pybuffernd_dataOut.rcbuffer = &__pyx_pybuffer_dataOut;
-  if (unlikely(!<span class='pyx_c_api'>__Pyx_ArgTypeTest</span>(((PyObject *)__pyx_v_stream), (&PyBytes_Type), 0, "stream", 1)))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-
-  /* "byte_offset.pyx":25
- * 
- * @cython.boundscheck(False)
- * def analyseCython(bytes stream not None, size=None):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     """
- *     Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)
- */
-  __pyx_k_tuple_18 = <span class='py_c_api'>PyTuple_New</span>(28);<span class='error_goto'> if (unlikely(!__pyx_k_tuple_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_k_tuple_18);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__stream));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 0, ((PyObject *)__pyx_n_s__stream));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__stream));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__size));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 1, ((PyObject *)__pyx_n_s__size));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__size));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__i));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 2, ((PyObject *)__pyx_n_s__i));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__i));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__j));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 3, ((PyObject *)__pyx_n_s__j));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__j));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__last));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 4, ((PyObject *)__pyx_n_s__last));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__last));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__current));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 5, ((PyObject *)__pyx_n_s__current));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__current));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__tmp8));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 6, ((PyObject *)__pyx_n_s__tmp8));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__tmp8));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__utmp8a));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 7, ((PyObject *)__pyx_n_s__utmp8a));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__utmp8a));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__utmp8b));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 8, ((PyObject *)__pyx_n_s__utmp8b));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__utmp8b));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__utmp8c));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 9, ((PyObject *)__pyx_n_s__utmp8c));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__utmp8c));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__utmp8d));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 10, ((PyObject *)__pyx_n_s__utmp8d));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__utmp8d));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__utmp8e));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 11, ((PyObject *)__pyx_n_s__utmp8e));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__utmp8e));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__utmp8f));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 12, ((PyObject *)__pyx_n_s__utmp8f));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__utmp8f));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__utmp8g));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 13, ((PyObject *)__pyx_n_s__utmp8g));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__utmp8g));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__tmp64));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 14, ((PyObject *)__pyx_n_s__tmp64));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__tmp64));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__tmp64a));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 15, ((PyObject *)__pyx_n_s__tmp64a));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__tmp64a));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__tmp64b));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 16, ((PyObject *)__pyx_n_s__tmp64b));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__tmp64b));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__tmp64c));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 17, ((PyObject *)__pyx_n_s__tmp64c));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__tmp64c));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__tmp64d));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 18, ((PyObject *)__pyx_n_s__tmp64d));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__tmp64d));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__tmp64e));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 19, ((PyObject *)__pyx_n_s__tmp64e));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__tmp64e));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__tmp64f));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 20, ((PyObject *)__pyx_n_s__tmp64f));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__tmp64f));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__tmp64g));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 21, ((PyObject *)__pyx_n_s__tmp64g));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__tmp64g));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__key8));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 22, ((PyObject *)__pyx_n_s__key8));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__key8));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__key0));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 23, ((PyObject *)__pyx_n_s__key0));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__key0));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__csize));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 24, ((PyObject *)__pyx_n_s__csize));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__csize));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__lenStream));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 25, ((PyObject *)__pyx_n_s__lenStream));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__lenStream));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__cstream));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 26, ((PyObject *)__pyx_n_s__cstream));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__cstream));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__dataOut));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_18, 27, ((PyObject *)__pyx_n_s__dataOut));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__dataOut));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_k_tuple_18));
-
-  /* "byte_offset.pyx":25
- * 
- * @cython.boundscheck(False)
- * def analyseCython(bytes stream not None, size=None):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     """
- *     Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)
- */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_11byte_offset_analyseCython, NULL, __pyx_n_s__byte_offset);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s__analyseCython, __pyx_t_1) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line26")'> 26:     """</pre>
-<pre id='line26' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line27")'> 27:     Analyze a stream of char with any length of exception (2,4, or 8 bytes integers)</pre>
-<pre id='line27' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line28")'> 28:     @param stream: string representing the compressed data</pre>
-<pre id='line28' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line29")'> 29:     @param size: the size of the output array (of longInts)</pre>
-<pre id='line29' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line30")'> 30:     @return : int64 ndArrays</pre>
-<pre id='line30' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line31")'> 31:     """</pre>
-<pre id='line31' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line32")'> 32: </pre>
-<pre id='line32' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line33")'> 33:     cdef int                i = 0</pre>
-<pre id='line33' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":33
- *     """
- * 
- *     cdef int                i = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef int                j = 0
- *     cdef long long          last = 0
- */
-  __pyx_v_i = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line34")'> 34:     cdef int                j = 0</pre>
-<pre id='line34' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":34
- * 
- *     cdef int                i = 0
- *     cdef int                j = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef long long          last = 0
- *     cdef long long          current = 0
- */
-  __pyx_v_j = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line35")'> 35:     cdef long long          last = 0</pre>
-<pre id='line35' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":35
- *     cdef int                i = 0
- *     cdef int                j = 0
- *     cdef long long          last = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef long long          current = 0
- *     cdef char               tmp8 = 0
- */
-  __pyx_v_last = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line36")'> 36:     cdef long long          current = 0</pre>
-<pre id='line36' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":36
- *     cdef int                j = 0
- *     cdef long long          last = 0
- *     cdef long long          current = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef char               tmp8 = 0
- * 
- */
-  __pyx_v_current = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line37")'> 37:     cdef char               tmp8 = 0</pre>
-<pre id='line37' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":37
- *     cdef long long          last = 0
- *     cdef long long          current = 0
- *     cdef char               tmp8 = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * 
- *     cdef unsigned char      utmp8a = 0
- */
-  __pyx_v_tmp8 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line38")'> 38: </pre>
-<pre id='line38' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line39")'> 39:     cdef unsigned char      utmp8a = 0</pre>
-<pre id='line39' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":39
- *     cdef char               tmp8 = 0
- * 
- *     cdef unsigned char      utmp8a = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef unsigned char      utmp8b = 0
- *     cdef unsigned char      utmp8c = 0
- */
-  __pyx_v_utmp8a = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line40")'> 40:     cdef unsigned char      utmp8b = 0</pre>
-<pre id='line40' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":40
- * 
- *     cdef unsigned char      utmp8a = 0
- *     cdef unsigned char      utmp8b = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef unsigned char      utmp8c = 0
- *     cdef unsigned char      utmp8d = 0
- */
-  __pyx_v_utmp8b = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line41")'> 41:     cdef unsigned char      utmp8c = 0</pre>
-<pre id='line41' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":41
- *     cdef unsigned char      utmp8a = 0
- *     cdef unsigned char      utmp8b = 0
- *     cdef unsigned char      utmp8c = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef unsigned char      utmp8d = 0
- *     cdef unsigned char      utmp8e = 0
- */
-  __pyx_v_utmp8c = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line42")'> 42:     cdef unsigned char      utmp8d = 0</pre>
-<pre id='line42' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":42
- *     cdef unsigned char      utmp8b = 0
- *     cdef unsigned char      utmp8c = 0
- *     cdef unsigned char      utmp8d = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef unsigned char      utmp8e = 0
- *     cdef unsigned char      utmp8f = 0
- */
-  __pyx_v_utmp8d = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line43")'> 43:     cdef unsigned char      utmp8e = 0</pre>
-<pre id='line43' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":43
- *     cdef unsigned char      utmp8c = 0
- *     cdef unsigned char      utmp8d = 0
- *     cdef unsigned char      utmp8e = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef unsigned char      utmp8f = 0
- *     cdef unsigned char      utmp8g = 0
- */
-  __pyx_v_utmp8e = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line44")'> 44:     cdef unsigned char      utmp8f = 0</pre>
-<pre id='line44' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":44
- *     cdef unsigned char      utmp8d = 0
- *     cdef unsigned char      utmp8e = 0
- *     cdef unsigned char      utmp8f = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef unsigned char      utmp8g = 0
- * 
- */
-  __pyx_v_utmp8f = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line45")'> 45:     cdef unsigned char      utmp8g = 0</pre>
-<pre id='line45' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":45
- *     cdef unsigned char      utmp8e = 0
- *     cdef unsigned char      utmp8f = 0
- *     cdef unsigned char      utmp8g = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * 
- *     cdef long long          tmp64 = 0
- */
-  __pyx_v_utmp8g = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line46")'> 46: </pre>
-<pre id='line46' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line47")'> 47:     cdef long long          tmp64 = 0</pre>
-<pre id='line47' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":47
- *     cdef unsigned char      utmp8g = 0
- * 
- *     cdef long long          tmp64 = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef long long          tmp64a = 0
- *     cdef long long          tmp64b = 0
- */
-  __pyx_v_tmp64 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line48")'> 48:     cdef long long          tmp64a = 0</pre>
-<pre id='line48' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":48
- * 
- *     cdef long long          tmp64 = 0
- *     cdef long long          tmp64a = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef long long          tmp64b = 0
- *     cdef long long          tmp64c = 0
- */
-  __pyx_v_tmp64a = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line49")'> 49:     cdef long long          tmp64b = 0</pre>
-<pre id='line49' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":49
- *     cdef long long          tmp64 = 0
- *     cdef long long          tmp64a = 0
- *     cdef long long          tmp64b = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef long long          tmp64c = 0
- *     cdef long long          tmp64d = 0
- */
-  __pyx_v_tmp64b = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line50")'> 50:     cdef long long          tmp64c = 0</pre>
-<pre id='line50' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":50
- *     cdef long long          tmp64a = 0
- *     cdef long long          tmp64b = 0
- *     cdef long long          tmp64c = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef long long          tmp64d = 0
- *     cdef long long          tmp64e = 0
- */
-  __pyx_v_tmp64c = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line51")'> 51:     cdef long long          tmp64d = 0</pre>
-<pre id='line51' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":51
- *     cdef long long          tmp64b = 0
- *     cdef long long          tmp64c = 0
- *     cdef long long          tmp64d = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef long long          tmp64e = 0
- *     cdef long long          tmp64f = 0
- */
-  __pyx_v_tmp64d = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line52")'> 52:     cdef long long          tmp64e = 0</pre>
-<pre id='line52' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":52
- *     cdef long long          tmp64c = 0
- *     cdef long long          tmp64d = 0
- *     cdef long long          tmp64e = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef long long          tmp64f = 0
- *     cdef long long          tmp64g = 0
- */
-  __pyx_v_tmp64e = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line53")'> 53:     cdef long long          tmp64f = 0</pre>
-<pre id='line53' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":53
- *     cdef long long          tmp64d = 0
- *     cdef long long          tmp64e = 0
- *     cdef long long          tmp64f = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef long long          tmp64g = 0
- * 
- */
-  __pyx_v_tmp64f = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line54")'> 54:     cdef long long          tmp64g = 0</pre>
-<pre id='line54' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":54
- *     cdef long long          tmp64e = 0
- *     cdef long long          tmp64f = 0
- *     cdef long long          tmp64g = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * 
- *     cdef char               key8 = 0x80
- */
-  __pyx_v_tmp64g = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line55")'> 55: </pre>
-<pre id='line55' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line56")'> 56:     cdef char               key8 = 0x80</pre>
-<pre id='line56' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":56
- *     cdef long long          tmp64g = 0
- * 
- *     cdef char               key8 = 0x80             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef char               key0 = 0x00
- * 
- */
-  __pyx_v_key8 = 0x80;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line57")'> 57:     cdef char               key0 = 0x00</pre>
-<pre id='line57' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":57
- * 
- *     cdef char               key8 = 0x80
- *     cdef char               key0 = 0x00             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * 
- *     cdef int csize
- */
-  __pyx_v_key0 = 0x00;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line58")'> 58: </pre>
-<pre id='line58' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line59")'> 59:     cdef int csize</pre>
-<pre id='line59' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFe7' onclick='toggleDiv("line60")'> 60:     cdef int lenStream = < int > len(stream)</pre>
-<pre id='line60' class='code' style='background-color: #FFFFe7'>
-  /* "byte_offset.pyx":60
- * 
- *     cdef int csize
- *     cdef int lenStream = <code><</code> int > len(stream)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef char * cstream = stream
- *     if size is None:
- */
-  __pyx_t_1 = <span class='py_macro_api'>PyBytes_GET_SIZE</span>(((PyObject *)__pyx_v_stream)); 
-  __pyx_v_lenStream = ((int)__pyx_t_1);
-</pre><pre class='line' style='background-color: #FFFF7f' onclick='toggleDiv("line61")'> 61:     cdef char * cstream = stream</pre>
-<pre id='line61' class='code' style='background-color: #FFFF7f'>
-  /* "byte_offset.pyx":61
- *     cdef int csize
- *     cdef int lenStream = <code><</code> int > len(stream)
- *     cdef char * cstream = stream             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     if size is None:
- *         csize = lenStream
- */
-  __pyx_t_2 = <span class='py_c_api'>PyBytes_AsString</span>(((PyObject *)__pyx_v_stream));<span class='error_goto'> if (unlikely((!__pyx_t_2) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  __pyx_v_cstream = __pyx_t_2;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line62")'> 62:     if size is None:</pre>
-<pre id='line62' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":62
- *     cdef int lenStream = <code><</code> int > len(stream)
- *     cdef char * cstream = stream
- *     if size is None:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         csize = lenStream
- *     else:
- */
-  __pyx_t_3 = (__pyx_v_size == Py_None);
-  if (__pyx_t_3) {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line63")'> 63:         csize = lenStream</pre>
-<pre id='line63' class='code' style='background-color: #FFFFff'>
-    /* "byte_offset.pyx":63
- *     cdef char * cstream = stream
- *     if size is None:
- *         csize = lenStream             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     else:
- *         csize = <code><</code> int > size
- */
-    __pyx_v_csize = __pyx_v_lenStream;
-    goto __pyx_L6;
-  }
-  /*else*/ {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line64")'> 64:     else:</pre>
-<pre id='line64' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF7f' onclick='toggleDiv("line65")'> 65:         csize = < int > size</pre>
-<pre id='line65' class='code' style='background-color: #FFFF7f'>
-    /* "byte_offset.pyx":65
- *         csize = lenStream
- *     else:
- *         csize = <code><</code> int > size             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef numpy.ndarray[ long long  , ndim = 1] dataOut = numpy.zeros(csize, dtype=numpy.int64)
- *     with nogil:
- */
-    __pyx_t_4 = __Pyx_<span class='py_c_api'>PyInt_AsInt</span>(__pyx_v_size);<span class='error_goto'> if (unlikely((__pyx_t_4 == (int)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_v_csize = ((int)__pyx_t_4);
-  }
-  __pyx_L6:;
-</pre><pre class='line' style='background-color: #FFFF29' onclick='toggleDiv("line66")'> 66:     cdef numpy.ndarray[ long long  , ndim = 1] dataOut = numpy.zeros(csize, dtype=numpy.int64)</pre>
-<pre id='line66' class='code' style='background-color: #FFFF29'>
-  /* "byte_offset.pyx":66
- *     else:
- *         csize = <code><</code> int > size
- *     cdef numpy.ndarray[ long long  , ndim = 1] dataOut = numpy.zeros(csize, dtype=numpy.int64)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     with nogil:
- *         while (i <code><</code> lenStream) and (j <code><</code> csize):
- */
-  __pyx_t_5 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__numpy);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-  __pyx_t_6 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_5, __pyx_n_s__zeros);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_t_5 = <span class='py_c_api'>PyInt_FromLong</span>(__pyx_v_csize);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-  __pyx_t_7 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_7);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_7, 0, __pyx_t_5);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_5);
-  __pyx_t_5 = 0;
-  __pyx_t_5 = <span class='py_c_api'>PyDict_New</span>();<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(((PyObject *)__pyx_t_5));
-  __pyx_t_8 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__numpy);<span class='error_goto'> if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_8);
-  __pyx_t_9 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_8, __pyx_n_s__int64);<span class='error_goto'> if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_9);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_8); __pyx_t_8 = 0;
-  if (<span class='py_c_api'>PyDict_SetItem</span>(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_9); __pyx_t_9 = 0;
-  __pyx_t_9 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_6, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_5));<span class='error_goto'> if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_9);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-  if (!(likely(((__pyx_t_9) == Py_None) || likely(<span class='pyx_c_api'>__Pyx_TypeTest</span>(__pyx_t_9, __pyx_ptype_5numpy_ndarray)))))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
-  {
-    __Pyx_BufFmt_StackElem __pyx_stack[1];
-    if (unlikely(<span class='pyx_c_api'>__Pyx_GetBufferAndValidate</span>(&__pyx_pybuffernd_dataOut.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_PY_LONG_LONG, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
-      __pyx_v_dataOut = ((PyArrayObject *)Py_None); <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None); __pyx_pybuffernd_dataOut.rcbuffer->pybuffer.buf = NULL;
-     <span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    } else {__pyx_pybuffernd_dataOut.diminfo[0].strides = __pyx_pybuffernd_dataOut.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dataOut.diminfo[0].shape = __pyx_pybuffernd_dataOut.rcbuffer->pybuffer.shape[0];
-    }
-  }
-  __pyx_t_10 = 0;
-  __pyx_v_dataOut = ((PyArrayObject *)__pyx_t_9);
-  __pyx_t_9 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line67")'> 67:     with nogil:</pre>
-<pre id='line67' class='code' style='background-color: #FFFFff'>
-  /* "byte_offset.pyx":67
- *         csize = <code><</code> int > size
- *     cdef numpy.ndarray[ long long  , ndim = 1] dataOut = numpy.zeros(csize, dtype=numpy.int64)
- *     with nogil:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         while (i <code><</code> lenStream) and (j <code><</code> csize):
- *             if (cstream[i] == key8):
- */
-  {
-      #ifdef WITH_THREAD
-      PyThreadState *_save = NULL;
-      #endif
-      Py_UNBLOCK_THREADS
-      /*try:*/ {
-
-      /* "byte_offset.pyx":67
- *         csize = <code><</code> int > size
- *     cdef numpy.ndarray[ long long  , ndim = 1] dataOut = numpy.zeros(csize, dtype=numpy.int64)
- *     with nogil:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         while (i <code><</code> lenStream) and (j <code><</code> csize):
- *             if (cstream[i] == key8):
- */
-      /*finally:*/ {
-        Py_BLOCK_THREADS
-      }
-  }
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line68")'> 68:         while (i < lenStream) and (j < csize):</pre>
-<pre id='line68' class='code' style='background-color: #FFFFff'>
-        /* "byte_offset.pyx":68
- *     cdef numpy.ndarray[ long long  , ndim = 1] dataOut = numpy.zeros(csize, dtype=numpy.int64)
- *     with nogil:
- *         while (i <code><</code> lenStream) and (j <code><</code> csize):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *             if (cstream[i] == key8):
- *                 if ((cstream[i + 1] == key0) and (cstream[i + 2] == key8)):
- */
-        while (1) {
-          __pyx_t_3 = (__pyx_v_i <code><</code> __pyx_v_lenStream);
-          if (__pyx_t_3) {
-            __pyx_t_11 = (__pyx_v_j <code><</code> __pyx_v_csize);
-            __pyx_t_12 = __pyx_t_11;
-          } else {
-            __pyx_t_12 = __pyx_t_3;
-          }
-          if (!__pyx_t_12) break;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line69")'> 69:             if (cstream[i] == key8):</pre>
-<pre id='line69' class='code' style='background-color: #FFFFff'>
-          /* "byte_offset.pyx":69
- *     with nogil:
- *         while (i <code><</code> lenStream) and (j <code><</code> csize):
- *             if (cstream[i] == key8):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                 if ((cstream[i + 1] == key0) and (cstream[i + 2] == key8)):
- *                     if (cstream[i + 3] == key0) and (cstream[i + 4] == key0) and (cstream[i + 5] == key0) and (cstream[i + 6] == key8):
- */
-          __pyx_t_12 = ((__pyx_v_cstream[__pyx_v_i]) == __pyx_v_key8);
-          if (__pyx_t_12) {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line70")'> 70:                 if ((cstream[i + 1] == key0) and (cstream[i + 2] == key8)):</pre>
-<pre id='line70' class='code' style='background-color: #FFFFff'>
-            /* "byte_offset.pyx":70
- *         while (i <code><</code> lenStream) and (j <code><</code> csize):
- *             if (cstream[i] == key8):
- *                 if ((cstream[i + 1] == key0) and (cstream[i + 2] == key8)):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                     if (cstream[i + 3] == key0) and (cstream[i + 4] == key0) and (cstream[i + 5] == key0) and (cstream[i + 6] == key8):
- *                         #Retrieve the interesting Bytes of data
- */
-            __pyx_t_12 = ((__pyx_v_cstream[(__pyx_v_i + 1)]) == __pyx_v_key0);
-            if (__pyx_t_12) {
-              __pyx_t_3 = ((__pyx_v_cstream[(__pyx_v_i + 2)]) == __pyx_v_key8);
-              __pyx_t_11 = __pyx_t_3;
-            } else {
-              __pyx_t_11 = __pyx_t_12;
-            }
-            if (__pyx_t_11) {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line71")'> 71:                     if (cstream[i + 3] == key0) and (cstream[i + 4] == key0) and (cstream[i + 5] == key0) and (cstream[i + 6] == key8):</pre>
-<pre id='line71' class='code' style='background-color: #FFFFff'>
-              /* "byte_offset.pyx":71
- *             if (cstream[i] == key8):
- *                 if ((cstream[i + 1] == key0) and (cstream[i + 2] == key8)):
- *                     if (cstream[i + 3] == key0) and (cstream[i + 4] == key0) and (cstream[i + 5] == key0) and (cstream[i + 6] == key8):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         #Retrieve the interesting Bytes of data
- *                         tmp8 = cstream[i + 14]
- */
-              __pyx_t_11 = ((__pyx_v_cstream[(__pyx_v_i + 3)]) == __pyx_v_key0);
-              if (__pyx_t_11) {
-                __pyx_t_12 = ((__pyx_v_cstream[(__pyx_v_i + 4)]) == __pyx_v_key0);
-                if (__pyx_t_12) {
-                  __pyx_t_3 = ((__pyx_v_cstream[(__pyx_v_i + 5)]) == __pyx_v_key0);
-                  if (__pyx_t_3) {
-                    __pyx_t_13 = ((__pyx_v_cstream[(__pyx_v_i + 6)]) == __pyx_v_key8);
-                    __pyx_t_14 = __pyx_t_13;
-                  } else {
-                    __pyx_t_14 = __pyx_t_3;
-                  }
-                  __pyx_t_3 = __pyx_t_14;
-                } else {
-                  __pyx_t_3 = __pyx_t_12;
-                }
-                __pyx_t_12 = __pyx_t_3;
-              } else {
-                __pyx_t_12 = __pyx_t_11;
-              }
-              if (__pyx_t_12) {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line72")'> 72:                         #Retrieve the interesting Bytes of data</pre>
-<pre id='line72' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line73")'> 73:                         tmp8 = cstream[i + 14]</pre>
-<pre id='line73' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":73
- *                     if (cstream[i + 3] == key0) and (cstream[i + 4] == key0) and (cstream[i + 5] == key0) and (cstream[i + 6] == key8):
- *                         #Retrieve the interesting Bytes of data
- *                         tmp8 = cstream[i + 14]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8a = cstream[i + 13]
- *                         utmp8b = cstream[i + 12]
- */
-                __pyx_v_tmp8 = (__pyx_v_cstream[(__pyx_v_i + 14)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line74")'> 74:                         utmp8a = cstream[i + 13]</pre>
-<pre id='line74' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":74
- *                         #Retrieve the interesting Bytes of data
- *                         tmp8 = cstream[i + 14]
- *                         utmp8a = cstream[i + 13]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8b = cstream[i + 12]
- *                         utmp8c = cstream[i + 11]
- */
-                __pyx_v_utmp8a = (__pyx_v_cstream[(__pyx_v_i + 13)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line75")'> 75:                         utmp8b = cstream[i + 12]</pre>
-<pre id='line75' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":75
- *                         tmp8 = cstream[i + 14]
- *                         utmp8a = cstream[i + 13]
- *                         utmp8b = cstream[i + 12]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8c = cstream[i + 11]
- *                         utmp8d = cstream[i + 10]
- */
-                __pyx_v_utmp8b = (__pyx_v_cstream[(__pyx_v_i + 12)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line76")'> 76:                         utmp8c = cstream[i + 11]</pre>
-<pre id='line76' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":76
- *                         utmp8a = cstream[i + 13]
- *                         utmp8b = cstream[i + 12]
- *                         utmp8c = cstream[i + 11]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8d = cstream[i + 10]
- *                         utmp8e = cstream[i + 9]
- */
-                __pyx_v_utmp8c = (__pyx_v_cstream[(__pyx_v_i + 11)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line77")'> 77:                         utmp8d = cstream[i + 10]</pre>
-<pre id='line77' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":77
- *                         utmp8b = cstream[i + 12]
- *                         utmp8c = cstream[i + 11]
- *                         utmp8d = cstream[i + 10]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8e = cstream[i + 9]
- *                         utmp8f = cstream[i + 8]
- */
-                __pyx_v_utmp8d = (__pyx_v_cstream[(__pyx_v_i + 10)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line78")'> 78:                         utmp8e = cstream[i + 9]</pre>
-<pre id='line78' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":78
- *                         utmp8c = cstream[i + 11]
- *                         utmp8d = cstream[i + 10]
- *                         utmp8e = cstream[i + 9]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8f = cstream[i + 8]
- *                         utmp8g = cstream[i + 7]
- */
-                __pyx_v_utmp8e = (__pyx_v_cstream[(__pyx_v_i + 9)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line79")'> 79:                         utmp8f = cstream[i + 8]</pre>
-<pre id='line79' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":79
- *                         utmp8d = cstream[i + 10]
- *                         utmp8e = cstream[i + 9]
- *                         utmp8f = cstream[i + 8]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8g = cstream[i + 7]
- *                         # cast them  in 64 bit
- */
-                __pyx_v_utmp8f = (__pyx_v_cstream[(__pyx_v_i + 8)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line80")'> 80:                         utmp8g = cstream[i + 7]</pre>
-<pre id='line80' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":80
- *                         utmp8e = cstream[i + 9]
- *                         utmp8f = cstream[i + 8]
- *                         utmp8g = cstream[i + 7]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         # cast them  in 64 bit
- *                         tmp64 = tmp8
- */
-                __pyx_v_utmp8g = (__pyx_v_cstream[(__pyx_v_i + 7)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line81")'> 81:                         # cast them  in 64 bit</pre>
-<pre id='line81' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line82")'> 82:                         tmp64 = tmp8</pre>
-<pre id='line82' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":82
- *                         utmp8g = cstream[i + 7]
- *                         # cast them  in 64 bit
- *                         tmp64 = tmp8             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64a = utmp8a
- *                         tmp64b = utmp8b
- */
-                __pyx_v_tmp64 = __pyx_v_tmp8;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line83")'> 83:                         tmp64a = utmp8a</pre>
-<pre id='line83' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":83
- *                         # cast them  in 64 bit
- *                         tmp64 = tmp8
- *                         tmp64a = utmp8a             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64b = utmp8b
- *                         tmp64c = utmp8c
- */
-                __pyx_v_tmp64a = __pyx_v_utmp8a;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line84")'> 84:                         tmp64b = utmp8b</pre>
-<pre id='line84' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":84
- *                         tmp64 = tmp8
- *                         tmp64a = utmp8a
- *                         tmp64b = utmp8b             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64c = utmp8c
- *                         tmp64d = utmp8d
- */
-                __pyx_v_tmp64b = __pyx_v_utmp8b;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line85")'> 85:                         tmp64c = utmp8c</pre>
-<pre id='line85' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":85
- *                         tmp64a = utmp8a
- *                         tmp64b = utmp8b
- *                         tmp64c = utmp8c             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64d = utmp8d
- *                         tmp64e = utmp8e
- */
-                __pyx_v_tmp64c = __pyx_v_utmp8c;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line86")'> 86:                         tmp64d = utmp8d</pre>
-<pre id='line86' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":86
- *                         tmp64b = utmp8b
- *                         tmp64c = utmp8c
- *                         tmp64d = utmp8d             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64e = utmp8e
- *                         tmp64f = utmp8f
- */
-                __pyx_v_tmp64d = __pyx_v_utmp8d;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line87")'> 87:                         tmp64e = utmp8e</pre>
-<pre id='line87' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":87
- *                         tmp64c = utmp8c
- *                         tmp64d = utmp8d
- *                         tmp64e = utmp8e             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64f = utmp8f
- *                         tmp64g = utmp8g
- */
-                __pyx_v_tmp64e = __pyx_v_utmp8e;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line88")'> 88:                         tmp64f = utmp8f</pre>
-<pre id='line88' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":88
- *                         tmp64d = utmp8d
- *                         tmp64e = utmp8e
- *                         tmp64f = utmp8f             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64g = utmp8g
- *                         current = (tmp64 <code><</code><code><</code> 56) | (tmp64a <code><</code><code><</code> 48) | (tmp64b <code><</code><code><</code> 40) | (tmp64c <code><</code><code><</code> 32) | (tmp64d <code><</code><code><</code> 24) | (tmp64e <code><</code><code><</code> 16) | (tmp64f <code><</code><code><</code> 8) | (tmp64g)
- */
-                __pyx_v_tmp64f = __pyx_v_utmp8f;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line89")'> 89:                         tmp64g = utmp8g</pre>
-<pre id='line89' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":89
- *                         tmp64e = utmp8e
- *                         tmp64f = utmp8f
- *                         tmp64g = utmp8g             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         current = (tmp64 <code><</code><code><</code> 56) | (tmp64a <code><</code><code><</code> 48) | (tmp64b <code><</code><code><</code> 40) | (tmp64c <code><</code><code><</code> 32) | (tmp64d <code><</code><code><</code> 24) | (tmp64e <code><</code><code><</code> 16) | (tmp64f <code><</code><code><</code> 8) | (tmp64g)
- *                         i += 15
- */
-                __pyx_v_tmp64g = __pyx_v_utmp8g;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line90")'> 90:                         current = (tmp64 << 56) | (tmp64a << 48) | (tmp64b << 40) | (tmp64c << 32) | (tmp64d << 24) | (tmp64e << 16) | (tmp64f << 8) | (tmp64g)</pre>
-<pre id='line90' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":90
- *                         tmp64f = utmp8f
- *                         tmp64g = utmp8g
- *                         current = (tmp64 <code><</code><code><</code> 56) | (tmp64a <code><</code><code><</code> 48) | (tmp64b <code><</code><code><</code> 40) | (tmp64c <code><</code><code><</code> 32) | (tmp64d <code><</code><code><</code> 24) | (tmp64e <code><</code><code><</code> 16) | (tmp64f <code><</code><code><</code> 8) | (tmp64g)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code>< [...]
- *                         i += 15
- *                     else:
- */
-                __pyx_v_current = ((((((((__pyx_v_tmp64 <code><</code><code><</code> 56) | (__pyx_v_tmp64a <code><</code><code><</code> 48)) | (__pyx_v_tmp64b <code><</code><code><</code> 40)) | (__pyx_v_tmp64c <code><</code><code><</code> 32)) | (__pyx_v_tmp64d <code><</code><code><</code> 24)) | (__pyx_v_tmp64e <code><</code><code><</code> 16)) | (__pyx_v_tmp64f <code><</code><code><</code> 8)) | __pyx_v_tmp64g);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line91")'> 91:                         i += 15</pre>
-<pre id='line91' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":91
- *                         tmp64g = utmp8g
- *                         current = (tmp64 <code><</code><code><</code> 56) | (tmp64a <code><</code><code><</code> 48) | (tmp64b <code><</code><code><</code> 40) | (tmp64c <code><</code><code><</code> 32) | (tmp64d <code><</code><code><</code> 24) | (tmp64e <code><</code><code><</code> 16) | (tmp64f <code><</code><code><</code> 8) | (tmp64g)
- *                         i += 15             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                     else:
- *                         #Retrieve the interesting Bytes of data
- */
-                __pyx_v_i = (__pyx_v_i + 15);
-                goto __pyx_L14;
-              }
-              /*else*/ {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line92")'> 92:                     else:</pre>
-<pre id='line92' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line93")'> 93:                         #Retrieve the interesting Bytes of data</pre>
-<pre id='line93' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line94")'> 94:                         tmp8 = cstream[i + 6]</pre>
-<pre id='line94' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":94
- *                     else:
- *                         #Retrieve the interesting Bytes of data
- *                         tmp8 = cstream[i + 6]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8a = cstream[i + 5]
- *                         utmp8b = cstream[i + 4]
- */
-                __pyx_v_tmp8 = (__pyx_v_cstream[(__pyx_v_i + 6)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line95")'> 95:                         utmp8a = cstream[i + 5]</pre>
-<pre id='line95' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":95
- *                         #Retrieve the interesting Bytes of data
- *                         tmp8 = cstream[i + 6]
- *                         utmp8a = cstream[i + 5]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8b = cstream[i + 4]
- *                         utmp8c = cstream[i + 3]
- */
-                __pyx_v_utmp8a = (__pyx_v_cstream[(__pyx_v_i + 5)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line96")'> 96:                         utmp8b = cstream[i + 4]</pre>
-<pre id='line96' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":96
- *                         tmp8 = cstream[i + 6]
- *                         utmp8a = cstream[i + 5]
- *                         utmp8b = cstream[i + 4]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         utmp8c = cstream[i + 3]
- *                         # cast them  in 64 bit
- */
-                __pyx_v_utmp8b = (__pyx_v_cstream[(__pyx_v_i + 4)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line97")'> 97:                         utmp8c = cstream[i + 3]</pre>
-<pre id='line97' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":97
- *                         utmp8a = cstream[i + 5]
- *                         utmp8b = cstream[i + 4]
- *                         utmp8c = cstream[i + 3]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         # cast them  in 64 bit
- *                         tmp64 = tmp8
- */
-                __pyx_v_utmp8c = (__pyx_v_cstream[(__pyx_v_i + 3)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line98")'> 98:                         # cast them  in 64 bit</pre>
-<pre id='line98' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line99")'> 99:                         tmp64 = tmp8</pre>
-<pre id='line99' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":99
- *                         utmp8c = cstream[i + 3]
- *                         # cast them  in 64 bit
- *                         tmp64 = tmp8             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64a = utmp8a
- *                         tmp64b = utmp8b
- */
-                __pyx_v_tmp64 = __pyx_v_tmp8;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line100")'> 100:                         tmp64a = utmp8a</pre>
-<pre id='line100' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":100
- *                         # cast them  in 64 bit
- *                         tmp64 = tmp8
- *                         tmp64a = utmp8a             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64b = utmp8b
- *                         tmp64c = utmp8c
- */
-                __pyx_v_tmp64a = __pyx_v_utmp8a;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line101")'> 101:                         tmp64b = utmp8b</pre>
-<pre id='line101' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":101
- *                         tmp64 = tmp8
- *                         tmp64a = utmp8a
- *                         tmp64b = utmp8b             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         tmp64c = utmp8c
- *                         #Assemble data into a long long
- */
-                __pyx_v_tmp64b = __pyx_v_utmp8b;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line102")'> 102:                         tmp64c = utmp8c</pre>
-<pre id='line102' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":102
- *                         tmp64a = utmp8a
- *                         tmp64b = utmp8b
- *                         tmp64c = utmp8c             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         #Assemble data into a long long
- *                         current = (tmp64 <code><</code><code><</code> 24) | (tmp64a <code><</code><code><</code> 16) | (tmp64b <code><</code><code><</code> 8) | (tmp64c);
- */
-                __pyx_v_tmp64c = __pyx_v_utmp8c;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line103")'> 103:                         #Assemble data into a long long</pre>
-<pre id='line103' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line104")'> 104:                         current = (tmp64 << 24) | (tmp64a << 16) | (tmp64b << 8) | (tmp64c);</pre>
-<pre id='line104' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":104
- *                         tmp64c = utmp8c
- *                         #Assemble data into a long long
- *                         current = (tmp64 <code><</code><code><</code> 24) | (tmp64a <code><</code><code><</code> 16) | (tmp64b <code><</code><code><</code> 8) | (tmp64c);             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                         i += 7
- *                 else:
- */
-                __pyx_v_current = ((((__pyx_v_tmp64 <code><</code><code><</code> 24) | (__pyx_v_tmp64a <code><</code><code><</code> 16)) | (__pyx_v_tmp64b <code><</code><code><</code> 8)) | __pyx_v_tmp64c);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line105")'> 105:                         i += 7</pre>
-<pre id='line105' class='code' style='background-color: #FFFFff'>
-                /* "byte_offset.pyx":105
- *                         #Assemble data into a long long
- *                         current = (tmp64 <code><</code><code><</code> 24) | (tmp64a <code><</code><code><</code> 16) | (tmp64b <code><</code><code><</code> 8) | (tmp64c);
- *                         i += 7             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                 else:
- *                     tmp8 = cstream[i + 2];
- */
-                __pyx_v_i = (__pyx_v_i + 7);
-              }
-              __pyx_L14:;
-              goto __pyx_L13;
-            }
-            /*else*/ {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line106")'> 106:                 else:</pre>
-<pre id='line106' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line107")'> 107:                     tmp8 = cstream[i + 2];</pre>
-<pre id='line107' class='code' style='background-color: #FFFFff'>
-              /* "byte_offset.pyx":107
- *                         i += 7
- *                 else:
- *                     tmp8 = cstream[i + 2];             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                     utmp8a = cstream[i + 1]
- *                     # cast them  in 64 bit
- */
-              __pyx_v_tmp8 = (__pyx_v_cstream[(__pyx_v_i + 2)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line108")'> 108:                     utmp8a = cstream[i + 1]</pre>
-<pre id='line108' class='code' style='background-color: #FFFFff'>
-              /* "byte_offset.pyx":108
- *                 else:
- *                     tmp8 = cstream[i + 2];
- *                     utmp8a = cstream[i + 1]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                     # cast them  in 64 bit
- *                     tmp64 = tmp8
- */
-              __pyx_v_utmp8a = (__pyx_v_cstream[(__pyx_v_i + 1)]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line109")'> 109:                     # cast them  in 64 bit</pre>
-<pre id='line109' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line110")'> 110:                     tmp64 = tmp8</pre>
-<pre id='line110' class='code' style='background-color: #FFFFff'>
-              /* "byte_offset.pyx":110
- *                     utmp8a = cstream[i + 1]
- *                     # cast them  in 64 bit
- *                     tmp64 = tmp8             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                     tmp64a = utmp8a
- *                     current = (tmp64 <code><</code><code><</code> 8) | (tmp64a);
- */
-              __pyx_v_tmp64 = __pyx_v_tmp8;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line111")'> 111:                     tmp64a = utmp8a</pre>
-<pre id='line111' class='code' style='background-color: #FFFFff'>
-              /* "byte_offset.pyx":111
- *                     # cast them  in 64 bit
- *                     tmp64 = tmp8
- *                     tmp64a = utmp8a             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                     current = (tmp64 <code><</code><code><</code> 8) | (tmp64a);
- *                     i += 3
- */
-              __pyx_v_tmp64a = __pyx_v_utmp8a;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line112")'> 112:                     current = (tmp64 << 8) | (tmp64a);</pre>
-<pre id='line112' class='code' style='background-color: #FFFFff'>
-              /* "byte_offset.pyx":112
- *                     tmp64 = tmp8
- *                     tmp64a = utmp8a
- *                     current = (tmp64 <code><</code><code><</code> 8) | (tmp64a);             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                     i += 3
- *             else:
- */
-              __pyx_v_current = ((__pyx_v_tmp64 <code><</code><code><</code> 8) | __pyx_v_tmp64a);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line113")'> 113:                     i += 3</pre>
-<pre id='line113' class='code' style='background-color: #FFFFff'>
-              /* "byte_offset.pyx":113
- *                     tmp64a = utmp8a
- *                     current = (tmp64 <code><</code><code><</code> 8) | (tmp64a);
- *                     i += 3             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *             else:
- *                 tmp8 = cstream[i]
- */
-              __pyx_v_i = (__pyx_v_i + 3);
-            }
-            __pyx_L13:;
-            goto __pyx_L12;
-          }
-          /*else*/ {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line114")'> 114:             else:</pre>
-<pre id='line114' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line115")'> 115:                 tmp8 = cstream[i]</pre>
-<pre id='line115' class='code' style='background-color: #FFFFff'>
-            /* "byte_offset.pyx":115
- *                     i += 3
- *             else:
- *                 tmp8 = cstream[i]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                 current = tmp8
- *                 i += 1
- */
-            __pyx_v_tmp8 = (__pyx_v_cstream[__pyx_v_i]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line116")'> 116:                 current = tmp8</pre>
-<pre id='line116' class='code' style='background-color: #FFFFff'>
-            /* "byte_offset.pyx":116
- *             else:
- *                 tmp8 = cstream[i]
- *                 current = tmp8             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *                 i += 1
- *             last += current
- */
-            __pyx_v_current = __pyx_v_tmp8;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line117")'> 117:                 i += 1</pre>
-<pre id='line117' class='code' style='background-color: #FFFFff'>
-            /* "byte_offset.pyx":117
- *                 tmp8 = cstream[i]
- *                 current = tmp8
- *                 i += 1             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *             last += current
- *             dataOut[j] = last
- */
-            __pyx_v_i = (__pyx_v_i + 1);
-          }
-          __pyx_L12:;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line118")'> 118:             last += current</pre>
-<pre id='line118' class='code' style='background-color: #FFFFff'>
-          /* "byte_offset.pyx":118
- *                 current = tmp8
- *                 i += 1
- *             last += current             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *             dataOut[j] = last
- *             j += 1
- */
-          __pyx_v_last = (__pyx_v_last + __pyx_v_current);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line119")'> 119:             dataOut[j] = last</pre>
-<pre id='line119' class='code' style='background-color: #FFFFff'>
-          /* "byte_offset.pyx":119
- *                 i += 1
- *             last += current
- *             dataOut[j] = last             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *             j += 1
- *     return dataOut[:j]
- */
-          __pyx_t_4 = __pyx_v_j;
-          if (__pyx_t_4 <code><</code> 0) __pyx_t_4 += __pyx_pybuffernd_dataOut.diminfo[0].shape;
-          *__Pyx_BufPtrStrided1d(PY_LONG_LONG *, __pyx_pybuffernd_dataOut.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_dataOut.diminfo[0].strides) = __pyx_v_last;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line120")'> 120:             j += 1</pre>
-<pre id='line120' class='code' style='background-color: #FFFFff'>
-          /* "byte_offset.pyx":120
- *             last += current
- *             dataOut[j] = last
- *             j += 1             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     return dataOut[:j]
- */
-          __pyx_v_j = (__pyx_v_j + 1);
-        }
-      }
-</pre><pre class='line' style='background-color: #FFFF4b' onclick='toggleDiv("line121")'> 121:     return dataOut[:j]</pre>
-<pre id='line121' class='code' style='background-color: #FFFF4b'>
-  /* "byte_offset.pyx":121
- *             dataOut[j] = last
- *             j += 1
- *     return dataOut[:j]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- */
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_r);
-  __pyx_t_9 = __Pyx_<span class='py_c_api'>PySequence_GetSlice</span>(((PyObject *)__pyx_v_dataOut), 0, __pyx_v_j);<span class='error_goto'> if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_9);
-  __pyx_r = __pyx_t_9;
-  __pyx_t_9 = 0;
-  goto __pyx_L0;
-
-  __pyx_r = Py_None; <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None);
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_5);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_6);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_7);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_8);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_9);
-  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
-    <span class='pyx_c_api'>__Pyx_ErrFetch</span>(&__pyx_type, &__pyx_value, &__pyx_tb);
-    <span class='pyx_c_api'>__Pyx_SafeReleaseBuffer</span>(&__pyx_pybuffernd_dataOut.rcbuffer->pybuffer);
-  <span class='pyx_c_api'>__Pyx_ErrRestore</span>(__pyx_type, __pyx_value, __pyx_tb);}
-  <span class='pyx_c_api'>__Pyx_AddTraceback</span>("byte_offset.analyseCython", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __pyx_r = NULL;
-  goto __pyx_L2;
-  __pyx_L0:;
-  <span class='pyx_c_api'>__Pyx_SafeReleaseBuffer</span>(&__pyx_pybuffernd_dataOut.rcbuffer->pybuffer);
-  __pyx_L2:;
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>((PyObject *)__pyx_v_dataOut);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGIVEREF</span></span>(__pyx_r);
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannyFinishContext</span></span>();
-  return __pyx_r;
-}
-</pre></body></html>
diff --git a/src/ccp4_pack.c b/src/ccp4_pack.c
index 604481f..cf7facc 100644
--- a/src/ccp4_pack.c
+++ b/src/ccp4_pack.c
@@ -434,13 +434,14 @@ void * ccp4_unpack_string(
   int x4,x3,x2,x1;
   unsigned int *int_arr;
   char *instream = (char *)packed;
- /* printf("string ");
-  int toto;
-  for (toto=0;toto<16;toto++){
-	  printf("%02X ",(unsigned char)instream[toto]);
-  }
-  printf("\n");
-  */
+
+//  printf("string ");
+//  int toto;
+//  for (toto=0;toto<16;toto++){
+//	  printf("%02X ",(unsigned char)instream[toto]);
+//  }
+//  printf("\n");
+
 
   /*if no maximum integers are give read the whole nine yards*/
   if (max_num_int==0){
diff --git a/src/ccp4_pack.h b/src/ccp4_pack.h
index 3c3ac09..8784aef 100644
--- a/src/ccp4_pack.h
+++ b/src/ccp4_pack.h
@@ -55,4 +55,7 @@ void *mar345_read_data(FILE *file, int ocount, int dim1, int dim2);
 void *mar345_read_data_string(char *instring, int ocount, int dim1, int dim2);
 void *ccp4_unpack(void *unpacked_array, void *packed, size_t dim1, size_t dim2, size_t max_num_int);
 void *ccp4_unpack_v2(void *unpacked_array, void *packed, size_t dim1, size_t dim2, size_t max_num_int);
+void *ccp4_unpack_string(void *unpacked_array, void *packed, size_t dim1, size_t dim2, size_t max_num_int);
+void *ccp4_unpack_v2_string(void *unpacked_array, void *packed, size_t dim1, size_t dim2, size_t max_num_int);
+
 void pack_wordimage_c(short int *img, int x, int y, char *filename);
diff --git a/src/cf_io.pyx b/src/cf_io.pyx
new file mode 100644
index 0000000..68d9925
--- /dev/null
+++ b/src/cf_io.pyx
@@ -0,0 +1,92 @@
+"""
+New Cython version of cf_iomodule.c for preparing the migration to Python3
+
+"""
+
+__authors__ = ["Jerome Kieffer"]
+__contact__ = "jerome.kieffer at esrf.eu"
+__license__ = "LGPLv3+"
+__copyright__ = "2013, European Synchrotron Radiation Facility, Grenoble, France"
+
+import cython
+cimport numpy
+import numpy
+import os,tempfile, sys
+
+from libc.string cimport memcpy
+from libc.stdio cimport fopen, FILE
+CF_H=1
+
+CF_INIT_ROWS=8192
+CF_INIT_COLS=32
+CF_HEADER_ITEM=128
+
+
+CF_GZ_COMP=1
+CF_BIN=2
+
+
+cdef extern from "columnfile.h":
+    struct cf_data:
+        int ncols,nrows
+        unsigned int nralloc
+        double **data
+        char **clabels
+    void * cf_read_ascii(void *fp, void *dest, unsigned int FLAGS)nogil
+    void * cf_read_bin(void *fp, void *dest, unsigned int FLAGS)nogil
+    int cf_write(char *fname, void *cf_handle, unsigned int FLAGS)nogil
+    int cf_write_bin(void *fp, void *cf_handle)nogil
+    int cf_write_ascii(void *fp, void *cf_handle,unsigned int FLAGS)nogil
+    void cf_free( cf_data *cf_handle)nogil
+
+
+
+def read(py_file, mode="a"):
+    """
+    Call the c-columnfile reading interface.
+    The mode keyword argument is either:
+    "a" for ascii (the default)
+    "b" for binary
+    """
+    cdef cf_data *cf__
+    cdef unsigned int flags=0,fd
+
+#    /* perhaps not const */
+    cdef int i
+    cdef FILE *file
+
+#    PyObject *py_file;
+
+    #Here is a big issue !!! and I got an even worse solution !
+#    file=PyFile_AsFile(py_file);
+    (fd,fname) = tempfile.mkstemp()
+    os.fdopen(fd,mode="wb").write(py_file.read())
+    os.close(fd)
+    file=fopen(fname, "r");
+
+    if "z" in mode:
+      flags|=CF_GZ_COMP
+    if "b" in mode:
+      cf__=<cf_data *> cf_read_bin(file,NULL,flags)
+    elif "a" in mode:
+      cf__=<cf_data *> cf_read_ascii(file,NULL,flags)
+    else:
+      sys.stderr.write("unrecognized mode for columnfile %s (assuming ascii)\n",mode)
+      cf__= <cf_data *> cf_read_ascii(file,NULL,flags);
+#    check for failure to read
+    if (cf__==NULL):
+      return None, None
+    dims=(cf__.nrows,cf__.ncols)
+
+    #since data may be non-contigous we can't simply create a numpy-array from cf__->data, as Numpy's memory model prohibits it
+    # i.e. py_data=(PyArrayObject*)PyArray_SimpleNewFromData(2, dims, NPY_DOUBLE, (void*)(&(cf__->data[0][0])));
+    # won't work
+    cdef numpy.ndarray[numpy.float64_t, ndim = 2] py_data=numpy.empty(dims,dtype=numpy.float64)
+    for i in range(cf__.nrows):
+        memcpy(&py_data[i,0], cf__.data[i],cf__.ncols*sizeof(double))
+    clabels=[]
+    for i in range(cf__.ncols):
+        clabels.append(str(cf__.clabels[i]))
+    cf_free(cf__)
+
+    return py_data, clabels
diff --git a/src/mar345_IO.c b/src/mar345_IO.c
index 8b68490..ec268e9 100644
--- a/src/mar345_IO.c
+++ b/src/mar345_IO.c
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.16.beta0 on Fri Apr 20 09:46:40 2012 */
+/* Generated by Cython 0.18 on Mon Apr 29 17:23:19 2013 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
@@ -11,7 +11,6 @@
 #ifndef offsetof
 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
 #endif
-
 #if !defined(WIN32) && !defined(MS_WINDOWS)
   #ifndef __stdcall
     #define __stdcall
@@ -23,22 +22,18 @@
     #define __fastcall
   #endif
 #endif
-
 #ifndef DL_IMPORT
   #define DL_IMPORT(t) t
 #endif
 #ifndef DL_EXPORT
   #define DL_EXPORT(t) t
 #endif
-
 #ifndef PY_LONG_LONG
   #define PY_LONG_LONG LONG_LONG
 #endif
-
 #ifndef Py_HUGE_VAL
   #define Py_HUGE_VAL HUGE_VAL
 #endif
-
 #ifdef PYPY_VERSION
 #define CYTHON_COMPILING_IN_PYPY 1
 #define CYTHON_COMPILING_IN_CPYTHON 0
@@ -46,28 +41,28 @@
 #define CYTHON_COMPILING_IN_PYPY 0
 #define CYTHON_COMPILING_IN_CPYTHON 1
 #endif
-
-#if CYTHON_COMPILING_IN_PYPY
-  #define __Pyx_PyCFunction_Call PyObject_Call
-#else
-  #define __Pyx_PyCFunction_Call PyCFunction_Call
-#endif
-
 #if PY_VERSION_HEX < 0x02050000
   typedef int Py_ssize_t;
   #define PY_SSIZE_T_MAX INT_MAX
   #define PY_SSIZE_T_MIN INT_MIN
   #define PY_FORMAT_SIZE_T ""
+  #define CYTHON_FORMAT_SSIZE_T ""
   #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
   #define PyInt_AsSsize_t(o)   __Pyx_PyInt_AsInt(o)
-  #define PyNumber_Index(o)    PyNumber_Int(o)
-  #define PyIndex_Check(o)     PyNumber_Check(o)
+  #define PyNumber_Index(o)    ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \
+                                (PyErr_Format(PyExc_TypeError, \
+                                              "expected index value, got %.200s", Py_TYPE(o)->tp_name), \
+                                 (PyObject*)0))
+  #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \
+                                  !PyComplex_Check(o))
+  #define PyIndex_Check __Pyx_PyIndex_Check
   #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
   #define __PYX_BUILD_PY_SSIZE_T "i"
 #else
   #define __PYX_BUILD_PY_SSIZE_T "n"
+  #define CYTHON_FORMAT_SSIZE_T "z"
+  #define __Pyx_PyIndex_Check PyIndex_Check
 #endif
-
 #if PY_VERSION_HEX < 0x02060000
   #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
   #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
@@ -75,7 +70,6 @@
   #define PyVarObject_HEAD_INIT(type, size) \
           PyObject_HEAD_INIT(type) size,
   #define PyType_Modified(t)
-
   typedef struct {
      void *buf;
      PyObject *obj;
@@ -89,7 +83,6 @@
      Py_ssize_t *suboffsets;
      void *internal;
   } Py_buffer;
-
   #define PyBUF_SIMPLE 0
   #define PyBUF_WRITABLE 0x0001
   #define PyBUF_FORMAT 0x0004
@@ -101,11 +94,9 @@
   #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
   #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE)
   #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE)
-
   typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
   typedef void (*releasebufferproc)(PyObject *, Py_buffer *);
 #endif
-
 #if PY_MAJOR_VERSION < 3
   #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
@@ -115,30 +106,30 @@
   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
           PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
 #endif
-
 #if PY_MAJOR_VERSION < 3 && PY_MINOR_VERSION < 6
   #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict")
 #endif
-
 #if PY_MAJOR_VERSION >= 3
   #define Py_TPFLAGS_CHECKTYPES 0
   #define Py_TPFLAGS_HAVE_INDEX 0
 #endif
-
 #if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
   #define Py_TPFLAGS_HAVE_NEWBUFFER 0
 #endif
-
-
-#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_GET_LENGTH)
-  #define CYTHON_PEP393_ENABLED
-  #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
+#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
+  #define CYTHON_PEP393_ENABLED 1
+  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ? \
+                                              0 : _PyUnicode_Ready((PyObject *)(op)))
+  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
   #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
+  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
 #else
-  #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u)
+  #define CYTHON_PEP393_ENABLED 0
+  #define __Pyx_PyUnicode_READY(op)       (0)
+  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
   #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
+  #define __Pyx_PyUnicode_READ(k, d, i)   ((k=k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
 #endif
-
 #if PY_MAJOR_VERSION >= 3
   #define PyBaseString_Type            PyUnicode_Type
   #define PyStringObject               PyUnicodeObject
@@ -146,7 +137,6 @@
   #define PyString_Check               PyUnicode_Check
   #define PyString_CheckExact          PyUnicode_CheckExact
 #endif
-
 #if PY_VERSION_HEX < 0x02060000
   #define PyBytesObject                PyStringObject
   #define PyBytes_Type                 PyString_Type
@@ -165,7 +155,6 @@
   #define PyBytes_Concat               PyString_Concat
   #define PyBytes_ConcatAndDel         PyString_ConcatAndDel
 #endif
-
 #if PY_VERSION_HEX < 0x02060000
   #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)
   #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type)
@@ -173,9 +162,7 @@
 #ifndef PySet_CheckExact
   #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
 #endif
-
 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
-
 #if PY_MAJOR_VERSION >= 3
   #define PyIntObject                  PyLongObject
   #define PyInt_Type                   PyLong_Type
@@ -192,11 +179,9 @@
   #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
   #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
 #endif
-
 #if PY_MAJOR_VERSION >= 3
   #define PyBoolObject                 PyLongObject
 #endif
-
 #if PY_VERSION_HEX < 0x03020000
   typedef long Py_hash_t;
   #define __Pyx_PyInt_FromHash_t PyInt_FromLong
@@ -205,7 +190,6 @@
   #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
   #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
 #endif
-
 #if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
   #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
   #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
@@ -224,11 +208,9 @@
         (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
             (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
 #endif
-
 #if PY_MAJOR_VERSION >= 3
   #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
 #endif
-
 #if PY_VERSION_HEX < 0x02050000
   #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
   #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
@@ -238,7 +220,6 @@
   #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
   #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
 #endif
-
 #if PY_VERSION_HEX < 0x02050000
   #define __Pyx_NAMESTR(n) ((char *)(n))
   #define __Pyx_DOCSTR(n)  ((char *)(n))
@@ -247,6 +228,7 @@
   #define __Pyx_DOCSTR(n)  (n)
 #endif
 
+
 #if PY_MAJOR_VERSION >= 3
   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
@@ -269,6 +251,7 @@
 #include <math.h>
 #define __PYX_HAVE__mar345_IO
 #define __PYX_HAVE_API__mar345_IO
+#include "string.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "numpy/arrayobject.h"
@@ -282,8 +265,6 @@
 #define CYTHON_WITHOUT_ASSERTIONS
 #endif
 
-
-/* inline attribute */
 #ifndef CYTHON_INLINE
   #if defined(__GNUC__)
     #define CYTHON_INLINE __inline__
@@ -295,8 +276,6 @@
     #define CYTHON_INLINE
   #endif
 #endif
-
-/* unused attribute */
 #ifndef CYTHON_UNUSED
 # if defined(__GNUC__)
 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
@@ -310,27 +289,25 @@
 #   define CYTHON_UNUSED
 # endif
 #endif
-
 typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
 
-
-/* Type Conversion Predeclarations */
-
 #define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
 #define __Pyx_PyBytes_AsUString(s)   ((unsigned char*) PyBytes_AsString(s))
-
 #define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
 #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
 static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
-
 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
 static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
-
+#if CYTHON_COMPILING_IN_CPYTHON
 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
+#else
+#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
+#endif
 #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
 
+
 #ifdef __GNUC__
   /* Test for GCC > 2.95 */
   #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
@@ -379,6 +356,7 @@ static const char *__pyx_filename;
 static const char *__pyx_f[] = {
   "mar345_IO.pyx",
   "numpy.pxd",
+  "type.pxd",
 };
 #define IS_UNSIGNED(type) (((type) -1) > 0)
 struct __Pyx_StructField_;
@@ -389,7 +367,7 @@ typedef struct {
   size_t size;     /* sizeof(type) */
   size_t arraysize[8]; /* length of array in each dimension */
   int ndim;
-  char typegroup; /* _R_eal, _C_omplex, Signed _I_nt, _U_nsigned int, _S_truct, _P_ointer, _O_bject */
+  char typegroup; /* _R_eal, _C_omplex, Signed _I_nt, _U_nsigned int, _S_truct, _P_ointer, _O_bject, c_H_ar */
   char is_unsigned;
   int flags;
 } __Pyx_TypeInfo;
@@ -416,7 +394,7 @@ typedef struct {
 } __Pyx_BufFmt_Context;
 
 
-/* "numpy.pxd":722
+/* "numpy.pxd":723
  * # in Cython to enable them only on the right systems.
  * 
  * ctypedef npy_int8       int8_t             # <<<<<<<<<<<<<<
@@ -425,7 +403,7 @@ typedef struct {
  */
 typedef npy_int8 __pyx_t_5numpy_int8_t;
 
-/* "numpy.pxd":723
+/* "numpy.pxd":724
  * 
  * ctypedef npy_int8       int8_t
  * ctypedef npy_int16      int16_t             # <<<<<<<<<<<<<<
@@ -434,7 +412,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t;
  */
 typedef npy_int16 __pyx_t_5numpy_int16_t;
 
-/* "numpy.pxd":724
+/* "numpy.pxd":725
  * ctypedef npy_int8       int8_t
  * ctypedef npy_int16      int16_t
  * ctypedef npy_int32      int32_t             # <<<<<<<<<<<<<<
@@ -443,7 +421,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t;
  */
 typedef npy_int32 __pyx_t_5numpy_int32_t;
 
-/* "numpy.pxd":725
+/* "numpy.pxd":726
  * ctypedef npy_int16      int16_t
  * ctypedef npy_int32      int32_t
  * ctypedef npy_int64      int64_t             # <<<<<<<<<<<<<<
@@ -452,7 +430,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t;
  */
 typedef npy_int64 __pyx_t_5numpy_int64_t;
 
-/* "numpy.pxd":729
+/* "numpy.pxd":730
  * #ctypedef npy_int128     int128_t
  * 
  * ctypedef npy_uint8      uint8_t             # <<<<<<<<<<<<<<
@@ -461,7 +439,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t;
  */
 typedef npy_uint8 __pyx_t_5numpy_uint8_t;
 
-/* "numpy.pxd":730
+/* "numpy.pxd":731
  * 
  * ctypedef npy_uint8      uint8_t
  * ctypedef npy_uint16     uint16_t             # <<<<<<<<<<<<<<
@@ -470,7 +448,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t;
  */
 typedef npy_uint16 __pyx_t_5numpy_uint16_t;
 
-/* "numpy.pxd":731
+/* "numpy.pxd":732
  * ctypedef npy_uint8      uint8_t
  * ctypedef npy_uint16     uint16_t
  * ctypedef npy_uint32     uint32_t             # <<<<<<<<<<<<<<
@@ -479,7 +457,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t;
  */
 typedef npy_uint32 __pyx_t_5numpy_uint32_t;
 
-/* "numpy.pxd":732
+/* "numpy.pxd":733
  * ctypedef npy_uint16     uint16_t
  * ctypedef npy_uint32     uint32_t
  * ctypedef npy_uint64     uint64_t             # <<<<<<<<<<<<<<
@@ -488,7 +466,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t;
  */
 typedef npy_uint64 __pyx_t_5numpy_uint64_t;
 
-/* "numpy.pxd":736
+/* "numpy.pxd":737
  * #ctypedef npy_uint128    uint128_t
  * 
  * ctypedef npy_float32    float32_t             # <<<<<<<<<<<<<<
@@ -497,7 +475,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t;
  */
 typedef npy_float32 __pyx_t_5numpy_float32_t;
 
-/* "numpy.pxd":737
+/* "numpy.pxd":738
  * 
  * ctypedef npy_float32    float32_t
  * ctypedef npy_float64    float64_t             # <<<<<<<<<<<<<<
@@ -506,7 +484,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t;
  */
 typedef npy_float64 __pyx_t_5numpy_float64_t;
 
-/* "numpy.pxd":746
+/* "numpy.pxd":747
  * # The int types are mapped a bit surprising --
  * # numpy.int corresponds to 'l' and numpy.long to 'q'
  * ctypedef npy_long       int_t             # <<<<<<<<<<<<<<
@@ -515,7 +493,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t;
  */
 typedef npy_long __pyx_t_5numpy_int_t;
 
-/* "numpy.pxd":747
+/* "numpy.pxd":748
  * # numpy.int corresponds to 'l' and numpy.long to 'q'
  * ctypedef npy_long       int_t
  * ctypedef npy_longlong   long_t             # <<<<<<<<<<<<<<
@@ -524,7 +502,7 @@ typedef npy_long __pyx_t_5numpy_int_t;
  */
 typedef npy_longlong __pyx_t_5numpy_long_t;
 
-/* "numpy.pxd":748
+/* "numpy.pxd":749
  * ctypedef npy_long       int_t
  * ctypedef npy_longlong   long_t
  * ctypedef npy_longlong   longlong_t             # <<<<<<<<<<<<<<
@@ -533,7 +511,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t;
  */
 typedef npy_longlong __pyx_t_5numpy_longlong_t;
 
-/* "numpy.pxd":750
+/* "numpy.pxd":751
  * ctypedef npy_longlong   longlong_t
  * 
  * ctypedef npy_ulong      uint_t             # <<<<<<<<<<<<<<
@@ -542,7 +520,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t;
  */
 typedef npy_ulong __pyx_t_5numpy_uint_t;
 
-/* "numpy.pxd":751
+/* "numpy.pxd":752
  * 
  * ctypedef npy_ulong      uint_t
  * ctypedef npy_ulonglong  ulong_t             # <<<<<<<<<<<<<<
@@ -551,7 +529,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t;
  */
 typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
 
-/* "numpy.pxd":752
+/* "numpy.pxd":753
  * ctypedef npy_ulong      uint_t
  * ctypedef npy_ulonglong  ulong_t
  * ctypedef npy_ulonglong  ulonglong_t             # <<<<<<<<<<<<<<
@@ -560,7 +538,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
  */
 typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
 
-/* "numpy.pxd":754
+/* "numpy.pxd":755
  * ctypedef npy_ulonglong  ulonglong_t
  * 
  * ctypedef npy_intp       intp_t             # <<<<<<<<<<<<<<
@@ -569,7 +547,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
  */
 typedef npy_intp __pyx_t_5numpy_intp_t;
 
-/* "numpy.pxd":755
+/* "numpy.pxd":756
  * 
  * ctypedef npy_intp       intp_t
  * ctypedef npy_uintp      uintp_t             # <<<<<<<<<<<<<<
@@ -578,7 +556,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t;
  */
 typedef npy_uintp __pyx_t_5numpy_uintp_t;
 
-/* "numpy.pxd":757
+/* "numpy.pxd":758
  * ctypedef npy_uintp      uintp_t
  * 
  * ctypedef npy_double     float_t             # <<<<<<<<<<<<<<
@@ -587,7 +565,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t;
  */
 typedef npy_double __pyx_t_5numpy_float_t;
 
-/* "numpy.pxd":758
+/* "numpy.pxd":759
  * 
  * ctypedef npy_double     float_t
  * ctypedef npy_double     double_t             # <<<<<<<<<<<<<<
@@ -596,7 +574,7 @@ typedef npy_double __pyx_t_5numpy_float_t;
  */
 typedef npy_double __pyx_t_5numpy_double_t;
 
-/* "numpy.pxd":759
+/* "numpy.pxd":760
  * ctypedef npy_double     float_t
  * ctypedef npy_double     double_t
  * ctypedef npy_longdouble longdouble_t             # <<<<<<<<<<<<<<
@@ -627,7 +605,7 @@ typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
 
 /*--- Type declarations ---*/
 
-/* "numpy.pxd":761
+/* "numpy.pxd":762
  * ctypedef npy_longdouble longdouble_t
  * 
  * ctypedef npy_cfloat      cfloat_t             # <<<<<<<<<<<<<<
@@ -636,7 +614,7 @@ typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
  */
 typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
 
-/* "numpy.pxd":762
+/* "numpy.pxd":763
  * 
  * ctypedef npy_cfloat      cfloat_t
  * ctypedef npy_cdouble     cdouble_t             # <<<<<<<<<<<<<<
@@ -645,7 +623,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
  */
 typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
 
-/* "numpy.pxd":763
+/* "numpy.pxd":764
  * ctypedef npy_cfloat      cfloat_t
  * ctypedef npy_cdouble     cdouble_t
  * ctypedef npy_clongdouble clongdouble_t             # <<<<<<<<<<<<<<
@@ -654,7 +632,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
  */
 typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
 
-/* "numpy.pxd":765
+/* "numpy.pxd":766
  * ctypedef npy_clongdouble clongdouble_t
  * 
  * ctypedef npy_cdouble     complex_t             # <<<<<<<<<<<<<<
@@ -727,21 +705,21 @@ static CYTHON_INLINE int  __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* o
     __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
 static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info);
 
-static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
-
 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
 
+static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
+
 static CYTHON_INLINE int __Pyx_IterFinish(void); /*proto*/
 
 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*proto*/
 
 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
-static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
-
 static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
+static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
+
 static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/
 
 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
@@ -751,6 +729,8 @@ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
     Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
 
+static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
+
 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
     PyObject *r;
     if (!j) return NULL;
@@ -762,42 +742,47 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j
                                                     __Pyx_GetItemInt_List_Fast(o, i) : \
                                                     __Pyx_GetItemInt_Generic(o, to_py_func(i)))
 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) {
-    if (likely(o != Py_None)) {
-        if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
-            PyObject *r = PyList_GET_ITEM(o, i);
-            Py_INCREF(r);
-            return r;
-        }
-        else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) {
-            PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i);
-            Py_INCREF(r);
-            return r;
-        }
+#if CYTHON_COMPILING_IN_CPYTHON
+    if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
+        PyObject *r = PyList_GET_ITEM(o, i);
+        Py_INCREF(r);
+        return r;
+    }
+    else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) {
+        PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i);
+        Py_INCREF(r);
+        return r;
     }
     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
+#else
+    return PySequence_GetItem(o, i);
+#endif
 }
 #define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
                                                     __Pyx_GetItemInt_Tuple_Fast(o, i) : \
                                                     __Pyx_GetItemInt_Generic(o, to_py_func(i)))
 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) {
-    if (likely(o != Py_None)) {
-        if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
-            PyObject *r = PyTuple_GET_ITEM(o, i);
-            Py_INCREF(r);
-            return r;
-        }
-        else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) {
-            PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i);
-            Py_INCREF(r);
-            return r;
-        }
+#if CYTHON_COMPILING_IN_CPYTHON
+    if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
+        PyObject *r = PyTuple_GET_ITEM(o, i);
+        Py_INCREF(r);
+        return r;
+    }
+    else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) {
+        PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i);
+        Py_INCREF(r);
+        return r;
     }
     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
+#else
+    return PySequence_GetItem(o, i);
+#endif
 }
 #define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
                                                     __Pyx_GetItemInt_Fast(o, i) : \
                                                     __Pyx_GetItemInt_Generic(o, to_py_func(i)))
 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) {
+#if CYTHON_COMPILING_IN_CPYTHON
     if (PyList_CheckExact(o)) {
         Py_ssize_t n = (likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
         if (likely((n >= 0) & (n < PyList_GET_SIZE(o)))) {
@@ -813,22 +798,31 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i)
             Py_INCREF(r);
             return r;
         }
-    }
-    else if (likely(i >= 0)) {
+    } else {  /* inlined PySequence_GetItem() */
         PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
         if (likely(m && m->sq_item)) {
+            if (unlikely(i < 0) && likely(m->sq_length)) {
+                Py_ssize_t l = m->sq_length(o);
+                if (unlikely(l < 0)) return NULL;
+                i += l;
+            }
             return m->sq_item(o, i);
         }
     }
+#else
+    if (PySequence_Check(o)) {
+        return PySequence_GetItem(o, i);
+    }
+#endif
     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
 }
 
-static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
+static void __Pyx_RaiseBufferFallbackError(void); /*proto*/
 
+#define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1)
+#define __Pyx_BufPtrStrided1d(type, buf, i0, s0) (type)((char*)buf + i0 * s0)
 static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
 
-static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /*proto*/
-
 static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
@@ -853,17 +847,18 @@ typedef struct {
     #define __Pyx_ReleaseBuffer PyBuffer_Release
 #endif
 
+
 static Py_ssize_t __Pyx_zeros[] = {0, 0, 0, 0, 0, 0, 0, 0};
 static Py_ssize_t __Pyx_minusones[] = {-1, -1, -1, -1, -1, -1, -1, -1};
 
-static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /*proto*/
 
 #ifndef __PYX_FORCE_INIT_THREADS
   #define __PYX_FORCE_INIT_THREADS 0
 #endif
 
 static int __Pyx_Print(PyObject*, PyObject *, int); /*proto*/
-#if PY_MAJOR_VERSION >= 3
+#if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3
 static PyObject* __pyx_print = 0;
 static PyObject* __pyx_print_kwargs = 0;
 #endif
@@ -1010,10 +1005,10 @@ static int __Pyx_check_binary_version(void);
 #endif
 #endif
 
-static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);  /*proto*/
-
 static PyObject *__Pyx_ImportModule(const char *name); /*proto*/
 
+static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);  /*proto*/
+
 typedef struct {
     int code_line;
     PyCodeObject* code_object;
@@ -1040,10 +1035,17 @@ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
 
 /* Module declarations from 'cpython.ref' */
 
+/* Module declarations from 'libc.string' */
+
 /* Module declarations from 'libc.stdio' */
 
 /* Module declarations from 'cpython.object' */
 
+/* Module declarations from '__builtin__' */
+
+/* Module declarations from 'cpython.type' */
+static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
+
 /* Module declarations from 'libc.stdlib' */
 
 /* Module declarations from 'numpy' */
@@ -1057,39 +1059,41 @@ static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
 static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/
 
 /* Module declarations from 'mar345_IO' */
-static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t = { "uint16_t", NULL, sizeof(__pyx_t_5numpy_uint16_t), { 0 }, 0, 'U', IS_UNSIGNED(__pyx_t_5numpy_uint16_t), 0 };
-static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t = { "uint32_t", NULL, sizeof(__pyx_t_5numpy_uint32_t), { 0 }, 0, 'U', IS_UNSIGNED(__pyx_t_5numpy_uint32_t), 0 };
+static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t = { "uint16_t", NULL, sizeof(__pyx_t_5numpy_uint16_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_uint16_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_uint16_t), 0 };
+static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t = { "uint32_t", NULL, sizeof(__pyx_t_5numpy_uint32_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_uint32_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_uint32_t), 0 };
+static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t = { "uint8_t", NULL, sizeof(__pyx_t_5numpy_uint8_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_5numpy_uint8_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_5numpy_uint8_t), 0 };
 #define __Pyx_MODULE_NAME "mar345_IO"
 int __pyx_module_is_main_mar345_IO = 0;
 
 /* Implementation of 'mar345_IO' */
 static PyObject *__pyx_builtin_open;
+static PyObject *__pyx_builtin_RuntimeError;
 static PyObject *__pyx_builtin_ValueError;
 static PyObject *__pyx_builtin_range;
-static PyObject *__pyx_builtin_RuntimeError;
 static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inputArray); /* proto */
-static PyObject *__pyx_pf_9mar345_IO_2uncompress_pck(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_raw, PyObject *__pyx_v_dim1, PyObject *__pyx_v_dim2, PyObject *__pyx_v_overflowPix); /* proto */
+static PyObject *__pyx_pf_9mar345_IO_2uncompress_pck(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_raw, PyObject *__pyx_v_dim1, PyObject *__pyx_v_dim2, PyObject *__pyx_v_overflowPix, PyObject *__pyx_v_version, PyObject *__pyx_v_normal_start); /* proto */
 static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
 static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */
 static char __pyx_k_1[] = "shape is 2D";
 static char __pyx_k_4[] = "CCP4 packed image, X: ";
 static char __pyx_k_5[] = "CCP4 packed image V2, X: ";
-static char __pyx_k_6[] = "END OF HEADER";
-static char __pyx_k_9[] = "\n";
-static char __pyx_k_11[] = "Error while looking for overflowed pixels in line %s";
-static char __pyx_k_13[] = "ndarray is not C contiguous";
-static char __pyx_k_15[] = "ndarray is not Fortran contiguous";
-static char __pyx_k_17[] = "Non-native byte order not supported";
-static char __pyx_k_19[] = "unknown dtype code in numpy.pxd (%d)";
-static char __pyx_k_20[] = "Format string allocated too short, see comment in numpy.pxd";
-static char __pyx_k_23[] = "Format string allocated too short.";
-static char __pyx_k_25[] = "\nNew Cython version of mar345_io for preparing the migration to Python3\n\nCompressor & decompressor for \"pack\" algorithm by JPA, binding to CCP4 libraries \n\nWarning: decompressor is just a cython porting of mar345_io, but in cython so (soon) python3 compliant.\n\nFuture: make those algorithm actually generate strings not go via files;\n        it will allow a broader use of the algorithm. \n\n";
-static char __pyx_k_26[] = "Jerome Kieffer";
-static char __pyx_k_27[] = "Gael Goret";
-static char __pyx_k_28[] = "jerome.kieffer at esrf.eu";
-static char __pyx_k_29[] = "LGPLv3+";
-static char __pyx_k_30[] = "2012, European Synchrotron Radiation Facility, Grenoble, France";
-static char __pyx_k_33[] = "/users/kieffer/workspace-ssd/fabio/trunk/src/mar345_IO.pyx";
+static char __pyx_k_6[] = "Cannot determine the compression scheme for PCK compression (either version 1 or 2)";
+static char __pyx_k_8[] = "END OF HEADER";
+static char __pyx_k_11[] = "\n";
+static char __pyx_k_13[] = "Error while looking for overflowed pixels in line %s";
+static char __pyx_k_19[] = "ndarray is not C contiguous";
+static char __pyx_k_21[] = "ndarray is not Fortran contiguous";
+static char __pyx_k_23[] = "Non-native byte order not supported";
+static char __pyx_k_25[] = "unknown dtype code in numpy.pxd (%d)";
+static char __pyx_k_26[] = "Format string allocated too short, see comment in numpy.pxd";
+static char __pyx_k_29[] = "Format string allocated too short.";
+static char __pyx_k_31[] = "\nNew Cython version of mar345_io for preparing the migration to Python3\n\nCompressor & decompressor for \"pack\" algorithm by JPA, binding to CCP4 libraries\n\nWarning: decompressor is just a cython porting of mar345_io, but in cython so (soon) python3 compliant.\n\nFuture: make those algorithm actually generate strings not go via files;\n        it will allow a broader use of the algorithm.\n\n";
+static char __pyx_k_32[] = "Jerome Kieffer";
+static char __pyx_k_33[] = "Gael Goret";
+static char __pyx_k_34[] = "jerome.kieffer at esrf.eu";
+static char __pyx_k_35[] = "LGPLv3+";
+static char __pyx_k_36[] = "2012, European Synchrotron Radiation Facility, Grenoble, France";
+static char __pyx_k_39[] = "/users/kieffer/workspace-ssd/fabio-git/src/mar345_IO.pyx";
 static char __pyx_k__B[] = "B";
 static char __pyx_k__H[] = "H";
 static char __pyx_k__I[] = "I";
@@ -1113,6 +1117,7 @@ static char __pyx_k__os[] = "os";
 static char __pyx_k__rb[] = "rb";
 static char __pyx_k__end[] = "end";
 static char __pyx_k__key[] = "key";
+static char __pyx_k__out[] = "out";
 static char __pyx_k__raw[] = "raw";
 static char __pyx_k__ret[] = "ret";
 static char __pyx_k__HIGH[] = "HIGH";
@@ -1121,6 +1126,7 @@ static char __pyx_k__dim0[] = "dim0";
 static char __pyx_k__dim1[] = "dim1";
 static char __pyx_k__dim2[] = "dim2";
 static char __pyx_k__find[] = "find";
+static char __pyx_k__flat[] = "flat";
 static char __pyx_k__key1[] = "key1";
 static char __pyx_k__key2[] = "key2";
 static char __pyx_k__name[] = "name";
@@ -1128,39 +1134,52 @@ static char __pyx_k__open[] = "open";
 static char __pyx_k__read[] = "read";
 static char __pyx_k__seek[] = "seek";
 static char __pyx_k__size[] = "size";
+static char __pyx_k__stop[] = "stop";
 static char __pyx_k__word[] = "word";
 static char __pyx_k__cdata[] = "cdata";
-static char __pyx_k__cdim1[] = "cdim1";
-static char __pyx_k__cdim2[] = "cdim2";
+static char __pyx_k__cdimx[] = "cdimx";
+static char __pyx_k__cdimy[] = "cdimy";
 static char __pyx_k__chigh[] = "chigh";
 static char __pyx_k__close[] = "close";
 static char __pyx_k__dtype[] = "dtype";
+static char __pyx_k__empty[] = "empty";
 static char __pyx_k__fname[] = "fname";
 static char __pyx_k__index[] = "index";
+static char __pyx_k__int32[] = "int32";
 static char __pyx_k__numpy[] = "numpy";
+static char __pyx_k__odata[] = "odata";
 static char __pyx_k__range[] = "range";
 static char __pyx_k__ravel[] = "ravel";
+static char __pyx_k__shape[] = "shape";
 static char __pyx_k__sizes[] = "sizes";
 static char __pyx_k__split[] = "split";
 static char __pyx_k__start[] = "start";
 static char __pyx_k__strip[] = "strip";
-static char __pyx_k__zeros[] = "zeros";
+static char __pyx_k__uint8[] = "uint8";
+static char __pyx_k__valid[] = "valid";
 static char __pyx_k__astype[] = "astype";
 static char __pyx_k__hiLine[] = "hiLine";
+static char __pyx_k__lenkey[] = "lenkey";
 static char __pyx_k__lstrip[] = "lstrip";
 static char __pyx_k__output[] = "output";
 static char __pyx_k__remove[] = "remove";
 static char __pyx_k__uint16[] = "uint16";
 static char __pyx_k__uint32[] = "uint32";
+static char __pyx_k__values[] = "values";
 static char __pyx_k__mkstemp[] = "mkstemp";
+static char __pyx_k__version[] = "version";
 static char __pyx_k____exit__[] = "__exit__";
 static char __pyx_k____main__[] = "__main__";
 static char __pyx_k____test__[] = "__test__";
+static char __pyx_k__cversion[] = "cversion";
 static char __pyx_k__instream[] = "instream";
+static char __pyx_k__orecords[] = "orecords";
 static char __pyx_k__tempfile[] = "tempfile";
 static char __pyx_k____enter__[] = "__enter__";
+static char __pyx_k__addresses[] = "addresses";
 static char __pyx_k__mar345_IO[] = "mar345_IO";
 static char __pyx_k__ValueError[] = "ValueError";
+static char __pyx_k__fromstring[] = "fromstring";
 static char __pyx_k__inputArray[] = "inputArray";
 static char __pyx_k____authors__[] = "__authors__";
 static char __pyx_k____contact__[] = "__contact__";
@@ -1168,27 +1187,30 @@ static char __pyx_k____license__[] = "__license__";
 static char __pyx_k__overflowPix[] = "overflowPix";
 static char __pyx_k__RuntimeError[] = "RuntimeError";
 static char __pyx_k__compress_pck[] = "compress_pck";
+static char __pyx_k__normal_start[] = "normal_start";
 static char __pyx_k____copyright__[] = "__copyright__";
+static char __pyx_k__normal_offset[] = "normal_offset";
 static char __pyx_k__uncompress_pck[] = "uncompress_pck";
 static char __pyx_k__ascontiguousarray[] = "ascontiguousarray";
 static PyObject *__pyx_kp_s_1;
 static PyObject *__pyx_kp_s_11;
-static PyObject *__pyx_kp_u_13;
-static PyObject *__pyx_kp_u_15;
-static PyObject *__pyx_kp_u_17;
+static PyObject *__pyx_kp_s_13;
 static PyObject *__pyx_kp_u_19;
-static PyObject *__pyx_kp_u_20;
+static PyObject *__pyx_kp_u_21;
 static PyObject *__pyx_kp_u_23;
-static PyObject *__pyx_kp_s_26;
-static PyObject *__pyx_kp_s_27;
-static PyObject *__pyx_kp_s_28;
-static PyObject *__pyx_kp_s_29;
-static PyObject *__pyx_kp_s_30;
+static PyObject *__pyx_kp_u_25;
+static PyObject *__pyx_kp_u_26;
+static PyObject *__pyx_kp_u_29;
+static PyObject *__pyx_kp_s_32;
 static PyObject *__pyx_kp_s_33;
+static PyObject *__pyx_kp_s_34;
+static PyObject *__pyx_kp_s_35;
+static PyObject *__pyx_kp_s_36;
+static PyObject *__pyx_kp_s_39;
 static PyObject *__pyx_kp_s_4;
 static PyObject *__pyx_kp_s_5;
 static PyObject *__pyx_kp_s_6;
-static PyObject *__pyx_kp_s_9;
+static PyObject *__pyx_kp_s_8;
 static PyObject *__pyx_n_s__HIGH;
 static PyObject *__pyx_n_s__RuntimeError;
 static PyObject *__pyx_n_s__ValueError;
@@ -1200,40 +1222,52 @@ static PyObject *__pyx_n_s____exit__;
 static PyObject *__pyx_n_s____license__;
 static PyObject *__pyx_n_s____main__;
 static PyObject *__pyx_n_s____test__;
+static PyObject *__pyx_n_s__addresses;
 static PyObject *__pyx_n_s__ascontiguousarray;
 static PyObject *__pyx_n_s__astype;
 static PyObject *__pyx_n_s__cdata;
-static PyObject *__pyx_n_s__cdim1;
-static PyObject *__pyx_n_s__cdim2;
+static PyObject *__pyx_n_s__cdimx;
+static PyObject *__pyx_n_s__cdimy;
 static PyObject *__pyx_n_s__chigh;
 static PyObject *__pyx_n_s__close;
 static PyObject *__pyx_n_s__compress_pck;
+static PyObject *__pyx_n_s__cversion;
 static PyObject *__pyx_n_s__data;
 static PyObject *__pyx_n_s__dim0;
 static PyObject *__pyx_n_s__dim1;
 static PyObject *__pyx_n_s__dim2;
 static PyObject *__pyx_n_s__dtype;
+static PyObject *__pyx_n_s__empty;
 static PyObject *__pyx_n_s__end;
 static PyObject *__pyx_n_s__f;
 static PyObject *__pyx_n_s__fd;
 static PyObject *__pyx_n_s__find;
+static PyObject *__pyx_n_s__flat;
 static PyObject *__pyx_n_s__fname;
+static PyObject *__pyx_n_s__fromstring;
 static PyObject *__pyx_n_s__hiLine;
 static PyObject *__pyx_n_s__i;
 static PyObject *__pyx_n_s__index;
 static PyObject *__pyx_n_s__inputArray;
 static PyObject *__pyx_n_s__instream;
+static PyObject *__pyx_n_s__int32;
 static PyObject *__pyx_n_s__j;
 static PyObject *__pyx_n_s__key;
 static PyObject *__pyx_n_s__key1;
 static PyObject *__pyx_n_s__key2;
+static PyObject *__pyx_n_s__lenkey;
 static PyObject *__pyx_n_s__lstrip;
 static PyObject *__pyx_n_s__mar345_IO;
 static PyObject *__pyx_n_s__mkstemp;
 static PyObject *__pyx_n_s__name;
+static PyObject *__pyx_n_s__normal_offset;
+static PyObject *__pyx_n_s__normal_start;
 static PyObject *__pyx_n_s__numpy;
+static PyObject *__pyx_n_s__odata;
 static PyObject *__pyx_n_s__open;
+static PyObject *__pyx_n_s__orecords;
 static PyObject *__pyx_n_s__os;
+static PyObject *__pyx_n_s__out;
 static PyObject *__pyx_n_s__output;
 static PyObject *__pyx_n_s__overflowPix;
 static PyObject *__pyx_n_s__range;
@@ -1244,18 +1278,25 @@ static PyObject *__pyx_n_s__read;
 static PyObject *__pyx_n_s__remove;
 static PyObject *__pyx_n_s__ret;
 static PyObject *__pyx_n_s__seek;
+static PyObject *__pyx_n_s__shape;
 static PyObject *__pyx_n_s__size;
 static PyObject *__pyx_n_s__sizes;
 static PyObject *__pyx_n_s__split;
 static PyObject *__pyx_n_s__start;
+static PyObject *__pyx_n_s__stop;
 static PyObject *__pyx_n_s__strip;
 static PyObject *__pyx_n_s__tempfile;
 static PyObject *__pyx_n_s__uint16;
 static PyObject *__pyx_n_s__uint32;
+static PyObject *__pyx_n_s__uint8;
 static PyObject *__pyx_n_s__uncompress_pck;
+static PyObject *__pyx_n_s__valid;
+static PyObject *__pyx_n_s__values;
+static PyObject *__pyx_n_s__version;
 static PyObject *__pyx_n_s__word;
-static PyObject *__pyx_n_s__zeros;
 static PyObject *__pyx_int_0;
+static PyObject *__pyx_int_1;
+static PyObject *__pyx_int_2;
 static PyObject *__pyx_int_neg_1;
 static PyObject *__pyx_int_13;
 static PyObject *__pyx_int_14;
@@ -1263,30 +1304,34 @@ static PyObject *__pyx_int_15;
 static PyObject *__pyx_k_tuple_2;
 static PyObject *__pyx_k_tuple_3;
 static PyObject *__pyx_k_tuple_7;
-static PyObject *__pyx_k_tuple_8;
+static PyObject *__pyx_k_tuple_9;
+static PyObject *__pyx_k_slice_15;
+static PyObject *__pyx_k_slice_17;
 static PyObject *__pyx_k_tuple_10;
 static PyObject *__pyx_k_tuple_12;
 static PyObject *__pyx_k_tuple_14;
 static PyObject *__pyx_k_tuple_16;
 static PyObject *__pyx_k_tuple_18;
-static PyObject *__pyx_k_tuple_21;
+static PyObject *__pyx_k_tuple_20;
 static PyObject *__pyx_k_tuple_22;
 static PyObject *__pyx_k_tuple_24;
-static PyObject *__pyx_k_tuple_31;
-static PyObject *__pyx_k_tuple_34;
-static PyObject *__pyx_k_codeobj_32;
-static PyObject *__pyx_k_codeobj_35;
+static PyObject *__pyx_k_tuple_27;
+static PyObject *__pyx_k_tuple_28;
+static PyObject *__pyx_k_tuple_30;
+static PyObject *__pyx_k_tuple_37;
+static PyObject *__pyx_k_tuple_40;
+static PyObject *__pyx_k_codeobj_38;
+static PyObject *__pyx_k_codeobj_41;
 
 /* Python wrapper */
 static PyObject *__pyx_pw_9mar345_IO_1compress_pck(PyObject *__pyx_self, PyObject *__pyx_v_inputArray); /*proto*/
-static char __pyx_doc_9mar345_IO_compress_pck[] = "\n    @param inputArray: numpy array as input\n    @param filename: file to write data to \n    ";
+static char __pyx_doc_9mar345_IO_compress_pck[] = "\n    @param inputArray: numpy array as input\n    @param filename: file to write data to\n    ";
 static PyMethodDef __pyx_mdef_9mar345_IO_1compress_pck = {__Pyx_NAMESTR("compress_pck"), (PyCFunction)__pyx_pw_9mar345_IO_1compress_pck, METH_O, __Pyx_DOCSTR(__pyx_doc_9mar345_IO_compress_pck)};
 static PyObject *__pyx_pw_9mar345_IO_1compress_pck(PyObject *__pyx_self, PyObject *__pyx_v_inputArray) {
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("compress_pck (wrapper)", 0);
-  __pyx_self = __pyx_self;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inputArray), __pyx_ptype_5numpy_ndarray, 0, "inputArray", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_inputArray), __pyx_ptype_5numpy_ndarray, 0, "inputArray", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_9mar345_IO_compress_pck(__pyx_self, ((PyArrayObject *)__pyx_v_inputArray));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -1296,7 +1341,7 @@ static PyObject *__pyx_pw_9mar345_IO_1compress_pck(PyObject *__pyx_self, PyObjec
   return __pyx_r;
 }
 
-/* "mar345_IO.pyx":32
+/* "mar345_IO.pyx":33
  * 
  * @cython.boundscheck(False)
  * def compress_pck(numpy.ndarray inputArray not None):             # <<<<<<<<<<<<<<
@@ -1345,20 +1390,20 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
   __pyx_pybuffernd_data.data = NULL;
   __pyx_pybuffernd_data.rcbuffer = &__pyx_pybuffer_data;
 
-  /* "mar345_IO.pyx":37
+  /* "mar345_IO.pyx":38
  *     @param filename: file to write data to
  *     """
  *     cdef long  size = inputArray.size             # <<<<<<<<<<<<<<
  *     cdef int dim0, dim1, i, j, fd, ret
  *     cdef char* name
  */
-  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_inputArray), __pyx_n_s__size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_inputArray), __pyx_n_s__size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_2 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_2 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_size = __pyx_t_2;
 
-  /* "mar345_IO.pyx":40
+  /* "mar345_IO.pyx":41
  *     cdef int dim0, dim1, i, j, fd, ret
  *     cdef char* name
  *     assert inputArray.ndim == 2, "shape is 2D"             # <<<<<<<<<<<<<<
@@ -1368,11 +1413,11 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!(__pyx_v_inputArray->nd == 2))) {
     PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_1));
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "mar345_IO.pyx":41
+  /* "mar345_IO.pyx":42
  *     cdef char* name
  *     assert inputArray.ndim == 2, "shape is 2D"
  *     dim0 = inputArray.shape[0]             # <<<<<<<<<<<<<<
@@ -1381,7 +1426,7 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
  */
   __pyx_v_dim0 = (__pyx_v_inputArray->dimensions[0]);
 
-  /* "mar345_IO.pyx":42
+  /* "mar345_IO.pyx":43
  *     assert inputArray.ndim == 2, "shape is 2D"
  *     dim0 = inputArray.shape[0]
  *     dim1 = inputArray.shape[1]             # <<<<<<<<<<<<<<
@@ -1390,66 +1435,66 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
  */
   __pyx_v_dim1 = (__pyx_v_inputArray->dimensions[1]);
 
-  /* "mar345_IO.pyx":43
+  /* "mar345_IO.pyx":44
  *     dim0 = inputArray.shape[0]
  *     dim1 = inputArray.shape[1]
  *     cdef numpy.ndarray[numpy.uint16_t, ndim = 1] data = numpy.ascontiguousarray(inputArray.astype(numpy.uint16).ravel(), dtype=numpy.uint16)             # <<<<<<<<<<<<<<
  *     cdef short int * cdata
  *     cdata = < short int *> data.data
  */
-  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_inputArray), __pyx_n_s__astype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_inputArray), __pyx_n_s__astype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__uint16); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__uint16); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
   __Pyx_GIVEREF(__pyx_t_5);
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__ravel); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__ravel); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
   __Pyx_GIVEREF(__pyx_t_5);
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__uint16); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__uint16); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_data.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
       __pyx_v_data = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_data.rcbuffer->pybuffer.buf = NULL;
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     } else {__pyx_pybuffernd_data.diminfo[0].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_data.diminfo[0].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[0];
     }
   }
@@ -1457,7 +1502,7 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
   __pyx_v_data = ((PyArrayObject *)__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "mar345_IO.pyx":45
+  /* "mar345_IO.pyx":46
  *     cdef numpy.ndarray[numpy.uint16_t, ndim = 1] data = numpy.ascontiguousarray(inputArray.astype(numpy.uint16).ravel(), dtype=numpy.uint16)
  *     cdef short int * cdata
  *     cdata = < short int *> data.data             # <<<<<<<<<<<<<<
@@ -1466,51 +1511,54 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
  */
   __pyx_v_cdata = ((short *)__pyx_v_data->data);
 
-  /* "mar345_IO.pyx":46
+  /* "mar345_IO.pyx":47
  *     cdef short int * cdata
  *     cdata = < short int *> data.data
  *     (fd,fname) = tempfile.mkstemp()             # <<<<<<<<<<<<<<
  *     name = <char*>  fname
  *     with nogil:
  */
-  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__tempfile); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__tempfile); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__mkstemp); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__mkstemp); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  #if CYTHON_COMPILING_IN_CPYTHON
   if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
     PyObject* sequence = __pyx_t_6;
+    #if CYTHON_COMPILING_IN_CPYTHON
+    Py_ssize_t size = Py_SIZE(sequence);
+    #else
+    Py_ssize_t size = PySequence_Size(sequence);
+    #endif
+    if (unlikely(size != 2)) {
+      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
+      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    }
+    #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
-      if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
-        if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
-        else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      }
       __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
-      __Pyx_INCREF(__pyx_t_5);
       __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
-      __Pyx_INCREF(__pyx_t_4);
     } else {
-      if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
-        if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
-        else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      }
       __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
-      __Pyx_INCREF(__pyx_t_5);
       __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
-      __Pyx_INCREF(__pyx_t_4);
     }
+    __Pyx_INCREF(__pyx_t_5);
+    __Pyx_INCREF(__pyx_t_4);
+    #else
+    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    #endif
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   } else
-  #endif
   {
     Py_ssize_t index = -1;
-    __pyx_t_3 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext;
@@ -1518,33 +1566,34 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
     __Pyx_GOTREF(__pyx_t_5);
     index = 1; __pyx_t_4 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_4);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_8 = NULL;
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L4_unpacking_done;
     __pyx_L3_unpacking_failed:;
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_8 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
-  __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __pyx_v_fd = __pyx_t_9;
   __pyx_v_fname = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "mar345_IO.pyx":47
+  /* "mar345_IO.pyx":48
  *     cdata = < short int *> data.data
  *     (fd,fname) = tempfile.mkstemp()
  *     name = <char*>  fname             # <<<<<<<<<<<<<<
  *     with nogil:
  *         pack_wordimage_c(cdata, dim1, dim0, name)
  */
-  __pyx_t_10 = PyBytes_AsString(__pyx_v_fname); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_10 = PyBytes_AsString(__pyx_v_fname); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_name = ((char *)__pyx_t_10);
 
-  /* "mar345_IO.pyx":48
+  /* "mar345_IO.pyx":49
  *     (fd,fname) = tempfile.mkstemp()
  *     name = <char*>  fname
  *     with nogil:             # <<<<<<<<<<<<<<
@@ -1558,7 +1607,7 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
       Py_UNBLOCK_THREADS
       /*try:*/ {
 
-        /* "mar345_IO.pyx":49
+        /* "mar345_IO.pyx":50
  *     name = <char*>  fname
  *     with nogil:
  *         pack_wordimage_c(cdata, dim1, dim0, name)             # <<<<<<<<<<<<<<
@@ -1568,7 +1617,7 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
         pack_wordimage_c(__pyx_v_cdata, __pyx_v_dim1, __pyx_v_dim0, __pyx_v_name);
       }
 
-      /* "mar345_IO.pyx":48
+      /* "mar345_IO.pyx":49
  *     (fd,fname) = tempfile.mkstemp()
  *     name = <char*>  fname
  *     with nogil:             # <<<<<<<<<<<<<<
@@ -1580,7 +1629,7 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
       }
   }
 
-  /* "mar345_IO.pyx":50
+  /* "mar345_IO.pyx":51
  *     with nogil:
  *         pack_wordimage_c(cdata, dim1, dim0, name)
  *     with open(name,"rb") as f:             # <<<<<<<<<<<<<<
@@ -1588,9 +1637,9 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
  *         output = f.read()
  */
   /*with:*/ {
-    __pyx_t_6 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
-    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_6));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
@@ -1598,14 +1647,14 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
     PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_n_s__rb));
     __Pyx_GIVEREF(((PyObject *)__pyx_n_s__rb));
     __pyx_t_6 = 0;
-    __pyx_t_6 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __pyx_t_11 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s____exit__); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_11 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s____exit__); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_11);
-    __pyx_t_4 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s____enter__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+    __pyx_t_4 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s____enter__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -1620,30 +1669,30 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
           __pyx_v_f = __pyx_t_5;
           __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-          /* "mar345_IO.pyx":51
+          /* "mar345_IO.pyx":52
  *         pack_wordimage_c(cdata, dim1, dim0, name)
  *     with open(name,"rb") as f:
  *         f.seek(0)             # <<<<<<<<<<<<<<
  *         output = f.read()
  *     os.close(fd)
  */
-          __pyx_t_5 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__seek); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+          __pyx_t_5 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__seek); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
           __Pyx_GOTREF(__pyx_t_5);
-          __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+          __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
           __Pyx_GOTREF(__pyx_t_6);
           __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-          /* "mar345_IO.pyx":52
+          /* "mar345_IO.pyx":53
  *     with open(name,"rb") as f:
  *         f.seek(0)
  *         output = f.read()             # <<<<<<<<<<<<<<
  *     os.close(fd)
  *     os.remove(name)
  */
-          __pyx_t_6 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__read); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+          __pyx_t_6 = PyObject_GetAttr(__pyx_v_f, __pyx_n_s__read); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
           __Pyx_GOTREF(__pyx_t_6);
-          __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+          __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
           __Pyx_GOTREF(__pyx_t_5);
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
           __pyx_v_output = __pyx_t_5;
@@ -1660,7 +1709,7 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
         __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-        /* "mar345_IO.pyx":50
+        /* "mar345_IO.pyx":51
  *     with nogil:
  *         pack_wordimage_c(cdata, dim1, dim0, name)
  *     with open(name,"rb") as f:             # <<<<<<<<<<<<<<
@@ -1669,11 +1718,11 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
  */
         /*except:*/ {
           __Pyx_AddTraceback("mar345_IO.compress_pck", __pyx_clineno, __pyx_lineno, __pyx_filename);
-          if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+          if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
           __Pyx_GOTREF(__pyx_t_5);
           __Pyx_GOTREF(__pyx_t_6);
           __Pyx_GOTREF(__pyx_t_4);
-          __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+          __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
           __Pyx_GOTREF(__pyx_t_3);
           __Pyx_INCREF(__pyx_t_5);
           PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
@@ -1686,11 +1735,11 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
           __Pyx_GIVEREF(__pyx_t_4);
           __pyx_t_16 = PyObject_Call(__pyx_t_11, __pyx_t_3, NULL);
           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-          if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+          if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
           __Pyx_GOTREF(__pyx_t_16);
           __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_16);
           __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
-          if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+          if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
           __pyx_t_17 = (!__pyx_t_15);
           if (__pyx_t_17) {
             __Pyx_GIVEREF(__pyx_t_5);
@@ -1698,7 +1747,7 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
             __Pyx_GIVEREF(__pyx_t_4);
             __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_4);
             __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0; 
-            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
             goto __pyx_L23;
           }
           __pyx_L23:;
@@ -1726,11 +1775,11 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
       if (__pyx_t_11) {
         __pyx_t_14 = PyObject_Call(__pyx_t_11, __pyx_k_tuple_3, NULL);
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-        if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_14);
         __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_14);
         __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
-        if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
     }
     goto __pyx_L24;
@@ -1740,57 +1789,57 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
     __pyx_L24:;
   }
 
-  /* "mar345_IO.pyx":53
+  /* "mar345_IO.pyx":54
  *         f.seek(0)
  *         output = f.read()
  *     os.close(fd)             # <<<<<<<<<<<<<<
  *     os.remove(name)
  *     return output
  */
-  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__close); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__close); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyInt_FromLong(__pyx_v_fd); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyInt_FromLong(__pyx_v_fd); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
   __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "mar345_IO.pyx":54
+  /* "mar345_IO.pyx":55
  *         output = f.read()
  *     os.close(fd)
  *     os.remove(name)             # <<<<<<<<<<<<<<
  *     return output
  * 
  */
-  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__remove); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__remove); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_4));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
   __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "mar345_IO.pyx":55
+  /* "mar345_IO.pyx":56
  *     os.close(fd)
  *     os.remove(name)
  *     return output             # <<<<<<<<<<<<<<
@@ -1798,7 +1847,7 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
  * @cython.boundscheck(False)
  */
   __Pyx_XDECREF(__pyx_r);
-  if (unlikely(!__pyx_v_output)) { __Pyx_RaiseUnboundLocalError("output"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
+  if (unlikely(!__pyx_v_output)) { __Pyx_RaiseUnboundLocalError("output"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
   __Pyx_INCREF(__pyx_v_output);
   __pyx_r = __pyx_v_output;
   goto __pyx_L0;
@@ -1832,35 +1881,40 @@ static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_
 
 /* Python wrapper */
 static PyObject *__pyx_pw_9mar345_IO_3uncompress_pck(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_9mar345_IO_2uncompress_pck[] = "\n    Unpack a mar345 compressed image\n    \n    @param raw: input string (bytes in python3)\n    @param dim1,dim2: optional parameters size\n    @param overflowPix: optional parameters: number of overflowed pixels \n    \n    @return : ndarray of 2D with the right size\n    ";
+static char __pyx_doc_9mar345_IO_2uncompress_pck[] = "\n    Unpack a mar345 compressed image\n\n    @param raw: input string (bytes in python3)\n    @param dim1,dim2: optional parameters size\n    @param overflowPix: optional parameters: number of overflowed pixels\n    @param version: PCK version 1 or 2\n    @param normal_start: position of the normal value section (can be auto-guessed)\n    @return : ndarray of 2D with the right size\n    ";
 static PyMethodDef __pyx_mdef_9mar345_IO_3uncompress_pck = {__Pyx_NAMESTR("uncompress_pck"), (PyCFunction)__pyx_pw_9mar345_IO_3uncompress_pck, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_9mar345_IO_2uncompress_pck)};
 static PyObject *__pyx_pw_9mar345_IO_3uncompress_pck(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   PyObject *__pyx_v_raw = 0;
   PyObject *__pyx_v_dim1 = 0;
   PyObject *__pyx_v_dim2 = 0;
   PyObject *__pyx_v_overflowPix = 0;
-  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__raw,&__pyx_n_s__dim1,&__pyx_n_s__dim2,&__pyx_n_s__overflowPix,0};
+  PyObject *__pyx_v_version = 0;
+  PyObject *__pyx_v_normal_start = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("uncompress_pck (wrapper)", 0);
-  __pyx_self = __pyx_self;
   {
-    PyObject* values[4] = {0,0,0,0};
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__raw,&__pyx_n_s__dim1,&__pyx_n_s__dim2,&__pyx_n_s__overflowPix,&__pyx_n_s__version,&__pyx_n_s__normal_start,0};
+    PyObject* values[6] = {0,0,0,0,0,0};
 
-    /* "mar345_IO.pyx":58
+    /* "mar345_IO.pyx":59
  * 
  * @cython.boundscheck(False)
- * def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None):             # <<<<<<<<<<<<<<
+ * def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None, version=None, normal_start=None):             # <<<<<<<<<<<<<<
  *     """
  *     Unpack a mar345 compressed image
  */
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)Py_None);
     values[3] = ((PyObject *)Py_None);
+    values[4] = ((PyObject *)Py_None);
+    values[5] = ((PyObject *)Py_None);
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
       switch (pos_args) {
+        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
@@ -1871,8 +1925,7 @@ static PyObject *__pyx_pw_9mar345_IO_3uncompress_pck(PyObject *__pyx_self, PyObj
       kw_args = PyDict_Size(__pyx_kwds);
       switch (pos_args) {
         case  0:
-        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__raw);
-        if (likely(values[0])) kw_args--;
+        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__raw)) != 0)) kw_args--;
         else goto __pyx_L5_argtuple_error;
         case  1:
         if (kw_args > 0) {
@@ -1889,12 +1942,24 @@ static PyObject *__pyx_pw_9mar345_IO_3uncompress_pck(PyObject *__pyx_self, PyObj
           PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__overflowPix);
           if (value) { values[3] = value; kw_args--; }
         }
+        case  4:
+        if (kw_args > 0) {
+          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__version);
+          if (value) { values[4] = value; kw_args--; }
+        }
+        case  5:
+        if (kw_args > 0) {
+          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__normal_start);
+          if (value) { values[5] = value; kw_args--; }
+        }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "uncompress_pck") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "uncompress_pck") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
+        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
@@ -1907,19 +1972,21 @@ static PyObject *__pyx_pw_9mar345_IO_3uncompress_pck(PyObject *__pyx_self, PyObj
     __pyx_v_dim1 = values[1];
     __pyx_v_dim2 = values[2];
     __pyx_v_overflowPix = values[3];
+    __pyx_v_version = values[4];
+    __pyx_v_normal_start = values[5];
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("uncompress_pck", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("uncompress_pck", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("mar345_IO.uncompress_pck", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
   if (unlikely(((PyObject *)__pyx_v_raw) == Py_None)) {
-    PyErr_Format(PyExc_TypeError, "Argument 'raw' must not be None"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_Format(PyExc_TypeError, "Argument 'raw' must not be None"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_r = __pyx_pf_9mar345_IO_2uncompress_pck(__pyx_self, __pyx_v_raw, __pyx_v_dim1, __pyx_v_dim2, __pyx_v_overflowPix);
+  __pyx_r = __pyx_pf_9mar345_IO_2uncompress_pck(__pyx_self, __pyx_v_raw, __pyx_v_dim1, __pyx_v_dim2, __pyx_v_overflowPix, __pyx_v_version, __pyx_v_normal_start);
   goto __pyx_L0;
   __pyx_L1_error:;
   __pyx_r = NULL;
@@ -1928,434 +1995,635 @@ static PyObject *__pyx_pw_9mar345_IO_3uncompress_pck(PyObject *__pyx_self, PyObj
   return __pyx_r;
 }
 
-static PyObject *__pyx_pf_9mar345_IO_2uncompress_pck(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_raw, PyObject *__pyx_v_dim1, PyObject *__pyx_v_dim2, PyObject *__pyx_v_overflowPix) {
-  int __pyx_v_cdim1;
-  int __pyx_v_cdim2;
+static PyObject *__pyx_pf_9mar345_IO_2uncompress_pck(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_raw, PyObject *__pyx_v_dim1, PyObject *__pyx_v_dim2, PyObject *__pyx_v_overflowPix, PyObject *__pyx_v_version, PyObject *__pyx_v_normal_start) {
+  int __pyx_v_cdimx;
+  int __pyx_v_cdimy;
   int __pyx_v_chigh;
+  int __pyx_v_cversion;
+  int __pyx_v_orecords;
+  int __pyx_v_normal_offset;
+  PyArrayObject *__pyx_v_data = 0;
+  PyArrayObject *__pyx_v_flat = 0;
+  PyArrayObject *__pyx_v_instream = 0;
   PyObject *__pyx_v_end = NULL;
   PyObject *__pyx_v_key1 = NULL;
   PyObject *__pyx_v_key2 = NULL;
   PyObject *__pyx_v_start = NULL;
   PyObject *__pyx_v_key = NULL;
+  PyObject *__pyx_v_lenkey = NULL;
   PyObject *__pyx_v_sizes = NULL;
   PyObject *__pyx_v_hiLine = NULL;
   PyObject *__pyx_v_word = NULL;
-  PyArrayObject *__pyx_v_data = 0;
-  char *__pyx_v_instream;
+  PyObject *__pyx_v_stop = NULL;
+  PyObject *__pyx_v_odata = NULL;
+  PyObject *__pyx_v_addresses = NULL;
+  PyObject *__pyx_v_values = NULL;
+  PyObject *__pyx_v_valid = NULL;
   __Pyx_LocalBuf_ND __pyx_pybuffernd_data;
   __Pyx_Buffer __pyx_pybuffer_data;
+  __Pyx_LocalBuf_ND __pyx_pybuffernd_flat;
+  __Pyx_Buffer __pyx_pybuffer_flat;
+  __Pyx_LocalBuf_ND __pyx_pybuffernd_instream;
+  __Pyx_Buffer __pyx_pybuffer_instream;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  int __pyx_t_3;
+  PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
-  PyObject *__pyx_t_5 = NULL;
-  PyObject *__pyx_t_6 = NULL;
-  Py_ssize_t __pyx_t_7;
-  Py_ssize_t __pyx_t_8;
-  int __pyx_t_9;
-  PyObject *__pyx_t_10 = NULL;
-  PyObject *__pyx_t_11 = NULL;
-  PyArrayObject *__pyx_t_12 = NULL;
-  char *__pyx_t_13;
+  int __pyx_t_5;
+  int __pyx_t_6;
+  int __pyx_t_7;
+  int __pyx_t_8;
+  PyObject *__pyx_t_9 = NULL;
+  Py_ssize_t __pyx_t_10;
+  Py_ssize_t __pyx_t_11;
+  int __pyx_t_12;
+  PyObject *__pyx_t_13 = NULL;
+  PyObject *__pyx_t_14 = NULL;
+  PyArrayObject *__pyx_t_15 = NULL;
+  PyObject *__pyx_t_16 = NULL;
+  PyObject *__pyx_t_17 = NULL;
+  PyObject *__pyx_t_18 = NULL;
+  PyArrayObject *__pyx_t_19 = NULL;
+  PyArrayObject *__pyx_t_20 = NULL;
+  long __pyx_t_21;
+  long __pyx_t_22;
+  long __pyx_t_23;
+  long __pyx_t_24;
+  long __pyx_t_25;
+  long __pyx_t_26;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("uncompress_pck", 0);
-  __Pyx_INCREF(__pyx_v_raw);
   __pyx_pybuffer_data.pybuffer.buf = NULL;
   __pyx_pybuffer_data.refcount = 0;
   __pyx_pybuffernd_data.data = NULL;
   __pyx_pybuffernd_data.rcbuffer = &__pyx_pybuffer_data;
-
-  /* "mar345_IO.pyx":69
- *     """
- *     cdef int cdim1, cdim2, chigh
+  __pyx_pybuffer_flat.pybuffer.buf = NULL;
+  __pyx_pybuffer_flat.refcount = 0;
+  __pyx_pybuffernd_flat.data = NULL;
+  __pyx_pybuffernd_flat.rcbuffer = &__pyx_pybuffer_flat;
+  __pyx_pybuffer_instream.pybuffer.buf = NULL;
+  __pyx_pybuffer_instream.refcount = 0;
+  __pyx_pybuffernd_instream.data = NULL;
+  __pyx_pybuffernd_instream.rcbuffer = &__pyx_pybuffer_instream;
+
+  /* "mar345_IO.pyx":75
+ *     cdef numpy.ndarray[numpy.uint8_t, ndim = 1] instream
+ *     cdef void* out
  *     end=None             # <<<<<<<<<<<<<<
- *     if dim1 is None or dim2 is None:
- *         key1 = "CCP4 packed image, X: "
+ *     key1 = "CCP4 packed image, X: "
+ *     key2 = "CCP4 packed image V2, X: "
  */
   __Pyx_INCREF(Py_None);
   __pyx_v_end = Py_None;
 
-  /* "mar345_IO.pyx":70
- *     cdef int cdim1, cdim2, chigh
+  /* "mar345_IO.pyx":76
+ *     cdef void* out
  *     end=None
- *     if dim1 is None or dim2 is None:             # <<<<<<<<<<<<<<
- *         key1 = "CCP4 packed image, X: "
- *         key2 = "CCP4 packed image V2, X: "
+ *     key1 = "CCP4 packed image, X: "             # <<<<<<<<<<<<<<
+ *     key2 = "CCP4 packed image V2, X: "
+ * 
  */
-  __pyx_t_1 = (__pyx_v_dim1 == Py_None);
-  if (!__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_dim2 == Py_None);
-    __pyx_t_3 = __pyx_t_2;
-  } else {
-    __pyx_t_3 = __pyx_t_1;
-  }
-  if (__pyx_t_3) {
+  __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+  __pyx_v_key1 = ((PyObject *)__pyx_kp_s_4);
 
-    /* "mar345_IO.pyx":71
+  /* "mar345_IO.pyx":77
  *     end=None
- *     if dim1 is None or dim2 is None:
- *         key1 = "CCP4 packed image, X: "             # <<<<<<<<<<<<<<
- *         key2 = "CCP4 packed image V2, X: "
- *         start = raw.find(key2)
+ *     key1 = "CCP4 packed image, X: "
+ *     key2 = "CCP4 packed image V2, X: "             # <<<<<<<<<<<<<<
+ * 
+ *     if (dim1 is None) or (dim2 is None) or (version not in [1,2]) or (version is None) or (normal_start is None):
  */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
-    __pyx_v_key1 = ((PyObject *)__pyx_kp_s_4);
+  __Pyx_INCREF(((PyObject *)__pyx_kp_s_5));
+  __pyx_v_key2 = ((PyObject *)__pyx_kp_s_5);
 
-    /* "mar345_IO.pyx":72
- *     if dim1 is None or dim2 is None:
- *         key1 = "CCP4 packed image, X: "
- *         key2 = "CCP4 packed image V2, X: "             # <<<<<<<<<<<<<<
+  /* "mar345_IO.pyx":79
+ *     key2 = "CCP4 packed image V2, X: "
+ * 
+ *     if (dim1 is None) or (dim2 is None) or (version not in [1,2]) or (version is None) or (normal_start is None):             # <<<<<<<<<<<<<<
  *         start = raw.find(key2)
  *         key = key2
  */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_s_5));
-    __pyx_v_key2 = ((PyObject *)__pyx_kp_s_5);
+  __pyx_t_1 = (__pyx_v_dim1 == Py_None);
+  if (!__pyx_t_1) {
+    __pyx_t_2 = (__pyx_v_dim2 == Py_None);
+    if (!__pyx_t_2) {
+      __Pyx_INCREF(__pyx_v_version);
+      __pyx_t_3 = __pyx_v_version;
+      __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_int_1, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      if (((int)__pyx_t_5)) {
+        __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_int_2, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+        __pyx_t_7 = ((int)__pyx_t_6);
+      } else {
+        __pyx_t_7 = ((int)__pyx_t_5);
+      }
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_5 = __pyx_t_7;
+      if (!__pyx_t_5) {
+        __pyx_t_7 = (__pyx_v_version == Py_None);
+        if (!__pyx_t_7) {
+          __pyx_t_6 = (__pyx_v_normal_start == Py_None);
+          __pyx_t_8 = __pyx_t_6;
+        } else {
+          __pyx_t_8 = __pyx_t_7;
+        }
+        __pyx_t_7 = __pyx_t_8;
+      } else {
+        __pyx_t_7 = __pyx_t_5;
+      }
+      __pyx_t_5 = __pyx_t_7;
+    } else {
+      __pyx_t_5 = __pyx_t_2;
+    }
+    __pyx_t_2 = __pyx_t_5;
+  } else {
+    __pyx_t_2 = __pyx_t_1;
+  }
+  if (__pyx_t_2) {
 
-    /* "mar345_IO.pyx":73
- *         key1 = "CCP4 packed image, X: "
- *         key2 = "CCP4 packed image V2, X: "
+    /* "mar345_IO.pyx":80
+ * 
+ *     if (dim1 is None) or (dim2 is None) or (version not in [1,2]) or (version is None) or (normal_start is None):
  *         start = raw.find(key2)             # <<<<<<<<<<<<<<
  *         key = key2
- *         if start == -1:
+ *         cversion = 2
  */
-    __pyx_t_4 = PyObject_GetAttr(__pyx_v_raw, __pyx_n_s__find); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_GetAttr(__pyx_v_raw, __pyx_n_s__find); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_key2);
-    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_key2);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key2);
     __Pyx_GIVEREF(__pyx_v_key2);
-    __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __pyx_v_start = __pyx_t_6;
-    __pyx_t_6 = 0;
+    __pyx_t_9 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __pyx_v_start = __pyx_t_9;
+    __pyx_t_9 = 0;
 
-    /* "mar345_IO.pyx":74
- *         key2 = "CCP4 packed image V2, X: "
+    /* "mar345_IO.pyx":81
+ *     if (dim1 is None) or (dim2 is None) or (version not in [1,2]) or (version is None) or (normal_start is None):
  *         start = raw.find(key2)
  *         key = key2             # <<<<<<<<<<<<<<
+ *         cversion = 2
  *         if start == -1:
- *             start = raw.find(key1)
  */
     __Pyx_INCREF(__pyx_v_key2);
     __pyx_v_key = __pyx_v_key2;
 
-    /* "mar345_IO.pyx":75
+    /* "mar345_IO.pyx":82
  *         start = raw.find(key2)
  *         key = key2
+ *         cversion = 2             # <<<<<<<<<<<<<<
+ *         if start == -1:
+ *             start = raw.find(key1)
+ */
+    __pyx_v_cversion = 2;
+
+    /* "mar345_IO.pyx":83
+ *         key = key2
+ *         cversion = 2
  *         if start == -1:             # <<<<<<<<<<<<<<
  *             start = raw.find(key1)
  *             key = key1
  */
-    __pyx_t_6 = PyObject_RichCompare(__pyx_v_start, __pyx_int_neg_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    if (__pyx_t_3) {
+    __pyx_t_9 = PyObject_RichCompare(__pyx_v_start, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+    if (__pyx_t_2) {
 
-      /* "mar345_IO.pyx":76
- *         key = key2
+      /* "mar345_IO.pyx":84
+ *         cversion = 2
  *         if start == -1:
  *             start = raw.find(key1)             # <<<<<<<<<<<<<<
  *             key = key1
- *         start = raw.index(key) + len(key)
+ *             cversion = 1
  */
-      __pyx_t_6 = PyObject_GetAttr(__pyx_v_raw, __pyx_n_s__find); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_9 = PyObject_GetAttr(__pyx_v_raw, __pyx_n_s__find); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_9);
+      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v_key1);
-      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_key1);
+      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key1);
       __Pyx_GIVEREF(__pyx_v_key1);
-      __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+      __pyx_t_3 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       __Pyx_DECREF(__pyx_v_start);
-      __pyx_v_start = __pyx_t_4;
-      __pyx_t_4 = 0;
+      __pyx_v_start = __pyx_t_3;
+      __pyx_t_3 = 0;
 
-      /* "mar345_IO.pyx":77
+      /* "mar345_IO.pyx":85
  *         if start == -1:
  *             start = raw.find(key1)
  *             key = key1             # <<<<<<<<<<<<<<
- *         start = raw.index(key) + len(key)
- *         sizes = raw[start:start + 13]
+ *             cversion = 1
+ *         lenkey = len(key)
  */
       __Pyx_INCREF(__pyx_v_key1);
       __Pyx_DECREF(__pyx_v_key);
       __pyx_v_key = __pyx_v_key1;
+
+      /* "mar345_IO.pyx":86
+ *             start = raw.find(key1)
+ *             key = key1
+ *             cversion = 1             # <<<<<<<<<<<<<<
+ *         lenkey = len(key)
+ *         start = raw.index(key) + lenkey
+ */
+      __pyx_v_cversion = 1;
       goto __pyx_L4;
     }
     __pyx_L4:;
 
-    /* "mar345_IO.pyx":78
- *             start = raw.find(key1)
+    /* "mar345_IO.pyx":87
  *             key = key1
- *         start = raw.index(key) + len(key)             # <<<<<<<<<<<<<<
+ *             cversion = 1
+ *         lenkey = len(key)             # <<<<<<<<<<<<<<
+ *         start = raw.index(key) + lenkey
  *         sizes = raw[start:start + 13]
- *         cdim1 = < int > int(sizes[:4])
  */
-    __pyx_t_4 = PyObject_GetAttr(__pyx_v_raw, __pyx_n_s__index); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_INCREF(__pyx_v_key);
-    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_key);
-    __Pyx_GIVEREF(__pyx_v_key);
-    __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __pyx_t_7 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_10 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_v_lenkey = __pyx_t_3;
+    __pyx_t_3 = 0;
+
+    /* "mar345_IO.pyx":88
+ *             cversion = 1
+ *         lenkey = len(key)
+ *         start = raw.index(key) + lenkey             # <<<<<<<<<<<<<<
+ *         sizes = raw[start:start + 13]
+ *         cdimx = < int > int(sizes[:4])
+ */
+    __pyx_t_3 = PyObject_GetAttr(__pyx_v_raw, __pyx_n_s__index); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __Pyx_INCREF(__pyx_v_key);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key);
+    __Pyx_GIVEREF(__pyx_v_key);
+    __pyx_t_9 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __pyx_t_4 = PyNumber_Add(__pyx_t_9, __pyx_v_lenkey); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
     __Pyx_DECREF(__pyx_v_start);
     __pyx_v_start = __pyx_t_4;
     __pyx_t_4 = 0;
 
-    /* "mar345_IO.pyx":79
- *             key = key1
- *         start = raw.index(key) + len(key)
+    /* "mar345_IO.pyx":89
+ *         lenkey = len(key)
+ *         start = raw.index(key) + lenkey
  *         sizes = raw[start:start + 13]             # <<<<<<<<<<<<<<
- *         cdim1 = < int > int(sizes[:4])
- *         cdim2 = < int > int(sizes[-4:])
+ *         cdimx = < int > int(sizes[:4])
+ *         cdimy = < int > int(sizes[-4:])
  */
-    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_start); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_4 = PyNumber_Add(__pyx_v_start, __pyx_int_13); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_start); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Add(__pyx_v_start, __pyx_int_13); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_t_4 = __Pyx_PySequence_GetSlice(__pyx_v_raw, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PySequence_GetSlice(__pyx_v_raw, __pyx_t_10, __pyx_t_11); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_v_sizes = __pyx_t_4;
     __pyx_t_4 = 0;
 
-    /* "mar345_IO.pyx":80
- *         start = raw.index(key) + len(key)
+    /* "mar345_IO.pyx":90
+ *         start = raw.index(key) + lenkey
  *         sizes = raw[start:start + 13]
- *         cdim1 = < int > int(sizes[:4])             # <<<<<<<<<<<<<<
- *         cdim2 = < int > int(sizes[-4:])
- *     else:
+ *         cdimx = < int > int(sizes[:4])             # <<<<<<<<<<<<<<
+ *         cdimy = < int > int(sizes[-4:])
+ *         normal_offset = start + 13
  */
-    __pyx_t_4 = __Pyx_PySequence_GetSlice(__pyx_v_sizes, 0, 4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PySequence_GetSlice(__pyx_v_sizes, 0, 4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
+    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
+    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
     __Pyx_GIVEREF(__pyx_t_4);
     __pyx_t_4 = 0;
-    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
+    __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_v_cdim1 = ((int)__pyx_t_9);
+    __pyx_v_cdimx = ((int)__pyx_t_12);
 
-    /* "mar345_IO.pyx":81
+    /* "mar345_IO.pyx":91
  *         sizes = raw[start:start + 13]
- *         cdim1 = < int > int(sizes[:4])
- *         cdim2 = < int > int(sizes[-4:])             # <<<<<<<<<<<<<<
+ *         cdimx = < int > int(sizes[:4])
+ *         cdimy = < int > int(sizes[-4:])             # <<<<<<<<<<<<<<
+ *         normal_offset = start + 13
  *     else:
- *         cdim1 = < int > dim1
  */
-    __pyx_t_4 = __Pyx_PySequence_GetSlice(__pyx_v_sizes, -4, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PySequence_GetSlice(__pyx_v_sizes, -4, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
+    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
+    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
     __Pyx_GIVEREF(__pyx_t_4);
     __pyx_t_4 = 0;
-    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
+    __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_v_cdim2 = ((int)__pyx_t_9);
+    __pyx_v_cdimy = ((int)__pyx_t_12);
+
+    /* "mar345_IO.pyx":92
+ *         cdimx = < int > int(sizes[:4])
+ *         cdimy = < int > int(sizes[-4:])
+ *         normal_offset = start + 13             # <<<<<<<<<<<<<<
+ *     else:
+ *         cdimx = < int > dim1
+ */
+    __pyx_t_4 = PyNumber_Add(__pyx_v_start, __pyx_int_13); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_v_normal_offset = __pyx_t_12;
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "mar345_IO.pyx":83
- *         cdim2 = < int > int(sizes[-4:])
+    /* "mar345_IO.pyx":94
+ *         normal_offset = start + 13
  *     else:
- *         cdim1 = < int > dim1             # <<<<<<<<<<<<<<
- *         cdim2 = < int > dim2
- *     if overflowPix is None:
+ *         cdimx = < int > dim1             # <<<<<<<<<<<<<<
+ *         cdimy = < int > dim2
+ *         cversion = <int> version
  */
-    __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_v_dim1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_cdim1 = ((int)__pyx_t_9);
+    __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_v_dim1); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_cdimx = ((int)__pyx_t_12);
 
-    /* "mar345_IO.pyx":84
+    /* "mar345_IO.pyx":95
  *     else:
- *         cdim1 = < int > dim1
- *         cdim2 = < int > dim2             # <<<<<<<<<<<<<<
- *     if overflowPix is None:
- *         end = raw.find("END OF HEADER")
+ *         cdimx = < int > dim1
+ *         cdimy = < int > dim2             # <<<<<<<<<<<<<<
+ *         cversion = <int> version
+ *         normal_offset = <int> normal_start
+ */
+    __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_v_dim2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_cdimy = ((int)__pyx_t_12);
+
+    /* "mar345_IO.pyx":96
+ *         cdimx = < int > dim1
+ *         cdimy = < int > dim2
+ *         cversion = <int> version             # <<<<<<<<<<<<<<
+ *         normal_offset = <int> normal_start
+ *         if cversion==1:
  */
-    __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_v_dim2); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_cdim2 = ((int)__pyx_t_9);
+    __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_v_version); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_cversion = ((int)__pyx_t_12);
+
+    /* "mar345_IO.pyx":97
+ *         cdimy = < int > dim2
+ *         cversion = <int> version
+ *         normal_offset = <int> normal_start             # <<<<<<<<<<<<<<
+ *         if cversion==1:
+ *             lenkey = len(key1)
+ */
+    __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_v_normal_start); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_normal_offset = ((int)__pyx_t_12);
+
+    /* "mar345_IO.pyx":98
+ *         cversion = <int> version
+ *         normal_offset = <int> normal_start
+ *         if cversion==1:             # <<<<<<<<<<<<<<
+ *             lenkey = len(key1)
+ *         else:
+ */
+    __pyx_t_2 = (__pyx_v_cversion == 1);
+    if (__pyx_t_2) {
+
+      /* "mar345_IO.pyx":99
+ *         normal_offset = <int> normal_start
+ *         if cversion==1:
+ *             lenkey = len(key1)             # <<<<<<<<<<<<<<
+ *         else:
+ *             lenkey = len(key2)
+ */
+      __pyx_t_11 = PyObject_Length(__pyx_v_key1); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_v_lenkey = __pyx_t_4;
+      __pyx_t_4 = 0;
+      goto __pyx_L5;
+    }
+    /*else*/ {
+
+      /* "mar345_IO.pyx":101
+ *             lenkey = len(key1)
+ *         else:
+ *             lenkey = len(key2)             # <<<<<<<<<<<<<<
+ *     if cversion not in [1,2]:
+ *         raise RuntimeError("Cannot determine the compression scheme for PCK compression (either version 1 or 2)")
+ */
+      __pyx_t_11 = PyObject_Length(__pyx_v_key2); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_v_lenkey = __pyx_t_4;
+      __pyx_t_4 = 0;
+    }
+    __pyx_L5:;
   }
   __pyx_L3:;
 
-  /* "mar345_IO.pyx":85
- *         cdim1 = < int > dim1
- *         cdim2 = < int > dim2
- *     if overflowPix is None:             # <<<<<<<<<<<<<<
+  /* "mar345_IO.pyx":102
+ *         else:
+ *             lenkey = len(key2)
+ *     if cversion not in [1,2]:             # <<<<<<<<<<<<<<
+ *         raise RuntimeError("Cannot determine the compression scheme for PCK compression (either version 1 or 2)")
+ *     if (overflowPix is None):
+ */
+  switch (__pyx_v_cversion) {
+    case 1:
+    case 2:
+    __pyx_t_2 = 0;
+    break;
+    default:
+    __pyx_t_2 = 1;
+    break;
+  }
+  __pyx_t_1 = __pyx_t_2;
+  if (__pyx_t_1) {
+
+    /* "mar345_IO.pyx":103
+ *             lenkey = len(key2)
+ *     if cversion not in [1,2]:
+ *         raise RuntimeError("Cannot determine the compression scheme for PCK compression (either version 1 or 2)")             # <<<<<<<<<<<<<<
+ *     if (overflowPix is None):
+ *         end = raw.find("END OF HEADER")
+ */
+    __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_7), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    goto __pyx_L6;
+  }
+  __pyx_L6:;
+
+  /* "mar345_IO.pyx":104
+ *     if cversion not in [1,2]:
+ *         raise RuntimeError("Cannot determine the compression scheme for PCK compression (either version 1 or 2)")
+ *     if (overflowPix is None):             # <<<<<<<<<<<<<<
  *         end = raw.find("END OF HEADER")
  *         start = raw[:end].find("HIGH")
  */
-  __pyx_t_3 = (__pyx_v_overflowPix == Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_1 = (__pyx_v_overflowPix == Py_None);
+  if (__pyx_t_1) {
 
-    /* "mar345_IO.pyx":86
- *         cdim2 = < int > dim2
- *     if overflowPix is None:
+    /* "mar345_IO.pyx":105
+ *         raise RuntimeError("Cannot determine the compression scheme for PCK compression (either version 1 or 2)")
+ *     if (overflowPix is None):
  *         end = raw.find("END OF HEADER")             # <<<<<<<<<<<<<<
  *         start = raw[:end].find("HIGH")
  *         hiLine = raw[start:end]
  */
-    __pyx_t_4 = PyObject_GetAttr(__pyx_v_raw, __pyx_n_s__find); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_GetAttr(__pyx_v_raw, __pyx_n_s__find); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_7), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_9 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_9), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_v_end);
-    __pyx_v_end = __pyx_t_5;
-    __pyx_t_5 = 0;
+    __pyx_v_end = __pyx_t_9;
+    __pyx_t_9 = 0;
 
-    /* "mar345_IO.pyx":87
- *     if overflowPix is None:
+    /* "mar345_IO.pyx":106
+ *     if (overflowPix is None):
  *         end = raw.find("END OF HEADER")
  *         start = raw[:end].find("HIGH")             # <<<<<<<<<<<<<<
  *         hiLine = raw[start:end]
  *         hiLine = hiLine.split("\n")[0]
  */
-    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_end); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = __Pyx_PySequence_GetSlice(__pyx_v_raw, 0, __pyx_t_8); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__find); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_v_end); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = __Pyx_PySequence_GetSlice(__pyx_v_raw, 0, __pyx_t_11); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
+    __pyx_t_4 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__find); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_8), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __pyx_t_9 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_10), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_XDECREF(__pyx_v_start);
-    __pyx_v_start = __pyx_t_5;
-    __pyx_t_5 = 0;
+    __pyx_v_start = __pyx_t_9;
+    __pyx_t_9 = 0;
 
-    /* "mar345_IO.pyx":88
+    /* "mar345_IO.pyx":107
  *         end = raw.find("END OF HEADER")
  *         start = raw[:end].find("HIGH")
  *         hiLine = raw[start:end]             # <<<<<<<<<<<<<<
  *         hiLine = hiLine.split("\n")[0]
  *         word = hiLine.split()
  */
-    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_start); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_end); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = __Pyx_PySequence_GetSlice(__pyx_v_raw, __pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_v_hiLine = __pyx_t_5;
-    __pyx_t_5 = 0;
+    __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_v_start); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_end); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = __Pyx_PySequence_GetSlice(__pyx_v_raw, __pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
+    __pyx_v_hiLine = __pyx_t_9;
+    __pyx_t_9 = 0;
 
-    /* "mar345_IO.pyx":89
+    /* "mar345_IO.pyx":108
  *         start = raw[:end].find("HIGH")
  *         hiLine = raw[start:end]
  *         hiLine = hiLine.split("\n")[0]             # <<<<<<<<<<<<<<
  *         word = hiLine.split()
  *         if len(word) > 1:
  */
-    __pyx_t_5 = PyObject_GetAttr(__pyx_v_hiLine, __pyx_n_s__split); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_10), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = PyObject_GetAttr(__pyx_v_hiLine, __pyx_n_s__split); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
+    __pyx_t_4 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_k_tuple_12), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_4, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_v_hiLine);
-    __pyx_v_hiLine = __pyx_t_5;
-    __pyx_t_5 = 0;
+    __pyx_v_hiLine = __pyx_t_9;
+    __pyx_t_9 = 0;
 
-    /* "mar345_IO.pyx":90
+    /* "mar345_IO.pyx":109
  *         hiLine = raw[start:end]
  *         hiLine = hiLine.split("\n")[0]
  *         word = hiLine.split()             # <<<<<<<<<<<<<<
  *         if len(word) > 1:
  *             chigh = int(word[1])
  */
-    __pyx_t_5 = PyObject_GetAttr(__pyx_v_hiLine, __pyx_n_s__split); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = PyObject_GetAttr(__pyx_v_hiLine, __pyx_n_s__split); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
+    __pyx_t_4 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
     __pyx_v_word = __pyx_t_4;
     __pyx_t_4 = 0;
 
-    /* "mar345_IO.pyx":91
+    /* "mar345_IO.pyx":110
  *         hiLine = hiLine.split("\n")[0]
  *         word = hiLine.split()
  *         if len(word) > 1:             # <<<<<<<<<<<<<<
  *             chigh = int(word[1])
  *         else:
  */
-    __pyx_t_7 = PyObject_Length(__pyx_v_word); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = (__pyx_t_7 > 1);
-    if (__pyx_t_3) {
+    __pyx_t_10 = PyObject_Length(__pyx_v_word); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = (__pyx_t_10 > 1);
+    if (__pyx_t_1) {
 
-      /* "mar345_IO.pyx":92
+      /* "mar345_IO.pyx":111
  *         word = hiLine.split()
  *         if len(word) > 1:
  *             chigh = int(word[1])             # <<<<<<<<<<<<<<
  *         else:
  *             print("Error while looking for overflowed pixels in line %s" % hiLine.strip())
  */
-      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_word, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_word, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
+      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_9);
+      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
       __Pyx_GIVEREF(__pyx_t_4);
       __pyx_t_4 = 0;
-      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
+      __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_v_chigh = __pyx_t_9;
-      goto __pyx_L6;
+      __pyx_v_chigh = __pyx_t_12;
+      goto __pyx_L8;
     }
     /*else*/ {
 
-      /* "mar345_IO.pyx":94
+      /* "mar345_IO.pyx":113
  *             chigh = int(word[1])
  *         else:
  *             print("Error while looking for overflowed pixels in line %s" % hiLine.strip())             # <<<<<<<<<<<<<<
  *             chigh = 0
  *     else:
  */
-      __pyx_t_4 = PyObject_GetAttr(__pyx_v_hiLine, __pyx_n_s__strip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_GetAttr(__pyx_v_hiLine, __pyx_n_s__strip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_9 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_9);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_11), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_13), __pyx_t_9); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
-      /* "mar345_IO.pyx":95
+      /* "mar345_IO.pyx":114
  *         else:
  *             print("Error while looking for overflowed pixels in line %s" % hiLine.strip())
  *             chigh = 0             # <<<<<<<<<<<<<<
@@ -2364,165 +2632,198 @@ static PyObject *__pyx_pf_9mar345_IO_2uncompress_pck(CYTHON_UNUSED PyObject *__p
  */
       __pyx_v_chigh = 0;
     }
-    __pyx_L6:;
-    goto __pyx_L5;
+    __pyx_L8:;
+    goto __pyx_L7;
   }
   /*else*/ {
 
-    /* "mar345_IO.pyx":97
+    /* "mar345_IO.pyx":116
  *             chigh = 0
  *     else:
  *         chigh = < int > overflowPix             # <<<<<<<<<<<<<<
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)
- *     if not end:
+ * 
+ *     orecords = <int> (chigh/8.0+0.875)
  */
-    __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_v_overflowPix); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_chigh = ((int)__pyx_t_9);
+    __pyx_t_12 = __Pyx_PyInt_AsInt(__pyx_v_overflowPix); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_chigh = ((int)__pyx_t_12);
   }
-  __pyx_L5:;
+  __pyx_L7:;
 
-  /* "mar345_IO.pyx":98
- *     else:
+  /* "mar345_IO.pyx":118
  *         chigh = < int > overflowPix
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)             # <<<<<<<<<<<<<<
- *     if not end:
- *         end = raw.find("END OF HEADER")
+ * 
+ *     orecords = <int> (chigh/8.0+0.875)             # <<<<<<<<<<<<<<
+ *     data = numpy.empty((cdimy, cdimx), dtype=numpy.uint32)
+ *     flat = data.ravel() #flat view on the data
+ */
+  __pyx_v_orecords = ((int)((__pyx_v_chigh / 8.0) + 0.875));
+
+  /* "mar345_IO.pyx":119
+ * 
+ *     orecords = <int> (chigh/8.0+0.875)
+ *     data = numpy.empty((cdimy, cdimx), dtype=numpy.uint32)             # <<<<<<<<<<<<<<
+ *     flat = data.ravel() #flat view on the data
+ *     instream = numpy.fromstring(raw[normal_offset:].lstrip(),dtype=numpy.uint8)
  */
-  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__zeros); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_9 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__empty); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyInt_FromLong(__pyx_v_cdim2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyInt_FromLong(__pyx_v_cdimy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_6 = PyInt_FromLong(__pyx_v_cdim1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
-  __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_10);
-  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_4);
+  __pyx_t_3 = PyInt_FromLong(__pyx_v_cdimx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_13);
+  PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
-  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_3);
   __pyx_t_4 = 0;
-  __pyx_t_6 = 0;
-  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
-  PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_10));
-  __Pyx_GIVEREF(((PyObject *)__pyx_t_10));
-  __pyx_t_10 = 0;
-  __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_10));
-  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_13));
+  __Pyx_GIVEREF(((PyObject *)__pyx_t_13));
+  __pyx_t_13 = 0;
+  __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_13));
+  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_11 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__uint32); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_11);
+  __pyx_t_14 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__uint32); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_14);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__dtype), __pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-  __pyx_t_11 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_11);
-  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
-  if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_12 = ((PyArrayObject *)__pyx_t_11);
+  if (PyDict_SetItem(__pyx_t_13, ((PyObject *)__pyx_n_s__dtype), __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+  __pyx_t_14 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_14);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
+  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = ((PyArrayObject *)__pyx_t_14);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
-    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_data.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
-      __pyx_v_data = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_data.rcbuffer->pybuffer.buf = NULL;
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    } else {__pyx_pybuffernd_data.diminfo[0].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_data.diminfo[0].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_data.diminfo[1].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_data.diminfo[1].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[1];
+    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
+    __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_data.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
+    if (unlikely(__pyx_t_12 < 0)) {
+      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
+      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_data.rcbuffer->pybuffer, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
+        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
+        __Pyx_RaiseBufferFallbackError();
+      } else {
+        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
+      }
     }
+    __pyx_pybuffernd_data.diminfo[0].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_data.diminfo[0].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_data.diminfo[1].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_data.diminfo[1].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[1];
+    if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_12 = 0;
-  __pyx_v_data = ((PyArrayObject *)__pyx_t_11);
-  __pyx_t_11 = 0;
-
-  /* "mar345_IO.pyx":99
- *         chigh = < int > overflowPix
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)
- *     if not end:             # <<<<<<<<<<<<<<
- *         end = raw.find("END OF HEADER")
- *     if end !=-1:
- */
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_end); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = (!__pyx_t_3);
-  if (__pyx_t_1) {
-
-    /* "mar345_IO.pyx":100
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)
- *     if not end:
- *         end = raw.find("END OF HEADER")             # <<<<<<<<<<<<<<
- *     if end !=-1:
- *         raw = raw[end+14:].lstrip()
- */
-    __pyx_t_11 = PyObject_GetAttr(__pyx_v_raw, __pyx_n_s__find); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_11);
-    __pyx_t_10 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_12), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_10);
-    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-    __Pyx_DECREF(__pyx_v_end);
-    __pyx_v_end = __pyx_t_10;
-    __pyx_t_10 = 0;
-    goto __pyx_L7;
-  }
-  __pyx_L7:;
-
-  /* "mar345_IO.pyx":101
- *     if not end:
- *         end = raw.find("END OF HEADER")
- *     if end !=-1:             # <<<<<<<<<<<<<<
- *         raw = raw[end+14:].lstrip()
- *     cdef char* instream = <char*> raw
- */
-  __pyx_t_10 = PyObject_RichCompare(__pyx_v_end, __pyx_int_neg_1, Py_NE); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_10);
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
-  if (__pyx_t_1) {
-
-    /* "mar345_IO.pyx":102
- *         end = raw.find("END OF HEADER")
- *     if end !=-1:
- *         raw = raw[end+14:].lstrip()             # <<<<<<<<<<<<<<
- *     cdef char* instream = <char*> raw
+  __pyx_t_15 = 0;
+  __pyx_v_data = ((PyArrayObject *)__pyx_t_14);
+  __pyx_t_14 = 0;
+
+  /* "mar345_IO.pyx":120
+ *     orecords = <int> (chigh/8.0+0.875)
+ *     data = numpy.empty((cdimy, cdimx), dtype=numpy.uint32)
+ *     flat = data.ravel() #flat view on the data             # <<<<<<<<<<<<<<
+ *     instream = numpy.fromstring(raw[normal_offset:].lstrip(),dtype=numpy.uint8)
  *     with nogil:
  */
-    __pyx_t_10 = PyNumber_Add(__pyx_v_end, __pyx_int_14); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_10);
-    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_10); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
-    __pyx_t_10 = __Pyx_PySequence_GetSlice(__pyx_v_raw, __pyx_t_7, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_10);
-    __pyx_t_11 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__lstrip); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_11);
-    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
-    __pyx_t_10 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_10);
-    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-    __Pyx_DECREF(__pyx_v_raw);
-    __pyx_v_raw = __pyx_t_10;
-    __pyx_t_10 = 0;
-    goto __pyx_L8;
+  __pyx_t_14 = PyObject_GetAttr(((PyObject *)__pyx_v_data), __pyx_n_s__ravel); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_14);
+  __pyx_t_13 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_13);
+  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_19 = ((PyArrayObject *)__pyx_t_13);
+  {
+    __Pyx_BufFmt_StackElem __pyx_stack[1];
+    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_flat.rcbuffer->pybuffer);
+    __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_flat.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
+    if (unlikely(__pyx_t_12 < 0)) {
+      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
+      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_flat.rcbuffer->pybuffer, (PyObject*)__pyx_v_flat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
+        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
+        __Pyx_RaiseBufferFallbackError();
+      } else {
+        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
+      }
+    }
+    __pyx_pybuffernd_flat.diminfo[0].strides = __pyx_pybuffernd_flat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_flat.diminfo[0].shape = __pyx_pybuffernd_flat.rcbuffer->pybuffer.shape[0];
+    if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_L8:;
-
-  /* "mar345_IO.pyx":103
- *     if end !=-1:
- *         raw = raw[end+14:].lstrip()
- *     cdef char* instream = <char*> raw             # <<<<<<<<<<<<<<
+  __pyx_t_19 = 0;
+  __pyx_v_flat = ((PyArrayObject *)__pyx_t_13);
+  __pyx_t_13 = 0;
+
+  /* "mar345_IO.pyx":121
+ *     data = numpy.empty((cdimy, cdimx), dtype=numpy.uint32)
+ *     flat = data.ravel() #flat view on the data
+ *     instream = numpy.fromstring(raw[normal_offset:].lstrip(),dtype=numpy.uint8)             # <<<<<<<<<<<<<<
  *     with nogil:
- *         data.data = <char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)
- */
-  __pyx_t_13 = PyBytes_AsString(__pyx_v_raw); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_instream = ((char *)__pyx_t_13);
+ *         ################################################################################
+ */
+  __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_13);
+  __pyx_t_14 = PyObject_GetAttr(__pyx_t_13, __pyx_n_s__fromstring); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_14);
+  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+  __pyx_t_13 = __Pyx_PySequence_GetSlice(__pyx_v_raw, __pyx_v_normal_offset, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_13);
+  __pyx_t_3 = PyObject_GetAttr(__pyx_t_13, __pyx_n_s__lstrip); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+  __pyx_t_13 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_13);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_13);
+  __Pyx_GIVEREF(__pyx_t_13);
+  __pyx_t_13 = 0;
+  __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_13));
+  __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_4 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__uint8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  if (PyDict_SetItem(__pyx_t_13, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_4 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
+  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_20 = ((PyArrayObject *)__pyx_t_4);
+  {
+    __Pyx_BufFmt_StackElem __pyx_stack[1];
+    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_instream.rcbuffer->pybuffer);
+    __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_instream.rcbuffer->pybuffer, (PyObject*)__pyx_t_20, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
+    if (unlikely(__pyx_t_12 < 0)) {
+      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
+      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_instream.rcbuffer->pybuffer, (PyObject*)__pyx_v_instream, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
+        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
+        __Pyx_RaiseBufferFallbackError();
+      } else {
+        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
+      }
+    }
+    __pyx_pybuffernd_instream.diminfo[0].strides = __pyx_pybuffernd_instream.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_instream.diminfo[0].shape = __pyx_pybuffernd_instream.rcbuffer->pybuffer.shape[0];
+    if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  }
+  __pyx_t_20 = 0;
+  __pyx_v_instream = ((PyArrayObject *)__pyx_t_4);
+  __pyx_t_4 = 0;
 
-  /* "mar345_IO.pyx":104
- *         raw = raw[end+14:].lstrip()
- *     cdef char* instream = <char*> raw
+  /* "mar345_IO.pyx":122
+ *     flat = data.ravel() #flat view on the data
+ *     instream = numpy.fromstring(raw[normal_offset:].lstrip(),dtype=numpy.uint8)
  *     with nogil:             # <<<<<<<<<<<<<<
- *         data.data = <char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)
- *     return data
+ *         ################################################################################
+ *         #      relay to whichever version of ccp4_unpack is appropriate
  */
   {
       #ifdef WITH_THREAD
@@ -2531,33 +2832,228 @@ static PyObject *__pyx_pf_9mar345_IO_2uncompress_pck(CYTHON_UNUSED PyObject *__p
       Py_UNBLOCK_THREADS
       /*try:*/ {
 
-        /* "mar345_IO.pyx":105
- *     cdef char* instream = <char*> raw
- *     with nogil:
- *         data.data = <char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)             # <<<<<<<<<<<<<<
- *     return data
- * 
- */
-        __pyx_v_data->data = ((char *)mar345_read_data_string(__pyx_v_instream, __pyx_v_chigh, __pyx_v_cdim1, __pyx_v_cdim2));
+        /* "mar345_IO.pyx":126
+ *         #      relay to whichever version of ccp4_unpack is appropriate
+ *         ################################################################################
+ *         if cversion == 1:             # <<<<<<<<<<<<<<
+ *             ccp4_unpack_string( &data[0,0], &instream[0], cdimx, cdimy,0);
+ *         else:# cversion == 2:
+ */
+        __pyx_t_1 = (__pyx_v_cversion == 1);
+        if (__pyx_t_1) {
+
+          /* "mar345_IO.pyx":127
+ *         ################################################################################
+ *         if cversion == 1:
+ *             ccp4_unpack_string( &data[0,0], &instream[0], cdimx, cdimy,0);             # <<<<<<<<<<<<<<
+ *         else:# cversion == 2:
+ *             ccp4_unpack_v2_string( &data[0,0], &instream[0], cdimx, cdimy,0);
+ */
+          __pyx_t_21 = 0;
+          __pyx_t_22 = 0;
+          if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_pybuffernd_data.diminfo[0].shape;
+          if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_pybuffernd_data.diminfo[1].shape;
+          __pyx_t_23 = 0;
+          if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_pybuffernd_instream.diminfo[0].shape;
+          ccp4_unpack_string((&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_data.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_data.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_data.diminfo[1].strides))), (&(*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_instream.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_instream.diminfo[0].strides))), __pyx_v_cdimx, __pyx_v_cdimy, 0);
+          goto __pyx_L12;
+        }
+        /*else*/ {
+
+          /* "mar345_IO.pyx":129
+ *             ccp4_unpack_string( &data[0,0], &instream[0], cdimx, cdimy,0);
+ *         else:# cversion == 2:
+ *             ccp4_unpack_v2_string( &data[0,0], &instream[0], cdimx, cdimy,0);             # <<<<<<<<<<<<<<
+ *     ################################################################################
+ *     # handle overflows
+ */
+          __pyx_t_24 = 0;
+          __pyx_t_25 = 0;
+          if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_pybuffernd_data.diminfo[0].shape;
+          if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_pybuffernd_data.diminfo[1].shape;
+          __pyx_t_26 = 0;
+          if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_pybuffernd_instream.diminfo[0].shape;
+          ccp4_unpack_v2_string((&(*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_data.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_data.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_data.diminfo[1].strides))), (&(*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_instream.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_instream.diminfo[0].strides))), __pyx_v_cdimx, __pyx_v_cdimy, 0);
+        }
+        __pyx_L12:;
       }
 
-      /* "mar345_IO.pyx":104
- *         raw = raw[end+14:].lstrip()
- *     cdef char* instream = <char*> raw
+      /* "mar345_IO.pyx":122
+ *     flat = data.ravel() #flat view on the data
+ *     instream = numpy.fromstring(raw[normal_offset:].lstrip(),dtype=numpy.uint8)
  *     with nogil:             # <<<<<<<<<<<<<<
- *         data.data = <char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)
- *     return data
+ *         ################################################################################
+ *         #      relay to whichever version of ccp4_unpack is appropriate
  */
       /*finally:*/ {
         Py_BLOCK_THREADS
       }
   }
 
-  /* "mar345_IO.pyx":106
- *     with nogil:
- *         data.data = <char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)
+  /* "mar345_IO.pyx":133
+ *     # handle overflows
+ *     ################################################################################
+ *     stop = normal_offset-lenkey-14             # <<<<<<<<<<<<<<
+ *     odata = numpy.fromstring(raw[stop-64*orecords: stop],dtype=numpy.int32)
+ *     odata.shape = -1,2
+ */
+  __pyx_t_4 = PyInt_FromLong(__pyx_v_normal_offset); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_13 = PyNumber_Subtract(__pyx_t_4, __pyx_v_lenkey); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_13);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_4 = PyNumber_Subtract(__pyx_t_13, __pyx_int_14); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+  __pyx_v_stop = __pyx_t_4;
+  __pyx_t_4 = 0;
+
+  /* "mar345_IO.pyx":134
+ *     ################################################################################
+ *     stop = normal_offset-lenkey-14
+ *     odata = numpy.fromstring(raw[stop-64*orecords: stop],dtype=numpy.int32)             # <<<<<<<<<<<<<<
+ *     odata.shape = -1,2
+ *     addresses = odata[:,0]
+ */
+  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_13 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__fromstring); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_13);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_4 = PyInt_FromLong((64 * __pyx_v_orecords)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = PyNumber_Subtract(__pyx_v_stop, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_v_stop); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PySequence_GetSlice(__pyx_v_raw, __pyx_t_10, __pyx_t_11); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_3);
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+  __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_14);
+  __pyx_t_9 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__int32); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_t_9 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+  __pyx_v_odata = __pyx_t_9;
+  __pyx_t_9 = 0;
+
+  /* "mar345_IO.pyx":135
+ *     stop = normal_offset-lenkey-14
+ *     odata = numpy.fromstring(raw[stop-64*orecords: stop],dtype=numpy.int32)
+ *     odata.shape = -1,2             # <<<<<<<<<<<<<<
+ *     addresses = odata[:,0]
+ *     values = odata[:,1]
+ */
+  if (PyObject_SetAttr(__pyx_v_odata, __pyx_n_s__shape, ((PyObject *)__pyx_k_tuple_14)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "mar345_IO.pyx":136
+ *     odata = numpy.fromstring(raw[stop-64*orecords: stop],dtype=numpy.int32)
+ *     odata.shape = -1,2
+ *     addresses = odata[:,0]             # <<<<<<<<<<<<<<
+ *     values = odata[:,1]
+ *     valid = (addresses>0)
+ */
+  __pyx_t_9 = PyObject_GetItem(__pyx_v_odata, ((PyObject *)__pyx_k_tuple_16)); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_v_addresses = __pyx_t_9;
+  __pyx_t_9 = 0;
+
+  /* "mar345_IO.pyx":137
+ *     odata.shape = -1,2
+ *     addresses = odata[:,0]
+ *     values = odata[:,1]             # <<<<<<<<<<<<<<
+ *     valid = (addresses>0)
+ *     addresses = addresses[valid]-1 #addresses start at 1 !!
+ */
+  __pyx_t_9 = PyObject_GetItem(__pyx_v_odata, ((PyObject *)__pyx_k_tuple_18)); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_v_values = __pyx_t_9;
+  __pyx_t_9 = 0;
+
+  /* "mar345_IO.pyx":138
+ *     addresses = odata[:,0]
+ *     values = odata[:,1]
+ *     valid = (addresses>0)             # <<<<<<<<<<<<<<
+ *     addresses = addresses[valid]-1 #addresses start at 1 !!
+ *     values = values[valid]
+ */
+  __pyx_t_9 = PyObject_RichCompare(__pyx_v_addresses, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_valid = __pyx_t_9;
+  __pyx_t_9 = 0;
+
+  /* "mar345_IO.pyx":139
+ *     values = odata[:,1]
+ *     valid = (addresses>0)
+ *     addresses = addresses[valid]-1 #addresses start at 1 !!             # <<<<<<<<<<<<<<
+ *     values = values[valid]
+ *     flat[addresses] = values.astype(numpy.uint32)
+ */
+  __pyx_t_9 = PyObject_GetItem(__pyx_v_addresses, __pyx_v_valid); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_3 = PyNumber_Subtract(__pyx_t_9, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_v_addresses);
+  __pyx_v_addresses = __pyx_t_3;
+  __pyx_t_3 = 0;
+
+  /* "mar345_IO.pyx":140
+ *     valid = (addresses>0)
+ *     addresses = addresses[valid]-1 #addresses start at 1 !!
+ *     values = values[valid]             # <<<<<<<<<<<<<<
+ *     flat[addresses] = values.astype(numpy.uint32)
+ *     return data
+ */
+  __pyx_t_3 = PyObject_GetItem(__pyx_v_values, __pyx_v_valid); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_v_values);
+  __pyx_v_values = __pyx_t_3;
+  __pyx_t_3 = 0;
+
+  /* "mar345_IO.pyx":141
+ *     addresses = addresses[valid]-1 #addresses start at 1 !!
+ *     values = values[valid]
+ *     flat[addresses] = values.astype(numpy.uint32)             # <<<<<<<<<<<<<<
+ *     return data
+ */
+  __pyx_t_3 = PyObject_GetAttr(__pyx_v_values, __pyx_n_s__astype); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_4 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__uint32); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
+  __Pyx_GIVEREF(__pyx_t_4);
+  __pyx_t_4 = 0;
+  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
+  if (PyObject_SetItem(((PyObject *)__pyx_v_flat), __pyx_v_addresses, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+
+  /* "mar345_IO.pyx":142
+ *     values = values[valid]
+ *     flat[addresses] = values.astype(numpy.uint32)
  *     return data             # <<<<<<<<<<<<<<
- * 
  */
   __Pyx_XDECREF(__pyx_r);
   __Pyx_INCREF(((PyObject *)__pyx_v_data));
@@ -2567,39 +3063,50 @@ static PyObject *__pyx_pf_9mar345_IO_2uncompress_pck(CYTHON_UNUSED PyObject *__p
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
-  __Pyx_XDECREF(__pyx_t_5);
-  __Pyx_XDECREF(__pyx_t_6);
-  __Pyx_XDECREF(__pyx_t_10);
-  __Pyx_XDECREF(__pyx_t_11);
+  __Pyx_XDECREF(__pyx_t_9);
+  __Pyx_XDECREF(__pyx_t_13);
+  __Pyx_XDECREF(__pyx_t_14);
   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
+    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_flat.rcbuffer->pybuffer);
+    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_instream.rcbuffer->pybuffer);
   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   __Pyx_AddTraceback("mar345_IO.uncompress_pck", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   goto __pyx_L2;
   __pyx_L0:;
   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
+  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_flat.rcbuffer->pybuffer);
+  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_instream.rcbuffer->pybuffer);
   __pyx_L2:;
+  __Pyx_XDECREF((PyObject *)__pyx_v_data);
+  __Pyx_XDECREF((PyObject *)__pyx_v_flat);
+  __Pyx_XDECREF((PyObject *)__pyx_v_instream);
   __Pyx_XDECREF(__pyx_v_end);
   __Pyx_XDECREF(__pyx_v_key1);
   __Pyx_XDECREF(__pyx_v_key2);
   __Pyx_XDECREF(__pyx_v_start);
   __Pyx_XDECREF(__pyx_v_key);
+  __Pyx_XDECREF(__pyx_v_lenkey);
   __Pyx_XDECREF(__pyx_v_sizes);
   __Pyx_XDECREF(__pyx_v_hiLine);
   __Pyx_XDECREF(__pyx_v_word);
-  __Pyx_XDECREF((PyObject *)__pyx_v_data);
-  __Pyx_XDECREF(__pyx_v_raw);
+  __Pyx_XDECREF(__pyx_v_stop);
+  __Pyx_XDECREF(__pyx_v_odata);
+  __Pyx_XDECREF(__pyx_v_addresses);
+  __Pyx_XDECREF(__pyx_v_values);
+  __Pyx_XDECREF(__pyx_v_valid);
   __Pyx_XGIVEREF(__pyx_r);
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
 
 /* Python wrapper */
-static int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
-static int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
+static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
+static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
@@ -2608,7 +3115,7 @@ static int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_bu
   return __pyx_r;
 }
 
-/* "numpy.pxd":193
+/* "numpy.pxd":194
  *         # experimental exception made for __getbuffer__ and __releasebuffer__
  *         # -- the details of this may change.
  *         def __getbuffer__(ndarray self, Py_buffer* info, int flags):             # <<<<<<<<<<<<<<
@@ -2647,7 +3154,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
     __Pyx_GIVEREF(__pyx_v_info->obj);
   }
 
-  /* "numpy.pxd":199
+  /* "numpy.pxd":200
  *             # of flags
  * 
  *             if info == NULL: return             # <<<<<<<<<<<<<<
@@ -2662,7 +3169,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   __pyx_L3:;
 
-  /* "numpy.pxd":202
+  /* "numpy.pxd":203
  * 
  *             cdef int copy_shape, i, ndim
  *             cdef int endian_detector = 1             # <<<<<<<<<<<<<<
@@ -2671,7 +3178,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_endian_detector = 1;
 
-  /* "numpy.pxd":203
+  /* "numpy.pxd":204
  *             cdef int copy_shape, i, ndim
  *             cdef int endian_detector = 1
  *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
@@ -2680,7 +3187,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
 
-  /* "numpy.pxd":205
+  /* "numpy.pxd":206
  *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
  * 
  *             ndim = PyArray_NDIM(self)             # <<<<<<<<<<<<<<
@@ -2689,7 +3196,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_ndim = PyArray_NDIM(__pyx_v_self);
 
-  /* "numpy.pxd":207
+  /* "numpy.pxd":208
  *             ndim = PyArray_NDIM(self)
  * 
  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
@@ -2699,7 +3206,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   __pyx_t_1 = ((sizeof(npy_intp)) != (sizeof(Py_ssize_t)));
   if (__pyx_t_1) {
 
-    /* "numpy.pxd":208
+    /* "numpy.pxd":209
  * 
  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
  *                 copy_shape = 1             # <<<<<<<<<<<<<<
@@ -2711,7 +3218,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   /*else*/ {
 
-    /* "numpy.pxd":210
+    /* "numpy.pxd":211
  *                 copy_shape = 1
  *             else:
  *                 copy_shape = 0             # <<<<<<<<<<<<<<
@@ -2722,7 +3229,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   __pyx_L4:;
 
-  /* "numpy.pxd":212
+  /* "numpy.pxd":213
  *                 copy_shape = 0
  * 
  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)             # <<<<<<<<<<<<<<
@@ -2732,7 +3239,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   __pyx_t_1 = ((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS);
   if (__pyx_t_1) {
 
-    /* "numpy.pxd":213
+    /* "numpy.pxd":214
  * 
  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)):             # <<<<<<<<<<<<<<
@@ -2746,23 +3253,23 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   if (__pyx_t_3) {
 
-    /* "numpy.pxd":214
+    /* "numpy.pxd":215
  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)):
  *                 raise ValueError(u"ndarray is not C contiguous")             # <<<<<<<<<<<<<<
  * 
  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
  */
-    __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_14), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_20), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "numpy.pxd":216
+  /* "numpy.pxd":217
  *                 raise ValueError(u"ndarray is not C contiguous")
  * 
  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)             # <<<<<<<<<<<<<<
@@ -2772,7 +3279,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   __pyx_t_3 = ((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS);
   if (__pyx_t_3) {
 
-    /* "numpy.pxd":217
+    /* "numpy.pxd":218
  * 
  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)):             # <<<<<<<<<<<<<<
@@ -2786,23 +3293,23 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   if (__pyx_t_2) {
 
-    /* "numpy.pxd":218
+    /* "numpy.pxd":219
  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)):
  *                 raise ValueError(u"ndarray is not Fortran contiguous")             # <<<<<<<<<<<<<<
  * 
  *             info.buf = PyArray_DATA(self)
  */
-    __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_16), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_22), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L6;
   }
   __pyx_L6:;
 
-  /* "numpy.pxd":220
+  /* "numpy.pxd":221
  *                 raise ValueError(u"ndarray is not Fortran contiguous")
  * 
  *             info.buf = PyArray_DATA(self)             # <<<<<<<<<<<<<<
@@ -2811,7 +3318,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_info->buf = PyArray_DATA(__pyx_v_self);
 
-  /* "numpy.pxd":221
+  /* "numpy.pxd":222
  * 
  *             info.buf = PyArray_DATA(self)
  *             info.ndim = ndim             # <<<<<<<<<<<<<<
@@ -2820,7 +3327,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_info->ndim = __pyx_v_ndim;
 
-  /* "numpy.pxd":222
+  /* "numpy.pxd":223
  *             info.buf = PyArray_DATA(self)
  *             info.ndim = ndim
  *             if copy_shape:             # <<<<<<<<<<<<<<
@@ -2829,7 +3336,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   if (__pyx_v_copy_shape) {
 
-    /* "numpy.pxd":225
+    /* "numpy.pxd":226
  *                 # Allocate new buffer for strides and shape info.
  *                 # This is allocated as one block, strides first.
  *                 info.strides = <Py_ssize_t*>stdlib.malloc(sizeof(Py_ssize_t) * <size_t>ndim * 2)             # <<<<<<<<<<<<<<
@@ -2838,7 +3345,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
     __pyx_v_info->strides = ((Py_ssize_t *)malloc((((sizeof(Py_ssize_t)) * ((size_t)__pyx_v_ndim)) * 2)));
 
-    /* "numpy.pxd":226
+    /* "numpy.pxd":227
  *                 # This is allocated as one block, strides first.
  *                 info.strides = <Py_ssize_t*>stdlib.malloc(sizeof(Py_ssize_t) * <size_t>ndim * 2)
  *                 info.shape = info.strides + ndim             # <<<<<<<<<<<<<<
@@ -2847,7 +3354,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
     __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim);
 
-    /* "numpy.pxd":227
+    /* "numpy.pxd":228
  *                 info.strides = <Py_ssize_t*>stdlib.malloc(sizeof(Py_ssize_t) * <size_t>ndim * 2)
  *                 info.shape = info.strides + ndim
  *                 for i in range(ndim):             # <<<<<<<<<<<<<<
@@ -2858,7 +3365,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
       __pyx_v_i = __pyx_t_6;
 
-      /* "numpy.pxd":228
+      /* "numpy.pxd":229
  *                 info.shape = info.strides + ndim
  *                 for i in range(ndim):
  *                     info.strides[i] = PyArray_STRIDES(self)[i]             # <<<<<<<<<<<<<<
@@ -2867,7 +3374,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
       (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]);
 
-      /* "numpy.pxd":229
+      /* "numpy.pxd":230
  *                 for i in range(ndim):
  *                     info.strides[i] = PyArray_STRIDES(self)[i]
  *                     info.shape[i] = PyArray_DIMS(self)[i]             # <<<<<<<<<<<<<<
@@ -2880,7 +3387,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   /*else*/ {
 
-    /* "numpy.pxd":231
+    /* "numpy.pxd":232
  *                     info.shape[i] = PyArray_DIMS(self)[i]
  *             else:
  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)             # <<<<<<<<<<<<<<
@@ -2889,7 +3396,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
     __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self));
 
-    /* "numpy.pxd":232
+    /* "numpy.pxd":233
  *             else:
  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)             # <<<<<<<<<<<<<<
@@ -2900,7 +3407,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   __pyx_L7:;
 
-  /* "numpy.pxd":233
+  /* "numpy.pxd":234
  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
  *             info.suboffsets = NULL             # <<<<<<<<<<<<<<
@@ -2909,7 +3416,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_info->suboffsets = NULL;
 
-  /* "numpy.pxd":234
+  /* "numpy.pxd":235
  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
  *             info.suboffsets = NULL
  *             info.itemsize = PyArray_ITEMSIZE(self)             # <<<<<<<<<<<<<<
@@ -2918,7 +3425,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self);
 
-  /* "numpy.pxd":235
+  /* "numpy.pxd":236
  *             info.suboffsets = NULL
  *             info.itemsize = PyArray_ITEMSIZE(self)
  *             info.readonly = not PyArray_ISWRITEABLE(self)             # <<<<<<<<<<<<<<
@@ -2927,7 +3434,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_info->readonly = (!PyArray_ISWRITEABLE(__pyx_v_self));
 
-  /* "numpy.pxd":238
+  /* "numpy.pxd":239
  * 
  *             cdef int t
  *             cdef char* f = NULL             # <<<<<<<<<<<<<<
@@ -2936,17 +3443,19 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_f = NULL;
 
-  /* "numpy.pxd":239
+  /* "numpy.pxd":240
  *             cdef int t
  *             cdef char* f = NULL
  *             cdef dtype descr = self.descr             # <<<<<<<<<<<<<<
  *             cdef list stack
  *             cdef int offset
  */
-  __Pyx_INCREF(((PyObject *)__pyx_v_self->descr));
-  __pyx_v_descr = __pyx_v_self->descr;
+  __pyx_t_4 = ((PyObject *)__pyx_v_self->descr);
+  __Pyx_INCREF(__pyx_t_4);
+  __pyx_v_descr = ((PyArray_Descr *)__pyx_t_4);
+  __pyx_t_4 = 0;
 
-  /* "numpy.pxd":243
+  /* "numpy.pxd":244
  *             cdef int offset
  * 
  *             cdef bint hasfields = PyDataType_HASFIELDS(descr)             # <<<<<<<<<<<<<<
@@ -2955,7 +3464,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
   __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr);
 
-  /* "numpy.pxd":245
+  /* "numpy.pxd":246
  *             cdef bint hasfields = PyDataType_HASFIELDS(descr)
  * 
  *             if not hasfields and not copy_shape:             # <<<<<<<<<<<<<<
@@ -2971,7 +3480,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   if (__pyx_t_1) {
 
-    /* "numpy.pxd":247
+    /* "numpy.pxd":248
  *             if not hasfields and not copy_shape:
  *                 # do not call releasebuffer
  *                 info.obj = None             # <<<<<<<<<<<<<<
@@ -2987,7 +3496,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   /*else*/ {
 
-    /* "numpy.pxd":250
+    /* "numpy.pxd":251
  *             else:
  *                 # need to call releasebuffer
  *                 info.obj = self             # <<<<<<<<<<<<<<
@@ -3002,30 +3511,31 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   __pyx_L10:;
 
-  /* "numpy.pxd":252
+  /* "numpy.pxd":253
  *                 info.obj = self
  * 
  *             if not hasfields:             # <<<<<<<<<<<<<<
  *                 t = descr.type_num
- *                 if ((descr.byteorder == '>' and little_endian) or
+ *                 if ((descr.byteorder == c'>' and little_endian) or
  */
   __pyx_t_1 = (!__pyx_v_hasfields);
   if (__pyx_t_1) {
 
-    /* "numpy.pxd":253
+    /* "numpy.pxd":254
  * 
  *             if not hasfields:
  *                 t = descr.type_num             # <<<<<<<<<<<<<<
- *                 if ((descr.byteorder == '>' and little_endian) or
- *                     (descr.byteorder == '<' and not little_endian)):
+ *                 if ((descr.byteorder == c'>' and little_endian) or
+ *                     (descr.byteorder == c'<' and not little_endian)):
  */
-    __pyx_v_t = __pyx_v_descr->type_num;
+    __pyx_t_5 = __pyx_v_descr->type_num;
+    __pyx_v_t = __pyx_t_5;
 
-    /* "numpy.pxd":254
+    /* "numpy.pxd":255
  *             if not hasfields:
  *                 t = descr.type_num
- *                 if ((descr.byteorder == '>' and little_endian) or             # <<<<<<<<<<<<<<
- *                     (descr.byteorder == '<' and not little_endian)):
+ *                 if ((descr.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
+ *                     (descr.byteorder == c'<' and not little_endian)):
  *                     raise ValueError(u"Non-native byte order not supported")
  */
     __pyx_t_1 = (__pyx_v_descr->byteorder == '>');
@@ -3036,10 +3546,10 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
     }
     if (!__pyx_t_2) {
 
-      /* "numpy.pxd":255
+      /* "numpy.pxd":256
  *                 t = descr.type_num
- *                 if ((descr.byteorder == '>' and little_endian) or
- *                     (descr.byteorder == '<' and not little_endian)):             # <<<<<<<<<<<<<<
+ *                 if ((descr.byteorder == c'>' and little_endian) or
+ *                     (descr.byteorder == c'<' and not little_endian)):             # <<<<<<<<<<<<<<
  *                     raise ValueError(u"Non-native byte order not supported")
  *                 if   t == NPY_BYTE:        f = "b"
  */
@@ -3056,24 +3566,24 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
     }
     if (__pyx_t_1) {
 
-      /* "numpy.pxd":256
- *                 if ((descr.byteorder == '>' and little_endian) or
- *                     (descr.byteorder == '<' and not little_endian)):
+      /* "numpy.pxd":257
+ *                 if ((descr.byteorder == c'>' and little_endian) or
+ *                     (descr.byteorder == c'<' and not little_endian)):
  *                     raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
  *                 if   t == NPY_BYTE:        f = "b"
  *                 elif t == NPY_UBYTE:       f = "B"
  */
-      __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_18), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_24), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_Raise(__pyx_t_4, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L12;
     }
     __pyx_L12:;
 
-    /* "numpy.pxd":257
- *                     (descr.byteorder == '<' and not little_endian)):
+    /* "numpy.pxd":258
+ *                     (descr.byteorder == c'<' and not little_endian)):
  *                     raise ValueError(u"Non-native byte order not supported")
  *                 if   t == NPY_BYTE:        f = "b"             # <<<<<<<<<<<<<<
  *                 elif t == NPY_UBYTE:       f = "B"
@@ -3085,7 +3595,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":258
+    /* "numpy.pxd":259
  *                     raise ValueError(u"Non-native byte order not supported")
  *                 if   t == NPY_BYTE:        f = "b"
  *                 elif t == NPY_UBYTE:       f = "B"             # <<<<<<<<<<<<<<
@@ -3098,7 +3608,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":259
+    /* "numpy.pxd":260
  *                 if   t == NPY_BYTE:        f = "b"
  *                 elif t == NPY_UBYTE:       f = "B"
  *                 elif t == NPY_SHORT:       f = "h"             # <<<<<<<<<<<<<<
@@ -3111,7 +3621,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":260
+    /* "numpy.pxd":261
  *                 elif t == NPY_UBYTE:       f = "B"
  *                 elif t == NPY_SHORT:       f = "h"
  *                 elif t == NPY_USHORT:      f = "H"             # <<<<<<<<<<<<<<
@@ -3124,7 +3634,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":261
+    /* "numpy.pxd":262
  *                 elif t == NPY_SHORT:       f = "h"
  *                 elif t == NPY_USHORT:      f = "H"
  *                 elif t == NPY_INT:         f = "i"             # <<<<<<<<<<<<<<
@@ -3137,7 +3647,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":262
+    /* "numpy.pxd":263
  *                 elif t == NPY_USHORT:      f = "H"
  *                 elif t == NPY_INT:         f = "i"
  *                 elif t == NPY_UINT:        f = "I"             # <<<<<<<<<<<<<<
@@ -3150,7 +3660,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":263
+    /* "numpy.pxd":264
  *                 elif t == NPY_INT:         f = "i"
  *                 elif t == NPY_UINT:        f = "I"
  *                 elif t == NPY_LONG:        f = "l"             # <<<<<<<<<<<<<<
@@ -3163,7 +3673,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":264
+    /* "numpy.pxd":265
  *                 elif t == NPY_UINT:        f = "I"
  *                 elif t == NPY_LONG:        f = "l"
  *                 elif t == NPY_ULONG:       f = "L"             # <<<<<<<<<<<<<<
@@ -3176,7 +3686,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":265
+    /* "numpy.pxd":266
  *                 elif t == NPY_LONG:        f = "l"
  *                 elif t == NPY_ULONG:       f = "L"
  *                 elif t == NPY_LONGLONG:    f = "q"             # <<<<<<<<<<<<<<
@@ -3189,7 +3699,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":266
+    /* "numpy.pxd":267
  *                 elif t == NPY_ULONG:       f = "L"
  *                 elif t == NPY_LONGLONG:    f = "q"
  *                 elif t == NPY_ULONGLONG:   f = "Q"             # <<<<<<<<<<<<<<
@@ -3202,7 +3712,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":267
+    /* "numpy.pxd":268
  *                 elif t == NPY_LONGLONG:    f = "q"
  *                 elif t == NPY_ULONGLONG:   f = "Q"
  *                 elif t == NPY_FLOAT:       f = "f"             # <<<<<<<<<<<<<<
@@ -3215,7 +3725,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":268
+    /* "numpy.pxd":269
  *                 elif t == NPY_ULONGLONG:   f = "Q"
  *                 elif t == NPY_FLOAT:       f = "f"
  *                 elif t == NPY_DOUBLE:      f = "d"             # <<<<<<<<<<<<<<
@@ -3228,7 +3738,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":269
+    /* "numpy.pxd":270
  *                 elif t == NPY_FLOAT:       f = "f"
  *                 elif t == NPY_DOUBLE:      f = "d"
  *                 elif t == NPY_LONGDOUBLE:  f = "g"             # <<<<<<<<<<<<<<
@@ -3241,7 +3751,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":270
+    /* "numpy.pxd":271
  *                 elif t == NPY_DOUBLE:      f = "d"
  *                 elif t == NPY_LONGDOUBLE:  f = "g"
  *                 elif t == NPY_CFLOAT:      f = "Zf"             # <<<<<<<<<<<<<<
@@ -3254,7 +3764,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":271
+    /* "numpy.pxd":272
  *                 elif t == NPY_LONGDOUBLE:  f = "g"
  *                 elif t == NPY_CFLOAT:      f = "Zf"
  *                 elif t == NPY_CDOUBLE:     f = "Zd"             # <<<<<<<<<<<<<<
@@ -3267,7 +3777,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":272
+    /* "numpy.pxd":273
  *                 elif t == NPY_CFLOAT:      f = "Zf"
  *                 elif t == NPY_CDOUBLE:     f = "Zd"
  *                 elif t == NPY_CLONGDOUBLE: f = "Zg"             # <<<<<<<<<<<<<<
@@ -3280,7 +3790,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
       goto __pyx_L13;
     }
 
-    /* "numpy.pxd":273
+    /* "numpy.pxd":274
  *                 elif t == NPY_CDOUBLE:     f = "Zd"
  *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
  *                 elif t == NPY_OBJECT:      f = "O"             # <<<<<<<<<<<<<<
@@ -3294,33 +3804,33 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
     }
     /*else*/ {
 
-      /* "numpy.pxd":275
+      /* "numpy.pxd":276
  *                 elif t == NPY_OBJECT:      f = "O"
  *                 else:
  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
  *                 info.format = f
  *                 return
  */
-      __pyx_t_4 = PyInt_FromLong(__pyx_v_t); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyInt_FromLong(__pyx_v_t); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_19), __pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_25), __pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_8));
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_8));
       __Pyx_GIVEREF(((PyObject *)__pyx_t_8));
       __pyx_t_8 = 0;
-      __pyx_t_8 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_L13:;
 
-    /* "numpy.pxd":276
+    /* "numpy.pxd":277
  *                 else:
  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
  *                 info.format = f             # <<<<<<<<<<<<<<
@@ -3329,7 +3839,7 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
  */
     __pyx_v_info->format = __pyx_v_f;
 
-    /* "numpy.pxd":277
+    /* "numpy.pxd":278
  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
  *                 info.format = f
  *                 return             # <<<<<<<<<<<<<<
@@ -3342,51 +3852,51 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
   }
   /*else*/ {
 
-    /* "numpy.pxd":279
+    /* "numpy.pxd":280
  *                 return
  *             else:
  *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)             # <<<<<<<<<<<<<<
- *                 info.format[0] = '^' # Native data types, manual alignment
+ *                 info.format[0] = c'^' # Native data types, manual alignment
  *                 offset = 0
  */
     __pyx_v_info->format = ((char *)malloc(255));
 
-    /* "numpy.pxd":280
+    /* "numpy.pxd":281
  *             else:
  *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)
- *                 info.format[0] = '^' # Native data types, manual alignment             # <<<<<<<<<<<<<<
+ *                 info.format[0] = c'^' # Native data types, manual alignment             # <<<<<<<<<<<<<<
  *                 offset = 0
  *                 f = _util_dtypestring(descr, info.format + 1,
  */
     (__pyx_v_info->format[0]) = '^';
 
-    /* "numpy.pxd":281
+    /* "numpy.pxd":282
  *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)
- *                 info.format[0] = '^' # Native data types, manual alignment
+ *                 info.format[0] = c'^' # Native data types, manual alignment
  *                 offset = 0             # <<<<<<<<<<<<<<
  *                 f = _util_dtypestring(descr, info.format + 1,
  *                                       info.format + _buffer_format_string_len,
  */
     __pyx_v_offset = 0;
 
-    /* "numpy.pxd":284
+    /* "numpy.pxd":285
  *                 f = _util_dtypestring(descr, info.format + 1,
  *                                       info.format + _buffer_format_string_len,
  *                                       &offset)             # <<<<<<<<<<<<<<
- *                 f[0] = 0 # Terminate format string
+ *                 f[0] = c'\0' # Terminate format string
  * 
  */
-    __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 255), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 255), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_f = __pyx_t_9;
 
-    /* "numpy.pxd":285
+    /* "numpy.pxd":286
  *                                       info.format + _buffer_format_string_len,
  *                                       &offset)
- *                 f[0] = 0 # Terminate format string             # <<<<<<<<<<<<<<
+ *                 f[0] = c'\0' # Terminate format string             # <<<<<<<<<<<<<<
  * 
  *         def __releasebuffer__(ndarray self, Py_buffer* info):
  */
-    (__pyx_v_f[0]) = 0;
+    (__pyx_v_f[0]) = '\x00';
   }
   __pyx_L11:;
 
@@ -3414,16 +3924,16 @@ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, P
 }
 
 /* Python wrapper */
-static void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/
-static void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
+static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/
+static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0);
   __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info));
   __Pyx_RefNannyFinishContext();
 }
 
-/* "numpy.pxd":287
- *                 f[0] = 0 # Terminate format string
+/* "numpy.pxd":288
+ *                 f[0] = c'\0' # Terminate format string
  * 
  *         def __releasebuffer__(ndarray self, Py_buffer* info):             # <<<<<<<<<<<<<<
  *             if PyArray_HASFIELDS(self):
@@ -3435,7 +3945,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("__releasebuffer__", 0);
 
-  /* "numpy.pxd":288
+  /* "numpy.pxd":289
  * 
  *         def __releasebuffer__(ndarray self, Py_buffer* info):
  *             if PyArray_HASFIELDS(self):             # <<<<<<<<<<<<<<
@@ -3445,7 +3955,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s
   __pyx_t_1 = PyArray_HASFIELDS(__pyx_v_self);
   if (__pyx_t_1) {
 
-    /* "numpy.pxd":289
+    /* "numpy.pxd":290
  *         def __releasebuffer__(ndarray self, Py_buffer* info):
  *             if PyArray_HASFIELDS(self):
  *                 stdlib.free(info.format)             # <<<<<<<<<<<<<<
@@ -3457,7 +3967,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s
   }
   __pyx_L3:;
 
-  /* "numpy.pxd":290
+  /* "numpy.pxd":291
  *             if PyArray_HASFIELDS(self):
  *                 stdlib.free(info.format)
  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
@@ -3467,7 +3977,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s
   __pyx_t_1 = ((sizeof(npy_intp)) != (sizeof(Py_ssize_t)));
   if (__pyx_t_1) {
 
-    /* "numpy.pxd":291
+    /* "numpy.pxd":292
  *                 stdlib.free(info.format)
  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
  *                 stdlib.free(info.strides)             # <<<<<<<<<<<<<<
@@ -3482,7 +3992,7 @@ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_s
   __Pyx_RefNannyFinishContext();
 }
 
-/* "numpy.pxd":767
+/* "numpy.pxd":768
  * ctypedef npy_cdouble     complex_t
  * 
  * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
@@ -3499,7 +4009,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
 
-  /* "numpy.pxd":768
+  /* "numpy.pxd":769
  * 
  * cdef inline object PyArray_MultiIterNew1(a):
  *     return PyArray_MultiIterNew(1, <void*>a)             # <<<<<<<<<<<<<<
@@ -3507,7 +4017,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__
  * cdef inline object PyArray_MultiIterNew2(a, b):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -3525,7 +4035,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__
   return __pyx_r;
 }
 
-/* "numpy.pxd":770
+/* "numpy.pxd":771
  *     return PyArray_MultiIterNew(1, <void*>a)
  * 
  * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
@@ -3542,7 +4052,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
 
-  /* "numpy.pxd":771
+  /* "numpy.pxd":772
  * 
  * cdef inline object PyArray_MultiIterNew2(a, b):
  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)             # <<<<<<<<<<<<<<
@@ -3550,7 +4060,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__
  * cdef inline object PyArray_MultiIterNew3(a, b, c):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -3568,7 +4078,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__
   return __pyx_r;
 }
 
-/* "numpy.pxd":773
+/* "numpy.pxd":774
  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
  * 
  * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
@@ -3585,7 +4095,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
 
-  /* "numpy.pxd":774
+  /* "numpy.pxd":775
  * 
  * cdef inline object PyArray_MultiIterNew3(a, b, c):
  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)             # <<<<<<<<<<<<<<
@@ -3593,7 +4103,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -3611,7 +4121,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__
   return __pyx_r;
 }
 
-/* "numpy.pxd":776
+/* "numpy.pxd":777
  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
  * 
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
@@ -3628,7 +4138,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
 
-  /* "numpy.pxd":777
+  /* "numpy.pxd":778
  * 
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)             # <<<<<<<<<<<<<<
@@ -3636,7 +4146,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -3654,7 +4164,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__
   return __pyx_r;
 }
 
-/* "numpy.pxd":779
+/* "numpy.pxd":780
  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
  * 
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
@@ -3671,7 +4181,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
 
-  /* "numpy.pxd":780
+  /* "numpy.pxd":781
  * 
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)             # <<<<<<<<<<<<<<
@@ -3679,7 +4189,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__
  * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -3697,7 +4207,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__
   return __pyx_r;
 }
 
-/* "numpy.pxd":782
+/* "numpy.pxd":783
  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
  * 
  * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:             # <<<<<<<<<<<<<<
@@ -3720,18 +4230,19 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
-  int __pyx_t_6;
+  PyObject *(*__pyx_t_6)(PyObject *);
   int __pyx_t_7;
   int __pyx_t_8;
   int __pyx_t_9;
-  long __pyx_t_10;
-  char *__pyx_t_11;
+  int __pyx_t_10;
+  long __pyx_t_11;
+  char *__pyx_t_12;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_util_dtypestring", 0);
 
-  /* "numpy.pxd":789
+  /* "numpy.pxd":790
  *     cdef int delta_offset
  *     cdef tuple i
  *     cdef int endian_detector = 1             # <<<<<<<<<<<<<<
@@ -3740,7 +4251,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
  */
   __pyx_v_endian_detector = 1;
 
-  /* "numpy.pxd":790
+  /* "numpy.pxd":791
  *     cdef tuple i
  *     cdef int endian_detector = 1
  *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
@@ -3749,7 +4260,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
  */
   __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
 
-  /* "numpy.pxd":793
+  /* "numpy.pxd":794
  *     cdef tuple fields
  * 
  *     for childname in descr.names:             # <<<<<<<<<<<<<<
@@ -3757,56 +4268,89 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
  *         child, new_offset = fields
  */
   if (unlikely(((PyObject *)__pyx_v_descr->names) == Py_None)) {
-    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
+    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
+    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_1 = ((PyObject *)__pyx_v_descr->names); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
   for (;;) {
     if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
-    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++;
+    #if CYTHON_COMPILING_IN_CPYTHON
+    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    #else
+    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    #endif
     __Pyx_XDECREF(__pyx_v_childname);
     __pyx_v_childname = __pyx_t_3;
     __pyx_t_3 = 0;
 
-    /* "numpy.pxd":794
+    /* "numpy.pxd":795
  * 
  *     for childname in descr.names:
  *         fields = descr.fields[childname]             # <<<<<<<<<<<<<<
  *         child, new_offset = fields
  * 
  */
-    __pyx_t_3 = PyObject_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (!__pyx_t_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (!__pyx_t_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XDECREF(((PyObject *)__pyx_v_fields));
     __pyx_v_fields = ((PyObject*)__pyx_t_3);
     __pyx_t_3 = 0;
 
-    /* "numpy.pxd":795
+    /* "numpy.pxd":796
  *     for childname in descr.names:
  *         fields = descr.fields[childname]
  *         child, new_offset = fields             # <<<<<<<<<<<<<<
  * 
  *         if (end - f) - (new_offset - offset[0]) < 15:
  */
-    #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(((PyObject *)__pyx_v_fields)))) {
       PyObject* sequence = ((PyObject *)__pyx_v_fields);
-      if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
-        if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
-        else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
-        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      #if CYTHON_COMPILING_IN_CPYTHON
+      Py_ssize_t size = Py_SIZE(sequence);
+      #else
+      Py_ssize_t size = PySequence_Size(sequence);
+      #endif
+      if (unlikely(size != 2)) {
+        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
+        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
+        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
+      #if CYTHON_COMPILING_IN_CPYTHON
       __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
-      __Pyx_INCREF(__pyx_t_3);
       __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
+      __Pyx_INCREF(__pyx_t_3);
       __Pyx_INCREF(__pyx_t_4);
+      #else
+      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      #endif
+    } else if (1) {
+      __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     } else
-    #endif
     {
-      __Pyx_UnpackTupleError(((PyObject *)__pyx_v_fields), 2);
-      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      Py_ssize_t index = -1;
+      __pyx_t_5 = PyObject_GetIter(((PyObject *)__pyx_v_fields)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
+      index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_3);
+      index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_4);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = NULL;
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      goto __pyx_L6_unpacking_done;
+      __pyx_L5_unpacking_failed:;
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_6 = NULL;
+      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
+      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_L6_unpacking_done:;
     }
-    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XDECREF(((PyObject *)__pyx_v_child));
     __pyx_v_child = ((PyArray_Descr *)__pyx_t_3);
     __pyx_t_3 = 0;
@@ -3814,99 +4358,98 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
     __pyx_v_new_offset = __pyx_t_4;
     __pyx_t_4 = 0;
 
-    /* "numpy.pxd":797
+    /* "numpy.pxd":798
  *         child, new_offset = fields
  * 
  *         if (end - f) - (new_offset - offset[0]) < 15:             # <<<<<<<<<<<<<<
  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
  * 
  */
-    __pyx_t_4 = PyInt_FromLong((__pyx_v_end - __pyx_v_f)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyInt_FromLong((__pyx_v_end - __pyx_v_f)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_3 = PyInt_FromLong((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyInt_FromLong((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_5 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_int_15, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_int_15, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    if (__pyx_t_6) {
+    if (__pyx_t_7) {
 
-      /* "numpy.pxd":798
+      /* "numpy.pxd":799
  * 
  *         if (end - f) - (new_offset - offset[0]) < 15:
  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
  * 
- *         if ((child.byteorder == '>' and little_endian) or
+ *         if ((child.byteorder == c'>' and little_endian) or
  */
-      __pyx_t_5 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_21), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_27), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_Raise(__pyx_t_5, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      goto __pyx_L5;
+      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      goto __pyx_L7;
     }
-    __pyx_L5:;
+    __pyx_L7:;
 
-    /* "numpy.pxd":800
+    /* "numpy.pxd":801
  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
  * 
- *         if ((child.byteorder == '>' and little_endian) or             # <<<<<<<<<<<<<<
- *             (child.byteorder == '<' and not little_endian)):
+ *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
+ *             (child.byteorder == c'<' and not little_endian)):
  *             raise ValueError(u"Non-native byte order not supported")
  */
-    __pyx_t_6 = (__pyx_v_child->byteorder == '>');
-    if (__pyx_t_6) {
-      __pyx_t_7 = __pyx_v_little_endian;
+    __pyx_t_7 = (__pyx_v_child->byteorder == '>');
+    if (__pyx_t_7) {
+      __pyx_t_8 = __pyx_v_little_endian;
     } else {
-      __pyx_t_7 = __pyx_t_6;
+      __pyx_t_8 = __pyx_t_7;
     }
-    if (!__pyx_t_7) {
+    if (!__pyx_t_8) {
 
-      /* "numpy.pxd":801
+      /* "numpy.pxd":802
  * 
- *         if ((child.byteorder == '>' and little_endian) or
- *             (child.byteorder == '<' and not little_endian)):             # <<<<<<<<<<<<<<
+ *         if ((child.byteorder == c'>' and little_endian) or
+ *             (child.byteorder == c'<' and not little_endian)):             # <<<<<<<<<<<<<<
  *             raise ValueError(u"Non-native byte order not supported")
  *             # One could encode it in the format string and have Cython
  */
-      __pyx_t_6 = (__pyx_v_child->byteorder == '<');
-      if (__pyx_t_6) {
-        __pyx_t_8 = (!__pyx_v_little_endian);
-        __pyx_t_9 = __pyx_t_8;
+      __pyx_t_7 = (__pyx_v_child->byteorder == '<');
+      if (__pyx_t_7) {
+        __pyx_t_9 = (!__pyx_v_little_endian);
+        __pyx_t_10 = __pyx_t_9;
       } else {
-        __pyx_t_9 = __pyx_t_6;
+        __pyx_t_10 = __pyx_t_7;
       }
-      __pyx_t_6 = __pyx_t_9;
+      __pyx_t_7 = __pyx_t_10;
     } else {
-      __pyx_t_6 = __pyx_t_7;
+      __pyx_t_7 = __pyx_t_8;
     }
-    if (__pyx_t_6) {
+    if (__pyx_t_7) {
 
-      /* "numpy.pxd":802
- *         if ((child.byteorder == '>' and little_endian) or
- *             (child.byteorder == '<' and not little_endian)):
+      /* "numpy.pxd":803
+ *         if ((child.byteorder == c'>' and little_endian) or
+ *             (child.byteorder == c'<' and not little_endian)):
  *             raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
  *             # One could encode it in the format string and have Cython
  *             # complain instead, BUT: < and > in format strings also imply
  */
-      __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_22), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_28), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_Raise(__pyx_t_5, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      goto __pyx_L6;
+      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      goto __pyx_L8;
     }
-    __pyx_L6:;
+    __pyx_L8:;
 
-    /* "numpy.pxd":812
+    /* "numpy.pxd":813
  * 
  *         # Output padding bytes
  *         while offset[0] < new_offset:             # <<<<<<<<<<<<<<
@@ -3914,16 +4457,15 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
  *             f += 1
  */
     while (1) {
-      __pyx_t_5 = PyInt_FromLong((__pyx_v_offset[0])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong((__pyx_v_offset[0])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_v_new_offset, Py_LT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      if (!__pyx_t_6) break;
+      if (!__pyx_t_7) break;
 
-      /* "numpy.pxd":813
+      /* "numpy.pxd":814
  *         # Output padding bytes
  *         while offset[0] < new_offset:
  *             f[0] = 120 # "x"; pad byte             # <<<<<<<<<<<<<<
@@ -3932,7 +4474,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
  */
       (__pyx_v_f[0]) = 120;
 
-      /* "numpy.pxd":814
+      /* "numpy.pxd":815
  *         while offset[0] < new_offset:
  *             f[0] = 120 # "x"; pad byte
  *             f += 1             # <<<<<<<<<<<<<<
@@ -3941,430 +4483,413 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
  */
       __pyx_v_f = (__pyx_v_f + 1);
 
-      /* "numpy.pxd":815
+      /* "numpy.pxd":816
  *             f[0] = 120 # "x"; pad byte
  *             f += 1
  *             offset[0] += 1             # <<<<<<<<<<<<<<
  * 
  *         offset[0] += child.itemsize
  */
-      __pyx_t_10 = 0;
-      (__pyx_v_offset[__pyx_t_10]) = ((__pyx_v_offset[__pyx_t_10]) + 1);
+      __pyx_t_11 = 0;
+      (__pyx_v_offset[__pyx_t_11]) = ((__pyx_v_offset[__pyx_t_11]) + 1);
     }
 
-    /* "numpy.pxd":817
+    /* "numpy.pxd":818
  *             offset[0] += 1
  * 
  *         offset[0] += child.itemsize             # <<<<<<<<<<<<<<
  * 
  *         if not PyDataType_HASFIELDS(child):
  */
-    __pyx_t_10 = 0;
-    (__pyx_v_offset[__pyx_t_10]) = ((__pyx_v_offset[__pyx_t_10]) + __pyx_v_child->elsize);
+    __pyx_t_11 = 0;
+    (__pyx_v_offset[__pyx_t_11]) = ((__pyx_v_offset[__pyx_t_11]) + __pyx_v_child->elsize);
 
-    /* "numpy.pxd":819
+    /* "numpy.pxd":820
  *         offset[0] += child.itemsize
  * 
  *         if not PyDataType_HASFIELDS(child):             # <<<<<<<<<<<<<<
  *             t = child.type_num
  *             if end - f < 5:
  */
-    __pyx_t_6 = (!PyDataType_HASFIELDS(__pyx_v_child));
-    if (__pyx_t_6) {
+    __pyx_t_7 = (!PyDataType_HASFIELDS(__pyx_v_child));
+    if (__pyx_t_7) {
 
-      /* "numpy.pxd":820
+      /* "numpy.pxd":821
  * 
  *         if not PyDataType_HASFIELDS(child):
  *             t = child.type_num             # <<<<<<<<<<<<<<
  *             if end - f < 5:
  *                 raise RuntimeError(u"Format string allocated too short.")
  */
-      __pyx_t_3 = PyInt_FromLong(__pyx_v_child->type_num); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(__pyx_v_child->type_num); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_XDECREF(__pyx_v_t);
       __pyx_v_t = __pyx_t_3;
       __pyx_t_3 = 0;
 
-      /* "numpy.pxd":821
+      /* "numpy.pxd":822
  *         if not PyDataType_HASFIELDS(child):
  *             t = child.type_num
  *             if end - f < 5:             # <<<<<<<<<<<<<<
  *                 raise RuntimeError(u"Format string allocated too short.")
  * 
  */
-      __pyx_t_6 = ((__pyx_v_end - __pyx_v_f) < 5);
-      if (__pyx_t_6) {
+      __pyx_t_7 = ((__pyx_v_end - __pyx_v_f) < 5);
+      if (__pyx_t_7) {
 
-        /* "numpy.pxd":822
+        /* "numpy.pxd":823
  *             t = child.type_num
  *             if end - f < 5:
  *                 raise RuntimeError(u"Format string allocated too short.")             # <<<<<<<<<<<<<<
  * 
  *             # Until ticket #99 is fixed, use integers to avoid warnings
  */
-        __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_24), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_30), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_Raise(__pyx_t_3, 0, 0, 0);
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        goto __pyx_L10;
+        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        goto __pyx_L12;
       }
-      __pyx_L10:;
+      __pyx_L12:;
 
-      /* "numpy.pxd":825
+      /* "numpy.pxd":826
  * 
  *             # Until ticket #99 is fixed, use integers to avoid warnings
  *             if   t == NPY_BYTE:        f[0] =  98 #"b"             # <<<<<<<<<<<<<<
  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
  */
-      __pyx_t_3 = PyInt_FromLong(NPY_BYTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(NPY_BYTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 98;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":826
+      /* "numpy.pxd":827
  *             # Until ticket #99 is fixed, use integers to avoid warnings
  *             if   t == NPY_BYTE:        f[0] =  98 #"b"
  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"             # <<<<<<<<<<<<<<
  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
  */
-      __pyx_t_5 = PyInt_FromLong(NPY_UBYTE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(NPY_UBYTE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 66;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":827
+      /* "numpy.pxd":828
  *             if   t == NPY_BYTE:        f[0] =  98 #"b"
  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
  *             elif t == NPY_SHORT:       f[0] = 104 #"h"             # <<<<<<<<<<<<<<
  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
  *             elif t == NPY_INT:         f[0] = 105 #"i"
  */
-      __pyx_t_3 = PyInt_FromLong(NPY_SHORT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(NPY_SHORT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 104;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":828
+      /* "numpy.pxd":829
  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
  *             elif t == NPY_USHORT:      f[0] =  72 #"H"             # <<<<<<<<<<<<<<
  *             elif t == NPY_INT:         f[0] = 105 #"i"
  *             elif t == NPY_UINT:        f[0] =  73 #"I"
  */
-      __pyx_t_5 = PyInt_FromLong(NPY_USHORT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(NPY_USHORT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 72;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":829
+      /* "numpy.pxd":830
  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
  *             elif t == NPY_INT:         f[0] = 105 #"i"             # <<<<<<<<<<<<<<
  *             elif t == NPY_UINT:        f[0] =  73 #"I"
  *             elif t == NPY_LONG:        f[0] = 108 #"l"
  */
-      __pyx_t_3 = PyInt_FromLong(NPY_INT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(NPY_INT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 105;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":830
+      /* "numpy.pxd":831
  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
  *             elif t == NPY_INT:         f[0] = 105 #"i"
  *             elif t == NPY_UINT:        f[0] =  73 #"I"             # <<<<<<<<<<<<<<
  *             elif t == NPY_LONG:        f[0] = 108 #"l"
  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
  */
-      __pyx_t_5 = PyInt_FromLong(NPY_UINT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(NPY_UINT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 73;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":831
+      /* "numpy.pxd":832
  *             elif t == NPY_INT:         f[0] = 105 #"i"
  *             elif t == NPY_UINT:        f[0] =  73 #"I"
  *             elif t == NPY_LONG:        f[0] = 108 #"l"             # <<<<<<<<<<<<<<
  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
  */
-      __pyx_t_3 = PyInt_FromLong(NPY_LONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(NPY_LONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 108;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":832
+      /* "numpy.pxd":833
  *             elif t == NPY_UINT:        f[0] =  73 #"I"
  *             elif t == NPY_LONG:        f[0] = 108 #"l"
  *             elif t == NPY_ULONG:       f[0] = 76  #"L"             # <<<<<<<<<<<<<<
  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
  */
-      __pyx_t_5 = PyInt_FromLong(NPY_ULONG); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(NPY_ULONG); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 76;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":833
+      /* "numpy.pxd":834
  *             elif t == NPY_LONG:        f[0] = 108 #"l"
  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"             # <<<<<<<<<<<<<<
  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
  */
-      __pyx_t_3 = PyInt_FromLong(NPY_LONGLONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(NPY_LONGLONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 113;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":834
+      /* "numpy.pxd":835
  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"             # <<<<<<<<<<<<<<
  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
  */
-      __pyx_t_5 = PyInt_FromLong(NPY_ULONGLONG); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(NPY_ULONGLONG); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 81;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":835
+      /* "numpy.pxd":836
  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"             # <<<<<<<<<<<<<<
  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
  */
-      __pyx_t_3 = PyInt_FromLong(NPY_FLOAT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(NPY_FLOAT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 102;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":836
+      /* "numpy.pxd":837
  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"             # <<<<<<<<<<<<<<
  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
  */
-      __pyx_t_5 = PyInt_FromLong(NPY_DOUBLE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(NPY_DOUBLE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 100;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":837
+      /* "numpy.pxd":838
  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"             # <<<<<<<<<<<<<<
  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
  */
-      __pyx_t_3 = PyInt_FromLong(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 103;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":838
+      /* "numpy.pxd":839
  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf             # <<<<<<<<<<<<<<
  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
  */
-      __pyx_t_5 = PyInt_FromLong(NPY_CFLOAT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(NPY_CFLOAT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 90;
         (__pyx_v_f[1]) = 102;
         __pyx_v_f = (__pyx_v_f + 1);
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":839
+      /* "numpy.pxd":840
  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd             # <<<<<<<<<<<<<<
  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
  */
-      __pyx_t_3 = PyInt_FromLong(NPY_CDOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(NPY_CDOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 90;
         (__pyx_v_f[1]) = 100;
         __pyx_v_f = (__pyx_v_f + 1);
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":840
+      /* "numpy.pxd":841
  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg             # <<<<<<<<<<<<<<
  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
  *             else:
  */
-      __pyx_t_5 = PyInt_FromLong(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 90;
         (__pyx_v_f[1]) = 103;
         __pyx_v_f = (__pyx_v_f + 1);
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
 
-      /* "numpy.pxd":841
+      /* "numpy.pxd":842
  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"             # <<<<<<<<<<<<<<
  *             else:
  *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
  */
-      __pyx_t_3 = PyInt_FromLong(NPY_OBJECT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(NPY_OBJECT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_6) {
+      if (__pyx_t_7) {
         (__pyx_v_f[0]) = 79;
-        goto __pyx_L11;
+        goto __pyx_L13;
       }
       /*else*/ {
 
-        /* "numpy.pxd":843
+        /* "numpy.pxd":844
  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
  *             else:
  *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
  *             f += 1
  *         else:
  */
-        __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_19), __pyx_v_t); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_25), __pyx_v_t); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_5));
         __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
         __pyx_t_5 = 0;
-        __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
         __Pyx_Raise(__pyx_t_5, 0, 0, 0);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_L11:;
+      __pyx_L13:;
 
-      /* "numpy.pxd":844
+      /* "numpy.pxd":845
  *             else:
  *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
  *             f += 1             # <<<<<<<<<<<<<<
@@ -4372,25 +4897,25 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
  *             # Cython ignores struct boundary information ("T{...}"),
  */
       __pyx_v_f = (__pyx_v_f + 1);
-      goto __pyx_L9;
+      goto __pyx_L11;
     }
     /*else*/ {
 
-      /* "numpy.pxd":848
+      /* "numpy.pxd":849
  *             # Cython ignores struct boundary information ("T{...}"),
  *             # so don't output it
  *             f = _util_dtypestring(child, f, end, offset)             # <<<<<<<<<<<<<<
  *     return f
  * 
  */
-      __pyx_t_11 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_v_f = __pyx_t_11;
+      __pyx_t_12 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_12 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_v_f = __pyx_t_12;
     }
-    __pyx_L9:;
+    __pyx_L11:;
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "numpy.pxd":849
+  /* "numpy.pxd":850
  *             # so don't output it
  *             f = _util_dtypestring(child, f, end, offset)
  *     return f             # <<<<<<<<<<<<<<
@@ -4419,7 +4944,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx
   return __pyx_r;
 }
 
-/* "numpy.pxd":964
+/* "numpy.pxd":965
  * 
  * 
  * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
@@ -4433,7 +4958,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("set_array_base", 0);
 
-  /* "numpy.pxd":966
+  /* "numpy.pxd":967
  * cdef inline void set_array_base(ndarray arr, object base):
  *      cdef PyObject* baseptr
  *      if base is None:             # <<<<<<<<<<<<<<
@@ -4443,7 +4968,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
   __pyx_t_1 = (__pyx_v_base == Py_None);
   if (__pyx_t_1) {
 
-    /* "numpy.pxd":967
+    /* "numpy.pxd":968
  *      cdef PyObject* baseptr
  *      if base is None:
  *          baseptr = NULL             # <<<<<<<<<<<<<<
@@ -4455,7 +4980,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
   }
   /*else*/ {
 
-    /* "numpy.pxd":969
+    /* "numpy.pxd":970
  *          baseptr = NULL
  *      else:
  *          Py_INCREF(base) # important to do this before decref below!             # <<<<<<<<<<<<<<
@@ -4464,7 +4989,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
  */
     Py_INCREF(__pyx_v_base);
 
-    /* "numpy.pxd":970
+    /* "numpy.pxd":971
  *      else:
  *          Py_INCREF(base) # important to do this before decref below!
  *          baseptr = <PyObject*>base             # <<<<<<<<<<<<<<
@@ -4475,7 +5000,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
   }
   __pyx_L3:;
 
-  /* "numpy.pxd":971
+  /* "numpy.pxd":972
  *          Py_INCREF(base) # important to do this before decref below!
  *          baseptr = <PyObject*>base
  *      Py_XDECREF(arr.base)             # <<<<<<<<<<<<<<
@@ -4484,7 +5009,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
  */
   Py_XDECREF(__pyx_v_arr->base);
 
-  /* "numpy.pxd":972
+  /* "numpy.pxd":973
  *          baseptr = <PyObject*>base
  *      Py_XDECREF(arr.base)
  *      arr.base = baseptr             # <<<<<<<<<<<<<<
@@ -4496,7 +5021,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
   __Pyx_RefNannyFinishContext();
 }
 
-/* "numpy.pxd":974
+/* "numpy.pxd":975
  *      arr.base = baseptr
  * 
  * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
@@ -4510,7 +5035,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("get_array_base", 0);
 
-  /* "numpy.pxd":975
+  /* "numpy.pxd":976
  * 
  * cdef inline object get_array_base(ndarray arr):
  *     if arr.base is NULL:             # <<<<<<<<<<<<<<
@@ -4520,7 +5045,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
   __pyx_t_1 = (__pyx_v_arr->base == NULL);
   if (__pyx_t_1) {
 
-    /* "numpy.pxd":976
+    /* "numpy.pxd":977
  * cdef inline object get_array_base(ndarray arr):
  *     if arr.base is NULL:
  *         return None             # <<<<<<<<<<<<<<
@@ -4535,7 +5060,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
   }
   /*else*/ {
 
-    /* "numpy.pxd":978
+    /* "numpy.pxd":979
  *         return None
  *     else:
  *         return <object>arr.base             # <<<<<<<<<<<<<<
@@ -4560,9 +5085,13 @@ static PyMethodDef __pyx_methods[] = {
 
 #if PY_MAJOR_VERSION >= 3
 static struct PyModuleDef __pyx_moduledef = {
+  #if PY_VERSION_HEX < 0x03020000
+    { PyObject_HEAD_INIT(NULL) NULL, 0, NULL },
+  #else
     PyModuleDef_HEAD_INIT,
+  #endif
     __Pyx_NAMESTR("mar345_IO"),
-    __Pyx_DOCSTR(__pyx_k_25), /* m_doc */
+    __Pyx_DOCSTR(__pyx_k_31), /* m_doc */
     -1, /* m_size */
     __pyx_methods /* m_methods */,
     NULL, /* m_reload */
@@ -4575,22 +5104,23 @@ static struct PyModuleDef __pyx_moduledef = {
 static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0},
   {&__pyx_kp_s_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 0, 1, 0},
-  {&__pyx_kp_u_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 1, 0, 0},
-  {&__pyx_kp_u_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 1, 0, 0},
-  {&__pyx_kp_u_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 1, 0, 0},
+  {&__pyx_kp_s_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 0, 1, 0},
   {&__pyx_kp_u_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 1, 0, 0},
-  {&__pyx_kp_u_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 1, 0, 0},
+  {&__pyx_kp_u_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 1, 0, 0},
   {&__pyx_kp_u_23, __pyx_k_23, sizeof(__pyx_k_23), 0, 1, 0, 0},
-  {&__pyx_kp_s_26, __pyx_k_26, sizeof(__pyx_k_26), 0, 0, 1, 0},
-  {&__pyx_kp_s_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 0, 1, 0},
-  {&__pyx_kp_s_28, __pyx_k_28, sizeof(__pyx_k_28), 0, 0, 1, 0},
-  {&__pyx_kp_s_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 0, 1, 0},
-  {&__pyx_kp_s_30, __pyx_k_30, sizeof(__pyx_k_30), 0, 0, 1, 0},
+  {&__pyx_kp_u_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 1, 0, 0},
+  {&__pyx_kp_u_26, __pyx_k_26, sizeof(__pyx_k_26), 0, 1, 0, 0},
+  {&__pyx_kp_u_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 1, 0, 0},
+  {&__pyx_kp_s_32, __pyx_k_32, sizeof(__pyx_k_32), 0, 0, 1, 0},
   {&__pyx_kp_s_33, __pyx_k_33, sizeof(__pyx_k_33), 0, 0, 1, 0},
+  {&__pyx_kp_s_34, __pyx_k_34, sizeof(__pyx_k_34), 0, 0, 1, 0},
+  {&__pyx_kp_s_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 0, 1, 0},
+  {&__pyx_kp_s_36, __pyx_k_36, sizeof(__pyx_k_36), 0, 0, 1, 0},
+  {&__pyx_kp_s_39, __pyx_k_39, sizeof(__pyx_k_39), 0, 0, 1, 0},
   {&__pyx_kp_s_4, __pyx_k_4, sizeof(__pyx_k_4), 0, 0, 1, 0},
   {&__pyx_kp_s_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 1, 0},
   {&__pyx_kp_s_6, __pyx_k_6, sizeof(__pyx_k_6), 0, 0, 1, 0},
-  {&__pyx_kp_s_9, __pyx_k_9, sizeof(__pyx_k_9), 0, 0, 1, 0},
+  {&__pyx_kp_s_8, __pyx_k_8, sizeof(__pyx_k_8), 0, 0, 1, 0},
   {&__pyx_n_s__HIGH, __pyx_k__HIGH, sizeof(__pyx_k__HIGH), 0, 0, 1, 1},
   {&__pyx_n_s__RuntimeError, __pyx_k__RuntimeError, sizeof(__pyx_k__RuntimeError), 0, 0, 1, 1},
   {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1},
@@ -4602,40 +5132,52 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_n_s____license__, __pyx_k____license__, sizeof(__pyx_k____license__), 0, 0, 1, 1},
   {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
   {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1},
+  {&__pyx_n_s__addresses, __pyx_k__addresses, sizeof(__pyx_k__addresses), 0, 0, 1, 1},
   {&__pyx_n_s__ascontiguousarray, __pyx_k__ascontiguousarray, sizeof(__pyx_k__ascontiguousarray), 0, 0, 1, 1},
   {&__pyx_n_s__astype, __pyx_k__astype, sizeof(__pyx_k__astype), 0, 0, 1, 1},
   {&__pyx_n_s__cdata, __pyx_k__cdata, sizeof(__pyx_k__cdata), 0, 0, 1, 1},
-  {&__pyx_n_s__cdim1, __pyx_k__cdim1, sizeof(__pyx_k__cdim1), 0, 0, 1, 1},
-  {&__pyx_n_s__cdim2, __pyx_k__cdim2, sizeof(__pyx_k__cdim2), 0, 0, 1, 1},
+  {&__pyx_n_s__cdimx, __pyx_k__cdimx, sizeof(__pyx_k__cdimx), 0, 0, 1, 1},
+  {&__pyx_n_s__cdimy, __pyx_k__cdimy, sizeof(__pyx_k__cdimy), 0, 0, 1, 1},
   {&__pyx_n_s__chigh, __pyx_k__chigh, sizeof(__pyx_k__chigh), 0, 0, 1, 1},
   {&__pyx_n_s__close, __pyx_k__close, sizeof(__pyx_k__close), 0, 0, 1, 1},
   {&__pyx_n_s__compress_pck, __pyx_k__compress_pck, sizeof(__pyx_k__compress_pck), 0, 0, 1, 1},
+  {&__pyx_n_s__cversion, __pyx_k__cversion, sizeof(__pyx_k__cversion), 0, 0, 1, 1},
   {&__pyx_n_s__data, __pyx_k__data, sizeof(__pyx_k__data), 0, 0, 1, 1},
   {&__pyx_n_s__dim0, __pyx_k__dim0, sizeof(__pyx_k__dim0), 0, 0, 1, 1},
   {&__pyx_n_s__dim1, __pyx_k__dim1, sizeof(__pyx_k__dim1), 0, 0, 1, 1},
   {&__pyx_n_s__dim2, __pyx_k__dim2, sizeof(__pyx_k__dim2), 0, 0, 1, 1},
   {&__pyx_n_s__dtype, __pyx_k__dtype, sizeof(__pyx_k__dtype), 0, 0, 1, 1},
+  {&__pyx_n_s__empty, __pyx_k__empty, sizeof(__pyx_k__empty), 0, 0, 1, 1},
   {&__pyx_n_s__end, __pyx_k__end, sizeof(__pyx_k__end), 0, 0, 1, 1},
   {&__pyx_n_s__f, __pyx_k__f, sizeof(__pyx_k__f), 0, 0, 1, 1},
   {&__pyx_n_s__fd, __pyx_k__fd, sizeof(__pyx_k__fd), 0, 0, 1, 1},
   {&__pyx_n_s__find, __pyx_k__find, sizeof(__pyx_k__find), 0, 0, 1, 1},
+  {&__pyx_n_s__flat, __pyx_k__flat, sizeof(__pyx_k__flat), 0, 0, 1, 1},
   {&__pyx_n_s__fname, __pyx_k__fname, sizeof(__pyx_k__fname), 0, 0, 1, 1},
+  {&__pyx_n_s__fromstring, __pyx_k__fromstring, sizeof(__pyx_k__fromstring), 0, 0, 1, 1},
   {&__pyx_n_s__hiLine, __pyx_k__hiLine, sizeof(__pyx_k__hiLine), 0, 0, 1, 1},
   {&__pyx_n_s__i, __pyx_k__i, sizeof(__pyx_k__i), 0, 0, 1, 1},
   {&__pyx_n_s__index, __pyx_k__index, sizeof(__pyx_k__index), 0, 0, 1, 1},
   {&__pyx_n_s__inputArray, __pyx_k__inputArray, sizeof(__pyx_k__inputArray), 0, 0, 1, 1},
   {&__pyx_n_s__instream, __pyx_k__instream, sizeof(__pyx_k__instream), 0, 0, 1, 1},
+  {&__pyx_n_s__int32, __pyx_k__int32, sizeof(__pyx_k__int32), 0, 0, 1, 1},
   {&__pyx_n_s__j, __pyx_k__j, sizeof(__pyx_k__j), 0, 0, 1, 1},
   {&__pyx_n_s__key, __pyx_k__key, sizeof(__pyx_k__key), 0, 0, 1, 1},
   {&__pyx_n_s__key1, __pyx_k__key1, sizeof(__pyx_k__key1), 0, 0, 1, 1},
   {&__pyx_n_s__key2, __pyx_k__key2, sizeof(__pyx_k__key2), 0, 0, 1, 1},
+  {&__pyx_n_s__lenkey, __pyx_k__lenkey, sizeof(__pyx_k__lenkey), 0, 0, 1, 1},
   {&__pyx_n_s__lstrip, __pyx_k__lstrip, sizeof(__pyx_k__lstrip), 0, 0, 1, 1},
   {&__pyx_n_s__mar345_IO, __pyx_k__mar345_IO, sizeof(__pyx_k__mar345_IO), 0, 0, 1, 1},
   {&__pyx_n_s__mkstemp, __pyx_k__mkstemp, sizeof(__pyx_k__mkstemp), 0, 0, 1, 1},
   {&__pyx_n_s__name, __pyx_k__name, sizeof(__pyx_k__name), 0, 0, 1, 1},
+  {&__pyx_n_s__normal_offset, __pyx_k__normal_offset, sizeof(__pyx_k__normal_offset), 0, 0, 1, 1},
+  {&__pyx_n_s__normal_start, __pyx_k__normal_start, sizeof(__pyx_k__normal_start), 0, 0, 1, 1},
   {&__pyx_n_s__numpy, __pyx_k__numpy, sizeof(__pyx_k__numpy), 0, 0, 1, 1},
+  {&__pyx_n_s__odata, __pyx_k__odata, sizeof(__pyx_k__odata), 0, 0, 1, 1},
   {&__pyx_n_s__open, __pyx_k__open, sizeof(__pyx_k__open), 0, 0, 1, 1},
+  {&__pyx_n_s__orecords, __pyx_k__orecords, sizeof(__pyx_k__orecords), 0, 0, 1, 1},
   {&__pyx_n_s__os, __pyx_k__os, sizeof(__pyx_k__os), 0, 0, 1, 1},
+  {&__pyx_n_s__out, __pyx_k__out, sizeof(__pyx_k__out), 0, 0, 1, 1},
   {&__pyx_n_s__output, __pyx_k__output, sizeof(__pyx_k__output), 0, 0, 1, 1},
   {&__pyx_n_s__overflowPix, __pyx_k__overflowPix, sizeof(__pyx_k__overflowPix), 0, 0, 1, 1},
   {&__pyx_n_s__range, __pyx_k__range, sizeof(__pyx_k__range), 0, 0, 1, 1},
@@ -4646,24 +5188,29 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_n_s__remove, __pyx_k__remove, sizeof(__pyx_k__remove), 0, 0, 1, 1},
   {&__pyx_n_s__ret, __pyx_k__ret, sizeof(__pyx_k__ret), 0, 0, 1, 1},
   {&__pyx_n_s__seek, __pyx_k__seek, sizeof(__pyx_k__seek), 0, 0, 1, 1},
+  {&__pyx_n_s__shape, __pyx_k__shape, sizeof(__pyx_k__shape), 0, 0, 1, 1},
   {&__pyx_n_s__size, __pyx_k__size, sizeof(__pyx_k__size), 0, 0, 1, 1},
   {&__pyx_n_s__sizes, __pyx_k__sizes, sizeof(__pyx_k__sizes), 0, 0, 1, 1},
   {&__pyx_n_s__split, __pyx_k__split, sizeof(__pyx_k__split), 0, 0, 1, 1},
   {&__pyx_n_s__start, __pyx_k__start, sizeof(__pyx_k__start), 0, 0, 1, 1},
+  {&__pyx_n_s__stop, __pyx_k__stop, sizeof(__pyx_k__stop), 0, 0, 1, 1},
   {&__pyx_n_s__strip, __pyx_k__strip, sizeof(__pyx_k__strip), 0, 0, 1, 1},
   {&__pyx_n_s__tempfile, __pyx_k__tempfile, sizeof(__pyx_k__tempfile), 0, 0, 1, 1},
   {&__pyx_n_s__uint16, __pyx_k__uint16, sizeof(__pyx_k__uint16), 0, 0, 1, 1},
   {&__pyx_n_s__uint32, __pyx_k__uint32, sizeof(__pyx_k__uint32), 0, 0, 1, 1},
+  {&__pyx_n_s__uint8, __pyx_k__uint8, sizeof(__pyx_k__uint8), 0, 0, 1, 1},
   {&__pyx_n_s__uncompress_pck, __pyx_k__uncompress_pck, sizeof(__pyx_k__uncompress_pck), 0, 0, 1, 1},
+  {&__pyx_n_s__valid, __pyx_k__valid, sizeof(__pyx_k__valid), 0, 0, 1, 1},
+  {&__pyx_n_s__values, __pyx_k__values, sizeof(__pyx_k__values), 0, 0, 1, 1},
+  {&__pyx_n_s__version, __pyx_k__version, sizeof(__pyx_k__version), 0, 0, 1, 1},
   {&__pyx_n_s__word, __pyx_k__word, sizeof(__pyx_k__word), 0, 0, 1, 1},
-  {&__pyx_n_s__zeros, __pyx_k__zeros, sizeof(__pyx_k__zeros), 0, 0, 1, 1},
   {0, 0, 0, 0, 0, 0, 0}
 };
 static int __Pyx_InitCachedBuiltins(void) {
-  __pyx_builtin_open = __Pyx_GetName(__pyx_b, __pyx_n_s__open); if (!__pyx_builtin_open) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_open = __Pyx_GetName(__pyx_b, __pyx_n_s__open); if (!__pyx_builtin_open) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   return 0;
   __pyx_L1_error:;
   return -1;
@@ -4673,296 +5220,200 @@ static int __Pyx_InitCachedConstants(void) {
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
 
-  /* "mar345_IO.pyx":51
+  /* "mar345_IO.pyx":52
  *         pack_wordimage_c(cdata, dim1, dim0, name)
  *     with open(name,"rb") as f:
  *         f.seek(0)             # <<<<<<<<<<<<<<
  *         output = f.read()
  *     os.close(fd)
  */
-  __pyx_k_tuple_2 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_2 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_2);
-  __Pyx_INCREF(__pyx_int_0);
-  PyTuple_SET_ITEM(__pyx_k_tuple_2, 0, __pyx_int_0);
-  __Pyx_GIVEREF(__pyx_int_0);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2));
 
-  /* "mar345_IO.pyx":50
+  /* "mar345_IO.pyx":51
  *     with nogil:
  *         pack_wordimage_c(cdata, dim1, dim0, name)
  *     with open(name,"rb") as f:             # <<<<<<<<<<<<<<
  *         f.seek(0)
  *         output = f.read()
  */
-  __pyx_k_tuple_3 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_3 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_3);
-  __Pyx_INCREF(Py_None);
-  PyTuple_SET_ITEM(__pyx_k_tuple_3, 0, Py_None);
-  __Pyx_GIVEREF(Py_None);
-  __Pyx_INCREF(Py_None);
-  PyTuple_SET_ITEM(__pyx_k_tuple_3, 1, Py_None);
-  __Pyx_GIVEREF(Py_None);
-  __Pyx_INCREF(Py_None);
-  PyTuple_SET_ITEM(__pyx_k_tuple_3, 2, Py_None);
-  __Pyx_GIVEREF(Py_None);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_3));
 
-  /* "mar345_IO.pyx":86
- *         cdim2 = < int > dim2
- *     if overflowPix is None:
+  /* "mar345_IO.pyx":103
+ *             lenkey = len(key2)
+ *     if cversion not in [1,2]:
+ *         raise RuntimeError("Cannot determine the compression scheme for PCK compression (either version 1 or 2)")             # <<<<<<<<<<<<<<
+ *     if (overflowPix is None):
+ *         end = raw.find("END OF HEADER")
+ */
+  __pyx_k_tuple_7 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_6)); if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_7);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_7));
+
+  /* "mar345_IO.pyx":105
+ *         raise RuntimeError("Cannot determine the compression scheme for PCK compression (either version 1 or 2)")
+ *     if (overflowPix is None):
  *         end = raw.find("END OF HEADER")             # <<<<<<<<<<<<<<
  *         start = raw[:end].find("HIGH")
  *         hiLine = raw[start:end]
  */
-  __pyx_k_tuple_7 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_7);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_s_6));
-  PyTuple_SET_ITEM(__pyx_k_tuple_7, 0, ((PyObject *)__pyx_kp_s_6));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_6));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_7));
+  __pyx_k_tuple_9 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_8)); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_9);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_9));
 
-  /* "mar345_IO.pyx":87
- *     if overflowPix is None:
+  /* "mar345_IO.pyx":106
+ *     if (overflowPix is None):
  *         end = raw.find("END OF HEADER")
  *         start = raw[:end].find("HIGH")             # <<<<<<<<<<<<<<
  *         hiLine = raw[start:end]
  *         hiLine = hiLine.split("\n")[0]
  */
-  __pyx_k_tuple_8 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_8);
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__HIGH));
-  PyTuple_SET_ITEM(__pyx_k_tuple_8, 0, ((PyObject *)__pyx_n_s__HIGH));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__HIGH));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_8));
+  __pyx_k_tuple_10 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__HIGH)); if (unlikely(!__pyx_k_tuple_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_10);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_10));
 
-  /* "mar345_IO.pyx":89
+  /* "mar345_IO.pyx":108
  *         start = raw[:end].find("HIGH")
  *         hiLine = raw[start:end]
  *         hiLine = hiLine.split("\n")[0]             # <<<<<<<<<<<<<<
  *         word = hiLine.split()
  *         if len(word) > 1:
  */
-  __pyx_k_tuple_10 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_10);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_s_9));
-  PyTuple_SET_ITEM(__pyx_k_tuple_10, 0, ((PyObject *)__pyx_kp_s_9));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_9));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_10));
-
-  /* "mar345_IO.pyx":100
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)
- *     if not end:
- *         end = raw.find("END OF HEADER")             # <<<<<<<<<<<<<<
- *     if end !=-1:
- *         raw = raw[end+14:].lstrip()
- */
-  __pyx_k_tuple_12 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_12 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_11)); if (unlikely(!__pyx_k_tuple_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_12);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_s_6));
-  PyTuple_SET_ITEM(__pyx_k_tuple_12, 0, ((PyObject *)__pyx_kp_s_6));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_6));
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_12));
 
-  /* "numpy.pxd":214
+  /* "mar345_IO.pyx":135
+ *     stop = normal_offset-lenkey-14
+ *     odata = numpy.fromstring(raw[stop-64*orecords: stop],dtype=numpy.int32)
+ *     odata.shape = -1,2             # <<<<<<<<<<<<<<
+ *     addresses = odata[:,0]
+ *     values = odata[:,1]
+ */
+  __pyx_k_tuple_14 = PyTuple_Pack(2, __pyx_int_neg_1, __pyx_int_2); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_14);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_14));
+
+  /* "mar345_IO.pyx":136
+ *     odata = numpy.fromstring(raw[stop-64*orecords: stop],dtype=numpy.int32)
+ *     odata.shape = -1,2
+ *     addresses = odata[:,0]             # <<<<<<<<<<<<<<
+ *     values = odata[:,1]
+ *     valid = (addresses>0)
+ */
+  __pyx_k_slice_15 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_15);
+  __Pyx_GIVEREF(__pyx_k_slice_15);
+  __pyx_k_tuple_16 = PyTuple_Pack(2, __pyx_k_slice_15, __pyx_int_0); if (unlikely(!__pyx_k_tuple_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_16);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_16));
+
+  /* "mar345_IO.pyx":137
+ *     odata.shape = -1,2
+ *     addresses = odata[:,0]
+ *     values = odata[:,1]             # <<<<<<<<<<<<<<
+ *     valid = (addresses>0)
+ *     addresses = addresses[valid]-1 #addresses start at 1 !!
+ */
+  __pyx_k_slice_17 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_17);
+  __Pyx_GIVEREF(__pyx_k_slice_17);
+  __pyx_k_tuple_18 = PyTuple_Pack(2, __pyx_k_slice_17, __pyx_int_1); if (unlikely(!__pyx_k_tuple_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_18);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_18));
+
+  /* "numpy.pxd":215
  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)):
  *                 raise ValueError(u"ndarray is not C contiguous")             # <<<<<<<<<<<<<<
  * 
  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
  */
-  __pyx_k_tuple_14 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_14);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_u_13));
-  PyTuple_SET_ITEM(__pyx_k_tuple_14, 0, ((PyObject *)__pyx_kp_u_13));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_13));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_14));
+  __pyx_k_tuple_20 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_19)); if (unlikely(!__pyx_k_tuple_20)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_20);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_20));
 
-  /* "numpy.pxd":218
+  /* "numpy.pxd":219
  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)):
  *                 raise ValueError(u"ndarray is not Fortran contiguous")             # <<<<<<<<<<<<<<
  * 
  *             info.buf = PyArray_DATA(self)
  */
-  __pyx_k_tuple_16 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_16);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_u_15));
-  PyTuple_SET_ITEM(__pyx_k_tuple_16, 0, ((PyObject *)__pyx_kp_u_15));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_15));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_16));
+  __pyx_k_tuple_22 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_21)); if (unlikely(!__pyx_k_tuple_22)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_22);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_22));
 
-  /* "numpy.pxd":256
- *                 if ((descr.byteorder == '>' and little_endian) or
- *                     (descr.byteorder == '<' and not little_endian)):
+  /* "numpy.pxd":257
+ *                 if ((descr.byteorder == c'>' and little_endian) or
+ *                     (descr.byteorder == c'<' and not little_endian)):
  *                     raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
  *                 if   t == NPY_BYTE:        f = "b"
  *                 elif t == NPY_UBYTE:       f = "B"
  */
-  __pyx_k_tuple_18 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_18)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_18);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_u_17));
-  PyTuple_SET_ITEM(__pyx_k_tuple_18, 0, ((PyObject *)__pyx_kp_u_17));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_17));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_18));
+  __pyx_k_tuple_24 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_23)); if (unlikely(!__pyx_k_tuple_24)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_24);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_24));
 
-  /* "numpy.pxd":798
+  /* "numpy.pxd":799
  * 
  *         if (end - f) - (new_offset - offset[0]) < 15:
  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
  * 
- *         if ((child.byteorder == '>' and little_endian) or
+ *         if ((child.byteorder == c'>' and little_endian) or
  */
-  __pyx_k_tuple_21 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_21);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_u_20));
-  PyTuple_SET_ITEM(__pyx_k_tuple_21, 0, ((PyObject *)__pyx_kp_u_20));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_20));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_21));
+  __pyx_k_tuple_27 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_26)); if (unlikely(!__pyx_k_tuple_27)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_27);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_27));
 
-  /* "numpy.pxd":802
- *         if ((child.byteorder == '>' and little_endian) or
- *             (child.byteorder == '<' and not little_endian)):
+  /* "numpy.pxd":803
+ *         if ((child.byteorder == c'>' and little_endian) or
+ *             (child.byteorder == c'<' and not little_endian)):
  *             raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
  *             # One could encode it in the format string and have Cython
  *             # complain instead, BUT: < and > in format strings also imply
  */
-  __pyx_k_tuple_22 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_22)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_22);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_u_17));
-  PyTuple_SET_ITEM(__pyx_k_tuple_22, 0, ((PyObject *)__pyx_kp_u_17));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_17));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_22));
+  __pyx_k_tuple_28 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_23)); if (unlikely(!__pyx_k_tuple_28)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_28);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_28));
 
-  /* "numpy.pxd":822
+  /* "numpy.pxd":823
  *             t = child.type_num
  *             if end - f < 5:
  *                 raise RuntimeError(u"Format string allocated too short.")             # <<<<<<<<<<<<<<
  * 
  *             # Until ticket #99 is fixed, use integers to avoid warnings
  */
-  __pyx_k_tuple_24 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_24)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_24);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_u_23));
-  PyTuple_SET_ITEM(__pyx_k_tuple_24, 0, ((PyObject *)__pyx_kp_u_23));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_23));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_24));
+  __pyx_k_tuple_30 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_29)); if (unlikely(!__pyx_k_tuple_30)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_30);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_30));
 
-  /* "mar345_IO.pyx":32
+  /* "mar345_IO.pyx":33
  * 
  * @cython.boundscheck(False)
  * def compress_pck(numpy.ndarray inputArray not None):             # <<<<<<<<<<<<<<
  *     """
  *     @param inputArray: numpy array as input
  */
-  __pyx_k_tuple_31 = PyTuple_New(14); if (unlikely(!__pyx_k_tuple_31)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_31);
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__inputArray));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 0, ((PyObject *)__pyx_n_s__inputArray));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__inputArray));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__size));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 1, ((PyObject *)__pyx_n_s__size));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__size));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__dim0));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 2, ((PyObject *)__pyx_n_s__dim0));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dim0));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__dim1));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 3, ((PyObject *)__pyx_n_s__dim1));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dim1));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__i));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 4, ((PyObject *)__pyx_n_s__i));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__j));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 5, ((PyObject *)__pyx_n_s__j));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__j));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__fd));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 6, ((PyObject *)__pyx_n_s__fd));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fd));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__ret));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 7, ((PyObject *)__pyx_n_s__ret));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ret));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__name));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 8, ((PyObject *)__pyx_n_s__name));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__name));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__data));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 9, ((PyObject *)__pyx_n_s__data));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__data));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__cdata));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 10, ((PyObject *)__pyx_n_s__cdata));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cdata));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__fname));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 11, ((PyObject *)__pyx_n_s__fname));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fname));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__f));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 12, ((PyObject *)__pyx_n_s__f));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__f));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__output));
-  PyTuple_SET_ITEM(__pyx_k_tuple_31, 13, ((PyObject *)__pyx_n_s__output));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__output));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_31));
-  __pyx_k_codeobj_32 = (PyObject*)__Pyx_PyCode_New(1, 0, 14, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_33, __pyx_n_s__compress_pck, 32, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_32)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-
-  /* "mar345_IO.pyx":58
+  __pyx_k_tuple_37 = PyTuple_Pack(14, ((PyObject *)__pyx_n_s__inputArray), ((PyObject *)__pyx_n_s__size), ((PyObject *)__pyx_n_s__dim0), ((PyObject *)__pyx_n_s__dim1), ((PyObject *)__pyx_n_s__i), ((PyObject *)__pyx_n_s__j), ((PyObject *)__pyx_n_s__fd), ((PyObject *)__pyx_n_s__ret), ((PyObject *)__pyx_n_s__name), ((PyObject *)__pyx_n_s__data), ((PyObject *)__pyx_n_s__cdata), ((PyObject *)__pyx_n_s__fname), ((PyObject *)__pyx_n_s__f), ((PyObject *)__pyx_n_s__output)); if (unlikely(!__pyx_k [...]
+  __Pyx_GOTREF(__pyx_k_tuple_37);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_37));
+  __pyx_k_codeobj_38 = (PyObject*)__Pyx_PyCode_New(1, 0, 14, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_39, __pyx_n_s__compress_pck, 33, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_38)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "mar345_IO.pyx":59
  * 
  * @cython.boundscheck(False)
- * def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None):             # <<<<<<<<<<<<<<
+ * def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None, version=None, normal_start=None):             # <<<<<<<<<<<<<<
  *     """
  *     Unpack a mar345 compressed image
  */
-  __pyx_k_tuple_34 = PyTuple_New(17); if (unlikely(!__pyx_k_tuple_34)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_34);
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__raw));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 0, ((PyObject *)__pyx_n_s__raw));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__raw));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__dim1));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 1, ((PyObject *)__pyx_n_s__dim1));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dim1));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__dim2));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 2, ((PyObject *)__pyx_n_s__dim2));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dim2));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__overflowPix));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 3, ((PyObject *)__pyx_n_s__overflowPix));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__overflowPix));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__cdim1));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 4, ((PyObject *)__pyx_n_s__cdim1));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cdim1));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__cdim2));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 5, ((PyObject *)__pyx_n_s__cdim2));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cdim2));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__chigh));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 6, ((PyObject *)__pyx_n_s__chigh));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__chigh));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__end));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 7, ((PyObject *)__pyx_n_s__end));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__end));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__key1));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 8, ((PyObject *)__pyx_n_s__key1));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__key1));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__key2));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 9, ((PyObject *)__pyx_n_s__key2));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__key2));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__start));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 10, ((PyObject *)__pyx_n_s__start));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__start));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__key));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 11, ((PyObject *)__pyx_n_s__key));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__key));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__sizes));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 12, ((PyObject *)__pyx_n_s__sizes));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__sizes));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__hiLine));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 13, ((PyObject *)__pyx_n_s__hiLine));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__hiLine));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__word));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 14, ((PyObject *)__pyx_n_s__word));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__word));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__data));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 15, ((PyObject *)__pyx_n_s__data));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__data));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s__instream));
-  PyTuple_SET_ITEM(__pyx_k_tuple_34, 16, ((PyObject *)__pyx_n_s__instream));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__instream));
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_34));
-  __pyx_k_codeobj_35 = (PyObject*)__Pyx_PyCode_New(4, 0, 17, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_34, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_33, __pyx_n_s__uncompress_pck, 58, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_35)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_40 = PyTuple_Pack(30, ((PyObject *)__pyx_n_s__raw), ((PyObject *)__pyx_n_s__dim1), ((PyObject *)__pyx_n_s__dim2), ((PyObject *)__pyx_n_s__overflowPix), ((PyObject *)__pyx_n_s__version), ((PyObject *)__pyx_n_s__normal_start), ((PyObject *)__pyx_n_s__cdimx), ((PyObject *)__pyx_n_s__cdimy), ((PyObject *)__pyx_n_s__chigh), ((PyObject *)__pyx_n_s__cversion), ((PyObject *)__pyx_n_s__orecords), ((PyObject *)__pyx_n_s__normal_offset), ((PyObject *)__pyx_n_s__data), ((PyObject *)_ [...]
+  __Pyx_GOTREF(__pyx_k_tuple_40);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_40));
+  __pyx_k_codeobj_41 = (PyObject*)__Pyx_PyCode_New(6, 0, 30, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_39, __pyx_n_s__uncompress_pck, 59, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_41)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_RefNannyFinishContext();
   return 0;
   __pyx_L1_error:;
@@ -4973,6 +5424,8 @@ static int __Pyx_InitCachedConstants(void) {
 static int __Pyx_InitGlobals(void) {
   if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
   __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
+  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
   __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
   __pyx_int_13 = PyInt_FromLong(13); if (unlikely(!__pyx_int_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
   __pyx_int_14 = PyInt_FromLong(14); if (unlikely(!__pyx_int_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
@@ -5023,16 +5476,23 @@ PyMODINIT_FUNC PyInit_mar345_IO(void)
   #endif
   /*--- Module creation code ---*/
   #if PY_MAJOR_VERSION < 3
-  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("mar345_IO"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_25), 0, PYTHON_API_VERSION);
+  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("mar345_IO"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_31), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
   #else
   __pyx_m = PyModule_Create(&__pyx_moduledef);
   #endif
-  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
-  #if PY_MAJOR_VERSION < 3
-  Py_INCREF(__pyx_m);
+  if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  #if PY_MAJOR_VERSION >= 3
+  {
+    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!PyDict_GetItemString(modules, "mar345_IO")) {
+      if (unlikely(PyDict_SetItemString(modules, "mar345_IO", __pyx_m) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    }
+  }
+  #endif
+  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  #if CYTHON_COMPILING_IN_PYPY
+  Py_INCREF(__pyx_b);
   #endif
-  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME));
-  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
   if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
   /*--- Initialize various global constants etc. ---*/
   if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -5048,11 +5508,18 @@ PyMODINIT_FUNC PyInit_mar345_IO(void)
   /*--- Function export code ---*/
   /*--- Type init code ---*/
   /*--- Type import code ---*/
-  __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", 
+  #if CYTHON_COMPILING_IN_PYPY
+  sizeof(PyTypeObject),
+  #else
+  sizeof(PyHeapTypeObject),
+  #endif
+  0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   /*--- Variable import code ---*/
   /*--- Function import code ---*/
   /*--- Execution code ---*/
@@ -5066,12 +5533,12 @@ PyMODINIT_FUNC PyInit_mar345_IO(void)
  */
   __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_s_26));
-  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_26));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_26));
-  __Pyx_INCREF(((PyObject *)__pyx_kp_s_27));
-  PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_kp_s_27));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_27));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_s_32));
+  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_32));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_32));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_s_33));
+  PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_kp_s_33));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_33));
   if (PyObject_SetAttr(__pyx_m, __pyx_n_s____authors__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
@@ -5082,7 +5549,7 @@ PyMODINIT_FUNC PyInit_mar345_IO(void)
  * __license__ = "LGPLv3+"
  * __copyright__ = "2012, European Synchrotron Radiation Facility, Grenoble, France"
  */
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____contact__, ((PyObject *)__pyx_kp_s_28)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____contact__, ((PyObject *)__pyx_kp_s_34)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "mar345_IO.pyx":15
  * __authors__ = ["Jerome Kieffer", "Gael Goret"]
@@ -5091,7 +5558,7 @@ PyMODINIT_FUNC PyInit_mar345_IO(void)
  * __copyright__ = "2012, European Synchrotron Radiation Facility, Grenoble, France"
  * 
  */
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____license__, ((PyObject *)__pyx_kp_s_29)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____license__, ((PyObject *)__pyx_kp_s_35)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "mar345_IO.pyx":16
  * __contact__ = "jerome.kieffer at esrf.eu"
@@ -5100,14 +5567,14 @@ PyMODINIT_FUNC PyInit_mar345_IO(void)
  * 
  * import cython
  */
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____copyright__, ((PyObject *)__pyx_kp_s_30)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____copyright__, ((PyObject *)__pyx_kp_s_36)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "mar345_IO.pyx":20
  * import cython
  * cimport numpy
  * import numpy             # <<<<<<<<<<<<<<
  * import os,tempfile
- * 
+ * from libc.string cimport memcpy
  */
   __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__numpy), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
@@ -5118,8 +5585,8 @@ PyMODINIT_FUNC PyInit_mar345_IO(void)
  * cimport numpy
  * import numpy
  * import os,tempfile             # <<<<<<<<<<<<<<
- * 
- * #cdef extern from "pack_c.h":
+ * from libc.string cimport memcpy
+ * #from libc.stdlib cimport free, malloc
  */
   __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__os), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
@@ -5130,28 +5597,28 @@ PyMODINIT_FUNC PyInit_mar345_IO(void)
   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__tempfile, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "mar345_IO.pyx":32
+  /* "mar345_IO.pyx":33
  * 
  * @cython.boundscheck(False)
  * def compress_pck(numpy.ndarray inputArray not None):             # <<<<<<<<<<<<<<
  *     """
  *     @param inputArray: numpy array as input
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_9mar345_IO_1compress_pck, NULL, __pyx_n_s__mar345_IO); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_9mar345_IO_1compress_pck, NULL, __pyx_n_s__mar345_IO); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__compress_pck, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__compress_pck, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "mar345_IO.pyx":58
+  /* "mar345_IO.pyx":59
  * 
  * @cython.boundscheck(False)
- * def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None):             # <<<<<<<<<<<<<<
+ * def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None, version=None, normal_start=None):             # <<<<<<<<<<<<<<
  *     """
  *     Unpack a mar345 compressed image
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_9mar345_IO_3uncompress_pck, NULL, __pyx_n_s__mar345_IO); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_9mar345_IO_3uncompress_pck, NULL, __pyx_n_s__mar345_IO); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__uncompress_pck, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__uncompress_pck, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
   /* "mar345_IO.pyx":1
@@ -5164,7 +5631,7 @@ PyMODINIT_FUNC PyInit_mar345_IO(void)
   if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
-  /* "numpy.pxd":974
+  /* "numpy.pxd":975
  *      arr.base = baseptr
  * 
  * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
@@ -5312,7 +5779,8 @@ static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
 }
 static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
   switch (ch) {
-    case 'b': return "'char'";
+    case 'c': return "'char'";
+    case 'b': return "'signed char'";
     case 'B': return "'unsigned char'";
     case 'h': return "'short'";
     case 'H': return "'unsigned short'";
@@ -5380,7 +5848,7 @@ typedef struct { char c; void *x; } __Pyx_st_void_p;
 #ifdef HAVE_LONG_LONG
 typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
 #endif
-static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, int is_complex) {
+static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) {
   switch (ch) {
     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
     case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short);
@@ -5412,7 +5880,7 @@ typedef struct { void *x; char c; } __Pyx_pad_void_p;
 #ifdef HAVE_LONG_LONG
 typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
 #endif
-static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, int is_complex) {
+static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) {
   switch (ch) {
     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
     case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short);
@@ -5432,7 +5900,9 @@ static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, int is_complex) {
 }
 static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
   switch (ch) {
-    case 'c': case 'b': case 'h': case 'i':
+    case 'c':
+        return 'H';
+    case 'b': case 'h': case 'i':
     case 'l': case 'q': case 's': case 'p':
         return 'I';
     case 'B': case 'H': case 'I': case 'L': case 'Q':
@@ -5527,13 +5997,16 @@ static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
         ctx->head->parent_offset = parent_offset;
         continue;
       }
-      __Pyx_BufFmt_RaiseExpected(ctx);
-      return -1;
+      if ((type->typegroup == 'H' || group == 'H') && type->size == size) {
+      } else {
+          __Pyx_BufFmt_RaiseExpected(ctx);
+          return -1;
+      }
     }
     offset = ctx->head->parent_offset + field->offset;
     if (ctx->fmt_offset != offset) {
       PyErr_Format(PyExc_ValueError,
-                   "Buffer dtype mismatch; next field is at offset %"PY_FORMAT_SIZE_T"d but %"PY_FORMAT_SIZE_T"d expected",
+                   "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected",
                    (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
       return -1;
     }
@@ -5773,7 +6246,7 @@ static CYTHON_INLINE int __Pyx_GetBufferAndValidate(
   }
   if ((unsigned)buf->itemsize != dtype->size) {
     PyErr_Format(PyExc_ValueError,
-      "Item size of buffer (%"PY_FORMAT_SIZE_T"d byte%s) does not match size of '%s' (%"PY_FORMAT_SIZE_T"d byte%s)",
+      "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)",
       buf->itemsize, (buf->itemsize > 1) ? "s" : "",
       dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : "");
     goto fail;
@@ -5790,15 +6263,15 @@ static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) {
   __Pyx_ReleaseBuffer(info);
 }
 
-static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
+static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
     PyErr_Format(PyExc_ValueError,
-                 "need more than %"PY_FORMAT_SIZE_T"d value%s to unpack",
-                 index, (index == 1) ? "" : "s");
+                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
 }
 
-static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
+static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
     PyErr_Format(PyExc_ValueError,
-                 "too many values to unpack (expected %"PY_FORMAT_SIZE_T"d)", expected);
+                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%s to unpack",
+                 index, (index == 1) ? "" : "s");
 }
 
 static CYTHON_INLINE int __Pyx_IterFinish(void) {
@@ -5848,6 +6321,7 @@ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
 
 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
     PyObject *local_type, *local_value, *local_tb;
+#if CYTHON_COMPILING_IN_CPYTHON
     PyObject *tmp_type, *tmp_value, *tmp_tb;
     PyThreadState *tstate = PyThreadState_GET();
     local_type = tstate->curexc_type;
@@ -5856,19 +6330,27 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
     tstate->curexc_type = 0;
     tstate->curexc_value = 0;
     tstate->curexc_traceback = 0;
+#else
+    PyErr_Fetch(&local_type, &local_value, &local_tb);
+#endif
     PyErr_NormalizeException(&local_type, &local_value, &local_tb);
+#if CYTHON_COMPILING_IN_CPYTHON
     if (unlikely(tstate->curexc_type))
+#else
+    if (unlikely(PyErr_Occurred()))
+#endif
         goto bad;
     #if PY_MAJOR_VERSION >= 3
     if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
         goto bad;
     #endif
-    *type = local_type;
-    *value = local_value;
-    *tb = local_tb;
     Py_INCREF(local_type);
     Py_INCREF(local_value);
     Py_INCREF(local_tb);
+    *type = local_type;
+    *value = local_value;
+    *tb = local_tb;
+#if CYTHON_COMPILING_IN_CPYTHON
     tmp_type = tstate->exc_type;
     tmp_value = tstate->exc_value;
     tmp_tb = tstate->exc_traceback;
@@ -5876,10 +6358,13 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
     tstate->exc_value = local_value;
     tstate->exc_traceback = local_tb;
     /* Make sure tstate is in a consistent state when we XDECREF
-       these objects (XDECREF may run arbitrary code). */
+       these objects (DECREF may run arbitrary code). */
     Py_XDECREF(tmp_type);
     Py_XDECREF(tmp_value);
     Py_XDECREF(tmp_tb);
+#else
+    PyErr_SetExcInfo(local_type, local_value, local_tb);
+#endif
     return 0;
 bad:
     *type = 0;
@@ -5891,10 +6376,6 @@ bad:
     return -1;
 }
 
-static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
-    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
-}
-
 static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
 #if CYTHON_COMPILING_IN_CPYTHON
     PyObject *tmp_type, *tmp_value, *tmp_tb;
@@ -5926,6 +6407,10 @@ static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyOb
 #endif
 }
 
+static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
+    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
+}
+
 static void __Pyx_RaiseDoubleKeywordsError(
     const char* func_name,
     PyObject* kw_name)
@@ -5935,7 +6420,7 @@ static void __Pyx_RaiseDoubleKeywordsError(
         "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
         #else
         "%s() got multiple values for keyword argument '%s'", func_name,
-        PyString_AS_STRING(kw_name));
+        PyString_AsString(kw_name));
         #endif
 }
 
@@ -5956,48 +6441,72 @@ static int __Pyx_ParseOptionalKeywords(
         while (*name && (**name != key)) name++;
         if (*name) {
             values[name-argnames] = value;
-        } else {
-            #if PY_MAJOR_VERSION < 3
-            if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) {
-            #else
-            if (unlikely(!PyUnicode_Check(key))) {
-            #endif
-                goto invalid_keyword_type;
-            } else {
-                for (name = first_kw_arg; *name; name++) {
-                    #if PY_MAJOR_VERSION >= 3
-                    if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
-                        PyUnicode_Compare(**name, key) == 0) break;
-                    #else
-                    if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
-                        _PyString_Eq(**name, key)) break;
-                    #endif
-                }
-                if (*name) {
+            continue;
+        }
+        name = first_kw_arg;
+        #if PY_MAJOR_VERSION < 3
+        if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) {
+            while (*name) {
+                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
+                        && _PyString_Eq(**name, key)) {
                     values[name-argnames] = value;
-                } else {
-                    for (name=argnames; name != first_kw_arg; name++) {
-                        if (**name == key) goto arg_passed_twice;
-                        #if PY_MAJOR_VERSION >= 3
-                        if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
-                            PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice;
-                        #else
-                        if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
-                            _PyString_Eq(**name, key)) goto arg_passed_twice;
-                        #endif
-                    }
-                    if (kwds2) {
-                        if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
-                    } else {
-                        goto invalid_keyword;
+                    break;
+                }
+                name++;
+            }
+            if (*name) continue;
+            else {
+                PyObject*** argname = argnames;
+                while (argname != first_kw_arg) {
+                    if ((**argname == key) || (
+                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
+                             && _PyString_Eq(**argname, key))) {
+                        goto arg_passed_twice;
                     }
+                    argname++;
+                }
+            }
+        } else
+        #endif
+        if (likely(PyUnicode_Check(key))) {
+            while (*name) {
+                int cmp = (**name == key) ? 0 :
+                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
+                    (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
+                #endif
+                    PyUnicode_Compare(**name, key);
+                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
+                if (cmp == 0) {
+                    values[name-argnames] = value;
+                    break;
+                }
+                name++;
+            }
+            if (*name) continue;
+            else {
+                PyObject*** argname = argnames;
+                while (argname != first_kw_arg) {
+                    int cmp = (**argname == key) ? 0 :
+                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
+                        (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
+                    #endif
+                        PyUnicode_Compare(**argname, key);
+                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
+                    if (cmp == 0) goto arg_passed_twice;
+                    argname++;
                 }
             }
+        } else
+            goto invalid_keyword_type;
+        if (kwds2) {
+            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
+        } else {
+            goto invalid_keyword;
         }
     }
     return 0;
 arg_passed_twice:
-    __Pyx_RaiseDoubleKeywordsError(function_name, **name);
+    __Pyx_RaiseDoubleKeywordsError(function_name, key);
     goto bad;
 invalid_keyword_type:
     PyErr_Format(PyExc_TypeError,
@@ -6036,44 +6545,47 @@ static void __Pyx_RaiseArgtupleInvalid(
         more_or_less = "exactly";
     }
     PyErr_Format(PyExc_TypeError,
-                 "%s() takes %s %"PY_FORMAT_SIZE_T"d positional argument%s (%"PY_FORMAT_SIZE_T"d given)",
+                 "%s() takes %s %" CYTHON_FORMAT_SSIZE_T "d positional argument%s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                  func_name, more_or_less, num_expected,
                  (num_expected == 1) ? "" : "s", num_found);
 }
 
-
-
 #if PY_MAJOR_VERSION < 3
 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
                         CYTHON_UNUSED PyObject *cause) {
     Py_XINCREF(type);
-    Py_XINCREF(value);
-    Py_XINCREF(tb);
-    if (tb == Py_None) {
-        Py_DECREF(tb);
-        tb = 0;
-    }
-    else if (tb != NULL && !PyTraceBack_Check(tb)) {
-        PyErr_SetString(PyExc_TypeError,
-            "raise: arg 3 must be a traceback or None");
-        goto raise_error;
-    }
-    if (value == NULL) {
-        value = Py_None;
+    if (!value || value == Py_None)
+        value = NULL;
+    else
         Py_INCREF(value);
+    if (!tb || tb == Py_None)
+        tb = NULL;
+    else {
+        Py_INCREF(tb);
+        if (!PyTraceBack_Check(tb)) {
+            PyErr_SetString(PyExc_TypeError,
+                "raise: arg 3 must be a traceback or None");
+            goto raise_error;
+        }
     }
     #if PY_VERSION_HEX < 0x02050000
-    if (!PyClass_Check(type))
+    if (PyClass_Check(type)) {
     #else
-    if (!PyType_Check(type))
+    if (PyType_Check(type)) {
     #endif
-    {
-        if (value != Py_None) {
+#if CYTHON_COMPILING_IN_PYPY
+        if (!value) {
+            Py_INCREF(Py_None);
+            value = Py_None;
+        }
+#endif
+        PyErr_NormalizeException(&type, &value, &tb);
+    } else {
+        if (value) {
             PyErr_SetString(PyExc_TypeError,
                 "instance exception may not have a separate value");
             goto raise_error;
         }
-        Py_DECREF(value);
         value = type;
         #if PY_VERSION_HEX < 0x02050000
             if (PyInstance_Check(type)) {
@@ -6106,6 +6618,7 @@ raise_error:
 }
 #else /* Python 3+ */
 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
+    PyObject* owned_instance = NULL;
     if (tb == Py_None) {
         tb = 0;
     } else if (tb && !PyTraceBack_Check(tb)) {
@@ -6123,12 +6636,36 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject
         }
         value = type;
         type = (PyObject*) Py_TYPE(value);
-    } else if (!PyExceptionClass_Check(type)) {
+    } else if (PyExceptionClass_Check(type)) {
+        PyObject *args;
+        if (!value)
+            args = PyTuple_New(0);
+        else if (PyTuple_Check(value)) {
+            Py_INCREF(value);
+            args = value;
+        }
+        else
+            args = PyTuple_Pack(1, value);
+        if (!args)
+            goto bad;
+        owned_instance = PyEval_CallObject(type, args);
+        Py_DECREF(args);
+        if (!owned_instance)
+            goto bad;
+        value = owned_instance;
+        if (!PyExceptionInstance_Check(value)) {
+            PyErr_Format(PyExc_TypeError,
+                         "calling %R should have returned an instance of "
+                         "BaseException, not %R",
+                         type, Py_TYPE(value));
+            goto bad;
+        }
+    } else {
         PyErr_SetString(PyExc_TypeError,
             "raise: exception class must be a subclass of BaseException");
         goto bad;
     }
-    if (cause) {
+    if (cause && cause != Py_None) {
         PyObject *fixed_cause;
         if (PyExceptionClass_Check(cause)) {
             fixed_cause = PyObject_CallObject(cause, NULL);
@@ -6145,9 +6682,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject
                             "BaseException");
             goto bad;
         }
-        if (!value) {
-            value = PyObject_CallObject(type, NULL);
-        }
         PyException_SetCause(value, fixed_cause);
     }
     PyErr_SetObject(type, value);
@@ -6161,25 +6695,22 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject
         }
     }
 bad:
+    Py_XDECREF(owned_instance);
     return;
 }
 #endif
 
-static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
-    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
+static void __Pyx_RaiseBufferFallbackError(void) {
+  PyErr_Format(PyExc_ValueError,
+     "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!");
 }
 
-static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
-    if (t == Py_None) {
-      __Pyx_RaiseNoneNotIterableError();
-    } else if (PyTuple_GET_SIZE(t) < index) {
-      __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
-    } else {
-      __Pyx_RaiseTooManyValuesError(index);
-    }
+static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
+    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
 }
 
 static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
+#if CYTHON_COMPILING_IN_CPYTHON
     PyThreadState *tstate = PyThreadState_GET();
     *type = tstate->exc_type;
     *value = tstate->exc_value;
@@ -6187,8 +6718,12 @@ static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value,
     Py_XINCREF(*type);
     Py_XINCREF(*value);
     Py_XINCREF(*tb);
+#else
+    PyErr_GetExcInfo(type, value, tb);
+#endif
 }
 static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
+#if CYTHON_COMPILING_IN_CPYTHON
     PyObject *tmp_type, *tmp_value, *tmp_tb;
     PyThreadState *tstate = PyThreadState_GET();
     tmp_type = tstate->exc_type;
@@ -6200,105 +6735,96 @@ static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb)
     Py_XDECREF(tmp_type);
     Py_XDECREF(tmp_value);
     Py_XDECREF(tmp_tb);
+#else
+    PyErr_SetExcInfo(type, value, tb);
+#endif
 }
 
 #if PY_MAJOR_VERSION < 3
 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) {
-    PyObject *getbuffer_cobj = NULL;
-
+    CYTHON_UNUSED PyObject *getbuffer_cobj;
   #if PY_VERSION_HEX >= 0x02060000
     if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags);
   #endif
-
         if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags);
-
   #if PY_VERSION_HEX < 0x02060000
     if (obj->ob_type->tp_dict &&
         (getbuffer_cobj = PyMapping_GetItemString(obj->ob_type->tp_dict,
                                              "__pyx_getbuffer"))) {
         getbufferproc func;
-
       #if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION == 0)
         func = (getbufferproc) PyCapsule_GetPointer(getbuffer_cobj, "getbuffer(obj, view, flags)");
       #else
         func = (getbufferproc) PyCObject_AsVoidPtr(getbuffer_cobj);
       #endif
+        Py_DECREF(getbuffer_cobj);
         if (!func)
             goto fail;
-
         return func(obj, view, flags);
+    } else {
+        PyErr_Clear();
     }
   #endif
-
     PyErr_Format(PyExc_TypeError, "'%100s' does not have the buffer interface", Py_TYPE(obj)->tp_name);
-
 #if PY_VERSION_HEX < 0x02060000
 fail:
 #endif
-    Py_XDECREF(getbuffer_cobj);
     return -1;
 }
-
 static void __Pyx_ReleaseBuffer(Py_buffer *view) {
-    PyObject* obj = view->obj;
-    PyObject *releasebuffer_cobj = NULL;
-
+    PyObject *obj = view->obj;
+    CYTHON_UNUSED PyObject *releasebuffer_cobj;
     if (!obj) return;
-
   #if PY_VERSION_HEX >= 0x02060000
     if (PyObject_CheckBuffer(obj)) {
         PyBuffer_Release(view);
         return;
     }
   #endif
-
         if (PyObject_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) { __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); return; }
-
   #if PY_VERSION_HEX < 0x02060000
     if (obj->ob_type->tp_dict &&
         (releasebuffer_cobj = PyMapping_GetItemString(obj->ob_type->tp_dict,
                                                       "__pyx_releasebuffer"))) {
         releasebufferproc func;
-
       #if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION == 0)
         func = (releasebufferproc) PyCapsule_GetPointer(releasebuffer_cobj, "releasebuffer(obj, view)");
       #else
         func = (releasebufferproc) PyCObject_AsVoidPtr(releasebuffer_cobj);
       #endif
-
+        Py_DECREF(releasebuffer_cobj);
         if (!func)
             goto fail;
-
         func(obj, view);
         return;
+    } else {
+        PyErr_Clear();
     }
   #endif
-
     goto nofail;
-
 #if PY_VERSION_HEX < 0x02060000
 fail:
 #endif
     PyErr_WriteUnraisable(obj);
-
 nofail:
-    Py_XDECREF(releasebuffer_cobj);
     Py_DECREF(obj);
     view->obj = NULL;
 }
-
 #endif /*  PY_MAJOR_VERSION < 3 */
 
-    static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level) {
-    PyObject *py_import = 0;
+
+    static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
     PyObject *empty_list = 0;
     PyObject *module = 0;
     PyObject *global_dict = 0;
     PyObject *empty_dict = 0;
     PyObject *list;
+    #if PY_VERSION_HEX < 0x03030000
+    PyObject *py_import = 0;
     py_import = __Pyx_GetAttrString(__pyx_b, "__import__");
     if (!py_import)
         goto bad;
+    #endif
     if (from_list)
         list = from_list;
     else {
@@ -6315,12 +6841,42 @@ nofail:
         goto bad;
     #if PY_VERSION_HEX >= 0x02050000
     {
-        PyObject *py_level = PyInt_FromLong(level);
-        if (!py_level)
-            goto bad;
-        module = PyObject_CallFunctionObjArgs(py_import,
-            name, global_dict, empty_dict, list, py_level, NULL);
-        Py_DECREF(py_level);
+        #if PY_MAJOR_VERSION >= 3
+        if (level == -1) {
+            if (strchr(__Pyx_MODULE_NAME, '.')) {
+                #if PY_VERSION_HEX < 0x03030000
+                PyObject *py_level = PyInt_FromLong(1);
+                if (!py_level)
+                    goto bad;
+                module = PyObject_CallFunctionObjArgs(py_import,
+                    name, global_dict, empty_dict, list, py_level, NULL);
+                Py_DECREF(py_level);
+                #else
+                module = PyImport_ImportModuleLevelObject(
+                    name, global_dict, empty_dict, list, 1);
+                #endif
+                if (!module) {
+                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
+                        goto bad;
+                    PyErr_Clear();
+                }
+            }
+            level = 0; /* try absolute import on failure */
+        }
+        #endif
+        if (!module) {
+            #if PY_VERSION_HEX < 0x03030000
+            PyObject *py_level = PyInt_FromLong(level);
+            if (!py_level)
+                goto bad;
+            module = PyObject_CallFunctionObjArgs(py_import,
+                name, global_dict, empty_dict, list, py_level, NULL);
+            Py_DECREF(py_level);
+            #else
+            module = PyImport_ImportModuleLevelObject(
+                name, global_dict, empty_dict, list, level);
+            #endif
+        }
     }
     #else
     if (level>0) {
@@ -6331,13 +6887,15 @@ nofail:
         name, global_dict, empty_dict, list, NULL);
     #endif
 bad:
-    Py_XDECREF(empty_list);
+    #if PY_VERSION_HEX < 0x03030000
     Py_XDECREF(py_import);
+    #endif
+    Py_XDECREF(empty_list);
     Py_XDECREF(empty_dict);
     return module;
 }
 
-#if PY_MAJOR_VERSION < 3
+#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3
 static PyObject *__Pyx_GetStdout(void) {
     PyObject *f = PySys_GetObject((char *)"stdout");
     if (!f) {
@@ -6346,20 +6904,21 @@ static PyObject *__Pyx_GetStdout(void) {
     return f;
 }
 static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) {
-    PyObject* v;
     int i;
     if (!f) {
         if (!(f = __Pyx_GetStdout()))
             return -1;
     }
+    Py_INCREF(f);
     for (i=0; i < PyTuple_GET_SIZE(arg_tuple); i++) {
+        PyObject* v;
         if (PyFile_SoftSpace(f, 1)) {
             if (PyFile_WriteString(" ", f) < 0)
-                return -1;
+                goto error;
         }
         v = PyTuple_GET_ITEM(arg_tuple, i);
         if (PyFile_WriteObject(v, f, Py_PRINT_RAW) < 0)
-            return -1;
+            goto error;
         if (PyString_Check(v)) {
             char *s = PyString_AsString(v);
             Py_ssize_t len = PyString_Size(v);
@@ -6371,10 +6930,14 @@ static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) {
     }
     if (newline) {
         if (PyFile_WriteString("\n", f) < 0)
-            return -1;
+            goto error;
         PyFile_SoftSpace(f, 0);
     }
+    Py_DECREF(f);
     return 0;
+error:
+    Py_DECREF(f);
+    return -1;
 }
 #else /* Python 3 has a print function */
 static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) {
@@ -6432,33 +6995,36 @@ bad:
 }
 #endif
 
-#if PY_MAJOR_VERSION < 3
+#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3
 static int __Pyx_PrintOne(PyObject* f, PyObject *o) {
     if (!f) {
         if (!(f = __Pyx_GetStdout()))
             return -1;
     }
+    Py_INCREF(f);
     if (PyFile_SoftSpace(f, 0)) {
         if (PyFile_WriteString(" ", f) < 0)
-            return -1;
+            goto error;
     }
     if (PyFile_WriteObject(o, f, Py_PRINT_RAW) < 0)
-        return -1;
+        goto error;
     if (PyFile_WriteString("\n", f) < 0)
-        return -1;
+        goto error;
+    Py_DECREF(f);
     return 0;
-    /* the line below is just to avoid compiler
-     * compiler warnings about unused functions */
+error:
+    Py_DECREF(f);
+    return -1;
+    /* the line below is just to avoid C compiler
+     * warnings about unused functions */
     return __Pyx_Print(f, NULL, 0);
 }
 #else /* Python 3 has a print function */
 static int __Pyx_PrintOne(PyObject* stream, PyObject *o) {
     int res;
-    PyObject* arg_tuple = PyTuple_New(1);
+    PyObject* arg_tuple = PyTuple_Pack(1, o);
     if (unlikely(!arg_tuple))
         return -1;
-    Py_INCREF(o);
-    PyTuple_SET_ITEM(arg_tuple, 0, o);
     res = __Pyx_Print(stream, arg_tuple, 1);
     Py_DECREF(arg_tuple);
     return res;
@@ -7124,6 +7690,23 @@ static int __Pyx_check_binary_version(void) {
     return 0;
 }
 
+#ifndef __PYX_HAVE_RT_ImportModule
+#define __PYX_HAVE_RT_ImportModule
+static PyObject *__Pyx_ImportModule(const char *name) {
+    PyObject *py_name = 0;
+    PyObject *py_module = 0;
+    py_name = __Pyx_PyIdentifier_FromString(name);
+    if (!py_name)
+        goto bad;
+    py_module = PyImport_Import(py_name);
+    Py_DECREF(py_name);
+    return py_module;
+bad:
+    Py_XDECREF(py_name);
+    return 0;
+}
+#endif
+
 #ifndef __PYX_HAVE_RT_ImportType
 #define __PYX_HAVE_RT_ImportType
 static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name,
@@ -7133,6 +7716,10 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class
     PyObject *result = 0;
     PyObject *py_name = 0;
     char warning[200];
+    Py_ssize_t basicsize;
+#ifdef Py_LIMITED_API
+    PyObject *py_basicsize;
+#endif
     py_module = __Pyx_ImportModule(module_name);
     if (!py_module)
         goto bad;
@@ -7152,7 +7739,19 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class
             module_name, class_name);
         goto bad;
     }
-    if (!strict && (size_t)((PyTypeObject *)result)->tp_basicsize > size) {
+#ifndef Py_LIMITED_API
+    basicsize = ((PyTypeObject *)result)->tp_basicsize;
+#else
+    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
+    if (!py_basicsize)
+        goto bad;
+    basicsize = PyLong_AsSsize_t(py_basicsize);
+    Py_DECREF(py_basicsize);
+    py_basicsize = 0;
+    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
+        goto bad;
+#endif
+    if (!strict && (size_t)basicsize > size) {
         PyOS_snprintf(warning, sizeof(warning),
             "%s.%s size changed, may indicate binary incompatibility",
             module_name, class_name);
@@ -7162,7 +7761,7 @@ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class
         if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
         #endif
     }
-    else if ((size_t)((PyTypeObject *)result)->tp_basicsize != size) {
+    else if ((size_t)basicsize != size) {
         PyErr_Format(PyExc_ValueError,
             "%s.%s has the wrong size, try recompiling",
             module_name, class_name);
@@ -7176,23 +7775,6 @@ bad:
 }
 #endif
 
-#ifndef __PYX_HAVE_RT_ImportModule
-#define __PYX_HAVE_RT_ImportModule
-static PyObject *__Pyx_ImportModule(const char *name) {
-    PyObject *py_name = 0;
-    PyObject *py_module = 0;
-    py_name = __Pyx_PyIdentifier_FromString(name);
-    if (!py_name)
-        goto bad;
-    py_module = PyImport_Import(py_name);
-    Py_DECREF(py_name);
-    return py_module;
-bad:
-    Py_XDECREF(py_name);
-    return 0;
-}
-#endif
-
 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
     int start = 0, mid = 0, end = count - 1;
     if (end >= 0 && code_line > entries[end].code_line) {
@@ -7385,15 +7967,11 @@ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
     return 0;
 }
 
-
-/* Type Conversion Functions */
-
 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
    int is_true = x == Py_True;
    if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
    else return PyObject_IsTrue(x);
 }
-
 static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
   PyNumberMethods *m;
   const char *name = NULL;
@@ -7439,7 +8017,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
   }
   return res;
 }
-
 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
   Py_ssize_t ival;
   PyObject* x = PyNumber_Index(b);
@@ -7448,7 +8025,6 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
   Py_DECREF(x);
   return ival;
 }
-
 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
 #if PY_VERSION_HEX < 0x02050000
    if (ival <= LONG_MAX)
@@ -7462,7 +8038,6 @@ static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
 #endif
 }
-
 static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
    unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
    if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
diff --git a/src/mar345_IO.html b/src/mar345_IO.html
deleted file mode 100644
index 71a7804..0000000
--- a/src/mar345_IO.html
+++ /dev/null
@@ -1,1739 +0,0 @@
-<!-- Generated by Cython 0.16.beta0 on Fri Apr 20 09:46:40 2012 -->
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<style type="text/css">
-
-body { font-family: courier; font-size: 12; }
-
-.code  { font-size: 9; color: #444444; display: none; margin-left: 20px; }
-.py_c_api  { color: red; }
-.py_macro_api  { color: #FF7000; }
-.pyx_c_api  { color: #FF3000; }
-.pyx_macro_api  { color: #FF7000; }
-.refnanny  { color: #FFA000; }
-
-.error_goto  { color: #FFA000; }
-
-.tag  {  }
-
-.coerce  { color: #008000; border: 1px dotted #008000 }
-
-.py_attr { color: #FF0000; font-weight: bold; }
-.c_attr  { color: #0000FF; }
-
-.py_call { color: #FF0000; font-weight: bold; }
-.c_call  { color: #0000FF; }
-
-.line { margin: 0em }
-
-</style>
-<script>
-function toggleDiv(id) {
-    theDiv = document.getElementById(id);
-    if (theDiv.style.display == 'none') theDiv.style.display = 'block';
-    else theDiv.style.display = 'none';
-}
-</script>
-</head>
-        <body>
-<p>Generated by Cython 0.16.beta0 on Fri Apr 20 09:46:40 2012
-<p>Raw output: <a href="mar345_IO.c">mar345_IO.c</a>
-<pre class='line' style='background-color: #FFFF79' onclick='toggleDiv("line1")'> 1: """</pre>
-<pre id='line1' class='code' style='background-color: #FFFF79'>
-  /* "mar345_IO.pyx":1
- * """             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * New Cython version of mar345_io for preparing the migration to Python3
- * 
- */
-  __pyx_t_1 = <span class='py_c_api'>PyDict_New</span>();<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(((PyObject *)__pyx_t_1));
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_1)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line2")'> 2: New Cython version of mar345_io for preparing the migration to Python3</pre>
-<pre id='line2' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line3")'> 3: </pre>
-<pre id='line3' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line4")'> 4: Compressor & decompressor for "pack" algorithm by JPA, binding to CCP4 libraries</pre>
-<pre id='line4' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line5")'> 5: </pre>
-<pre id='line5' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line6")'> 6: Warning: decompressor is just a cython porting of mar345_io, but in cython so (soon) python3 compliant.</pre>
-<pre id='line6' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line7")'> 7: </pre>
-<pre id='line7' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line8")'> 8: Future: make those algorithm actually generate strings not go via files;</pre>
-<pre id='line8' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line9")'> 9:         it will allow a broader use of the algorithm.</pre>
-<pre id='line9' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line10")'> 10: </pre>
-<pre id='line10' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line11")'> 11: """</pre>
-<pre id='line11' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line12")'> 12: </pre>
-<pre id='line12' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF66' onclick='toggleDiv("line13")'> 13: __authors__ = ["Jerome Kieffer", "Gael Goret"]</pre>
-<pre id='line13' class='code' style='background-color: #FFFF66'>
-  /* "mar345_IO.pyx":13
- * """
- * 
- * __authors__ = ["Jerome Kieffer", "Gael Goret"]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * __contact__ = "jerome.kieffer at esrf.eu"
- * __license__ = "LGPLv3+"
- */
-  __pyx_t_1 = <span class='py_c_api'>PyList_New</span>(2);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_kp_s_26));
-  <span class='py_macro_api'>PyList_SET_ITEM</span>(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_26));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_kp_s_26));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_kp_s_27));
-  <span class='py_macro_api'>PyList_SET_ITEM</span>(__pyx_t_1, 1, ((PyObject *)__pyx_kp_s_27));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_kp_s_27));
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____authors__, ((PyObject *)__pyx_t_1)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-</pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line14")'> 14: __contact__ = "jerome.kieffer at esrf.eu"</pre>
-<pre id='line14' class='code' style='background-color: #FFFFaa'>
-  /* "mar345_IO.pyx":14
- * 
- * __authors__ = ["Jerome Kieffer", "Gael Goret"]
- * __contact__ = "jerome.kieffer at esrf.eu"             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * __license__ = "LGPLv3+"
- * __copyright__ = "2012, European Synchrotron Radiation Facility, Grenoble, France"
- */
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____contact__, ((PyObject *)__pyx_kp_s_28)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-</pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line15")'> 15: __license__ = "LGPLv3+"</pre>
-<pre id='line15' class='code' style='background-color: #FFFFaa'>
-  /* "mar345_IO.pyx":15
- * __authors__ = ["Jerome Kieffer", "Gael Goret"]
- * __contact__ = "jerome.kieffer at esrf.eu"
- * __license__ = "LGPLv3+"             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * __copyright__ = "2012, European Synchrotron Radiation Facility, Grenoble, France"
- * 
- */
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____license__, ((PyObject *)__pyx_kp_s_29)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-</pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line16")'> 16: __copyright__ = "2012, European Synchrotron Radiation Facility, Grenoble, France"</pre>
-<pre id='line16' class='code' style='background-color: #FFFFaa'>
-  /* "mar345_IO.pyx":16
- * __contact__ = "jerome.kieffer at esrf.eu"
- * __license__ = "LGPLv3+"
- * __copyright__ = "2012, European Synchrotron Radiation Facility, Grenoble, France"             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * 
- * import cython
- */
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s____copyright__, ((PyObject *)__pyx_kp_s_30)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line17")'> 17: </pre>
-<pre id='line17' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line18")'> 18: import cython</pre>
-<pre id='line18' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line19")'> 19: cimport numpy</pre>
-<pre id='line19' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF8d' onclick='toggleDiv("line20")'> 20: import numpy</pre>
-<pre id='line20' class='code' style='background-color: #FFFF8d'>
-  /* "mar345_IO.pyx":20
- * import cython
- * cimport numpy
- * import numpy             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * import os,tempfile
- * 
- */
-  __pyx_t_1 = <span class='pyx_c_api'>__Pyx_Import</span>(((PyObject *)__pyx_n_s__numpy), 0, -1);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s__numpy, __pyx_t_1) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-</pre><pre class='line' style='background-color: #FFFF62' onclick='toggleDiv("line21")'> 21: import os,tempfile</pre>
-<pre id='line21' class='code' style='background-color: #FFFF62'>
-  /* "mar345_IO.pyx":21
- * cimport numpy
- * import numpy
- * import os,tempfile             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * 
- * #cdef extern from "pack_c.h":
- */
-  __pyx_t_1 = <span class='pyx_c_api'>__Pyx_Import</span>(((PyObject *)__pyx_n_s__os), 0, -1);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s__os, __pyx_t_1) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = <span class='pyx_c_api'>__Pyx_Import</span>(((PyObject *)__pyx_n_s__tempfile), 0, -1);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s__tempfile, __pyx_t_1) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line22")'> 22: </pre>
-<pre id='line22' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line23")'> 23: #cdef extern from "pack_c.h":</pre>
-<pre id='line23' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line24")'> 24: #     void pack_wordimage_c(short int*, int , int , char*) nogil</pre>
-<pre id='line24' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line25")'> 25: #     void unpack_word(FILE *packfile, int x, int y, short int *img) nogil</pre>
-<pre id='line25' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line26")'> 26: </pre>
-<pre id='line26' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line27")'> 27: cdef extern from "ccp4_pack.h":</pre>
-<pre id='line27' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line28")'> 28:     void* mar345_read_data_string(char *instream, int ocount, int dim1, int dim2) nogil</pre>
-<pre id='line28' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line29")'> 29:     void pack_wordimage_c(short int*, int , int , char*) nogil</pre>
-<pre id='line29' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line30")'> 30: </pre>
-<pre id='line30' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line31")'> 31: @cython.boundscheck(False)</pre>
-<pre id='line31' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF2f' onclick='toggleDiv("line32")'> 32: def compress_pck(numpy.ndarray inputArray not None):</pre>
-<pre id='line32' class='code' style='background-color: #FFFF2f'>
-/* "mar345_IO.pyx":32
- * 
- * @cython.boundscheck(False)
- * def compress_pck(numpy.ndarray inputArray not None):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     """
- *     @param inputArray: numpy array as input
- */
-
-static PyObject *__pyx_pf_9mar345_IO_compress_pck(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_inputArray) {
-  CYTHON_UNUSED long __pyx_v_size;
-  int __pyx_v_dim0;
-  int __pyx_v_dim1;
-  int __pyx_v_fd;
-  char *__pyx_v_name;
-  PyArrayObject *__pyx_v_data = 0;
-  short *__pyx_v_cdata;
-  PyObject *__pyx_v_fname = NULL;
-  PyObject *__pyx_v_f = NULL;
-  PyObject *__pyx_v_output = NULL;
-  __Pyx_LocalBuf_ND __pyx_pybuffernd_data;
-  __Pyx_Buffer __pyx_pybuffer_data;
-  PyObject *__pyx_r = NULL;
-  <span class='refnanny'>__Pyx_RefNannyDeclarations</span>
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannySetupContext</span></span>("compress_pck", 0);
-  __pyx_pybuffer_data.pybuffer.buf = NULL;
-  __pyx_pybuffer_data.refcount = 0;
-  __pyx_pybuffernd_data.data = NULL;
-  __pyx_pybuffernd_data.rcbuffer = &__pyx_pybuffer_data;
-
-  /* "mar345_IO.pyx":32
- * 
- * @cython.boundscheck(False)
- * def compress_pck(numpy.ndarray inputArray not None):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     """
- *     @param inputArray: numpy array as input
- */
-  __pyx_k_tuple_31 = <span class='py_c_api'>PyTuple_New</span>(14);<span class='error_goto'> if (unlikely(!__pyx_k_tuple_31)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_k_tuple_31);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__inputArray));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 0, ((PyObject *)__pyx_n_s__inputArray));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__inputArray));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__size));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 1, ((PyObject *)__pyx_n_s__size));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__size));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__dim0));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 2, ((PyObject *)__pyx_n_s__dim0));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__dim0));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__dim1));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 3, ((PyObject *)__pyx_n_s__dim1));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__dim1));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__i));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 4, ((PyObject *)__pyx_n_s__i));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__i));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__j));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 5, ((PyObject *)__pyx_n_s__j));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__j));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__fd));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 6, ((PyObject *)__pyx_n_s__fd));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__fd));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__ret));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 7, ((PyObject *)__pyx_n_s__ret));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__ret));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__name));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 8, ((PyObject *)__pyx_n_s__name));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__name));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__data));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 9, ((PyObject *)__pyx_n_s__data));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__data));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__cdata));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 10, ((PyObject *)__pyx_n_s__cdata));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__cdata));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__fname));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 11, ((PyObject *)__pyx_n_s__fname));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__fname));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__f));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 12, ((PyObject *)__pyx_n_s__f));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__f));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__output));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_31, 13, ((PyObject *)__pyx_n_s__output));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__output));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_k_tuple_31));
-
-  /* "mar345_IO.pyx":32
- * 
- * @cython.boundscheck(False)
- * def compress_pck(numpy.ndarray inputArray not None):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     """
- *     @param inputArray: numpy array as input
- */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_9mar345_IO_1compress_pck, NULL, __pyx_n_s__mar345_IO);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s__compress_pck, __pyx_t_1) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_k_codeobj_32 = (PyObject*)__Pyx_<span class='py_c_api'>PyCode_New</span>(1, 0, 14, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_33, __pyx_n_s__compress_pck, 32, __pyx_empty_bytes);<span class='error_goto'> if (unlikely(!__pyx_k_codeobj_32)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line33")'> 33:     """</pre>
-<pre id='line33' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line34")'> 34:     @param inputArray: numpy array as input</pre>
-<pre id='line34' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line35")'> 35:     @param filename: file to write data to</pre>
-<pre id='line35' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line36")'> 36:     """</pre>
-<pre id='line36' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF62' onclick='toggleDiv("line37")'> 37:     cdef long  size = inputArray.size</pre>
-<pre id='line37' class='code' style='background-color: #FFFF62'>
-  /* "mar345_IO.pyx":37
- *     @param filename: file to write data to
- *     """
- *     cdef long  size = inputArray.size             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef int dim0, dim1, i, j, fd, ret
- *     cdef char* name
- */
-  __pyx_t_1 = <span class='py_c_api'>PyObject_GetAttr</span>(((PyObject *)__pyx_v_inputArray), __pyx_n_s__size);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  __pyx_t_2 = __Pyx_<span class='py_c_api'>PyInt_AsLong</span>(__pyx_t_1);<span class='error_goto'> if (unlikely((__pyx_t_2 == (long)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_v_size = __pyx_t_2;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line38")'> 38:     cdef int dim0, dim1, i, j, fd, ret</pre>
-<pre id='line38' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line39")'> 39:     cdef char* name</pre>
-<pre id='line39' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line40")'> 40:     assert inputArray.ndim == 2, "shape is 2D"</pre>
-<pre id='line40' class='code' style='background-color: #FFFFaa'>
-  /* "mar345_IO.pyx":40
- *     cdef int dim0, dim1, i, j, fd, ret
- *     cdef char* name
- *     assert inputArray.ndim == 2, "shape is 2D"             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     dim0 = inputArray.shape[0]
- *     dim1 = inputArray.shape[1]
- */
-  #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_inputArray->nd == 2))) {
-    <span class='py_c_api'>PyErr_SetObject</span>(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_1));
-   <span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  }
-  #endif
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line41")'> 41:     dim0 = inputArray.shape[0]</pre>
-<pre id='line41' class='code' style='background-color: #FFFFff'>
-  /* "mar345_IO.pyx":41
- *     cdef char* name
- *     assert inputArray.ndim == 2, "shape is 2D"
- *     dim0 = inputArray.shape[0]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     dim1 = inputArray.shape[1]
- *     cdef numpy.ndarray[numpy.uint16_t, ndim = 1] data = numpy.ascontiguousarray(inputArray.astype(numpy.uint16).ravel(), dtype=numpy.uint16)
- */
-  __pyx_v_dim0 = (__pyx_v_inputArray->dimensions[0]);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line42")'> 42:     dim1 = inputArray.shape[1]</pre>
-<pre id='line42' class='code' style='background-color: #FFFFff'>
-  /* "mar345_IO.pyx":42
- *     assert inputArray.ndim == 2, "shape is 2D"
- *     dim0 = inputArray.shape[0]
- *     dim1 = inputArray.shape[1]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef numpy.ndarray[numpy.uint16_t, ndim = 1] data = numpy.ascontiguousarray(inputArray.astype(numpy.uint16).ravel(), dtype=numpy.uint16)
- *     cdef short int * cdata
- */
-  __pyx_v_dim1 = (__pyx_v_inputArray->dimensions[1]);
-</pre><pre class='line' style='background-color: #FFFF1b' onclick='toggleDiv("line43")'> 43:     cdef numpy.ndarray[numpy.uint16_t, ndim = 1] data = numpy.ascontiguousarray(inputArray.astype(numpy.uint16).ravel(), dtype=numpy.uint16)</pre>
-<pre id='line43' class='code' style='background-color: #FFFF1b'>
-  /* "mar345_IO.pyx":43
- *     dim0 = inputArray.shape[0]
- *     dim1 = inputArray.shape[1]
- *     cdef numpy.ndarray[numpy.uint16_t, ndim = 1] data = numpy.ascontiguousarray(inputArray.astype(numpy.uint16).ravel(), dtype=numpy.uint16)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef short int * cdata
- *     cdata = <code><</code> short int *> data.data
- */
-  __pyx_t_1 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__numpy);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  __pyx_t_3 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_1, __pyx_n_s__ascontiguousarray);<span class='error_goto'> if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_3);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = <span class='py_c_api'>PyObject_GetAttr</span>(((PyObject *)__pyx_v_inputArray), __pyx_n_s__astype);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  __pyx_t_4 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__numpy);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  __pyx_t_5 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_4, __pyx_n_s__uint16);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_4, 0, __pyx_t_5);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_5);
-  __pyx_t_5 = 0;
-  __pyx_t_5 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-  __pyx_t_4 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_5, __pyx_n_s__ravel);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_t_5 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_4, 0, __pyx_t_5);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_5);
-  __pyx_t_5 = 0;
-  __pyx_t_5 = <span class='py_c_api'>PyDict_New</span>();<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(((PyObject *)__pyx_t_5));
-  __pyx_t_1 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__numpy);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  __pyx_t_6 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_1, __pyx_n_s__uint16);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-  if (<span class='py_c_api'>PyDict_SetItem</span>(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_6) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-  __pyx_t_6 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_3, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_5));<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_3); __pyx_t_3 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-  if (!(likely(((__pyx_t_6) == Py_None) || likely(<span class='pyx_c_api'>__Pyx_TypeTest</span>(__pyx_t_6, __pyx_ptype_5numpy_ndarray)))))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
-  {
-    __Pyx_BufFmt_StackElem __pyx_stack[1];
-    if (unlikely(<span class='pyx_c_api'>__Pyx_GetBufferAndValidate</span>(&__pyx_pybuffernd_data.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
-      __pyx_v_data = ((PyArrayObject *)Py_None); <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None); __pyx_pybuffernd_data.rcbuffer->pybuffer.buf = NULL;
-     <span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    } else {__pyx_pybuffernd_data.diminfo[0].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_data.diminfo[0].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[0];
-    }
-  }
-  __pyx_t_7 = 0;
-  __pyx_v_data = ((PyArrayObject *)__pyx_t_6);
-  __pyx_t_6 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line44")'> 44:     cdef short int * cdata</pre>
-<pre id='line44' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line45")'> 45:     cdata = < short int *> data.data</pre>
-<pre id='line45' class='code' style='background-color: #FFFFff'>
-  /* "mar345_IO.pyx":45
- *     cdef numpy.ndarray[numpy.uint16_t, ndim = 1] data = numpy.ascontiguousarray(inputArray.astype(numpy.uint16).ravel(), dtype=numpy.uint16)
- *     cdef short int * cdata
- *     cdata = <code><</code> short int *> data.data             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     (fd,fname) = tempfile.mkstemp()
- *     name = <code><</code>char*>  fname
- */
-  __pyx_v_cdata = ((short *)__pyx_v_data->data);
-</pre><pre class='line' style='background-color: #FFFF1d' onclick='toggleDiv("line46")'> 46:     (fd,fname) = tempfile.mkstemp()</pre>
-<pre id='line46' class='code' style='background-color: #FFFF1d'>
-  /* "mar345_IO.pyx":46
- *     cdef short int * cdata
- *     cdata = <code><</code> short int *> data.data
- *     (fd,fname) = tempfile.mkstemp()             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     name = <code><</code>char*>  fname
- *     with nogil:
- */
-  __pyx_t_6 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__tempfile);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-  __pyx_t_5 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_6, __pyx_n_s__mkstemp);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-  __pyx_t_6 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-  #if CYTHON_COMPILING_IN_CPYTHON
-  if ((likely(<span class='py_c_api'>PyTuple_CheckExact</span>(__pyx_t_6))) || (<span class='py_c_api'>PyList_CheckExact</span>(__pyx_t_6))) {
-    PyObject* sequence = __pyx_t_6;
-    if (likely(<span class='py_c_api'>PyTuple_CheckExact</span>(sequence))) {
-      if (unlikely(<span class='py_macro_api'>PyTuple_GET_SIZE</span>(sequence) != 2)) {
-        if (<span class='py_macro_api'>PyTuple_GET_SIZE</span>(sequence) > 2) <span class='pyx_c_api'>__Pyx_RaiseTooManyValuesError</span>(2);
-        else <span class='pyx_c_api'>__Pyx_RaiseNeedMoreValuesError</span>(<span class='py_macro_api'>PyTuple_GET_SIZE</span>(sequence));
-       <span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      }
-      __pyx_t_5 = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(sequence, 0); 
-      <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_t_5);
-      __pyx_t_4 = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(sequence, 1); 
-      <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_t_4);
-    } else {
-      if (unlikely(<span class='py_macro_api'>PyList_GET_SIZE</span>(sequence) != 2)) {
-        if (<span class='py_macro_api'>PyList_GET_SIZE</span>(sequence) > 2) <span class='pyx_c_api'>__Pyx_RaiseTooManyValuesError</span>(2);
-        else <span class='pyx_c_api'>__Pyx_RaiseNeedMoreValuesError</span>(<span class='py_macro_api'>PyList_GET_SIZE</span>(sequence));
-       <span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      }
-      __pyx_t_5 = <span class='py_macro_api'>PyList_GET_ITEM</span>(sequence, 0); 
-      <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_t_5);
-      __pyx_t_4 = <span class='py_macro_api'>PyList_GET_ITEM</span>(sequence, 1); 
-      <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_t_4);
-    }
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-  } else
-  #endif
-  {
-    Py_ssize_t index = -1;
-    __pyx_t_3 = <span class='py_c_api'>PyObject_GetIter</span>(__pyx_t_6);<span class='error_goto'> if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_3);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-    __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext;
-    index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_5)) goto __pyx_L3_unpacking_failed;
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    index = 1; __pyx_t_4 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    if (<span class='pyx_c_api'>__Pyx_IternextUnpackEndCheck</span>(__pyx_t_8(__pyx_t_3), 2) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_8 = NULL;
-    goto __pyx_L4_unpacking_done;
-    __pyx_L3_unpacking_failed:;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_3); __pyx_t_3 = 0;
-    if (<span class='pyx_c_api'>__Pyx_IterFinish</span>() == 0) <span class='pyx_c_api'>__Pyx_RaiseNeedMoreValuesError</span>(index);
-   <span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_L4_unpacking_done:;
-  }
-  __pyx_t_9 = __Pyx_<span class='py_c_api'>PyInt_AsInt</span>(__pyx_t_5);<span class='error_goto'> if (unlikely((__pyx_t_9 == (int)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_v_fd = __pyx_t_9;
-  __pyx_v_fname = __pyx_t_4;
-  __pyx_t_4 = 0;
-</pre><pre class='line' style='background-color: #FFFF7f' onclick='toggleDiv("line47")'> 47:     name = <char*>  fname</pre>
-<pre id='line47' class='code' style='background-color: #FFFF7f'>
-  /* "mar345_IO.pyx":47
- *     cdata = <code><</code> short int *> data.data
- *     (fd,fname) = tempfile.mkstemp()
- *     name = <code><</code>char*>  fname             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     with nogil:
- *         pack_wordimage_c(cdata, dim1, dim0, name)
- */
-  __pyx_t_10 = <span class='py_c_api'>PyBytes_AsString</span>(__pyx_v_fname);<span class='error_goto'> if (unlikely((!__pyx_t_10) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  __pyx_v_name = ((char *)__pyx_t_10);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line48")'> 48:     with nogil:</pre>
-<pre id='line48' class='code' style='background-color: #FFFFff'>
-  /* "mar345_IO.pyx":48
- *     (fd,fname) = tempfile.mkstemp()
- *     name = <code><</code>char*>  fname
- *     with nogil:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         pack_wordimage_c(cdata, dim1, dim0, name)
- *     with open(name,"rb") as f:
- */
-  {
-      #ifdef WITH_THREAD
-      PyThreadState *_save = NULL;
-      #endif
-      Py_UNBLOCK_THREADS
-      /*try:*/ {
-
-      /* "mar345_IO.pyx":48
- *     (fd,fname) = tempfile.mkstemp()
- *     name = <code><</code>char*>  fname
- *     with nogil:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         pack_wordimage_c(cdata, dim1, dim0, name)
- *     with open(name,"rb") as f:
- */
-      /*finally:*/ {
-        Py_BLOCK_THREADS
-      }
-  }
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line49")'> 49:         pack_wordimage_c(cdata, dim1, dim0, name)</pre>
-<pre id='line49' class='code' style='background-color: #FFFFff'>
-        /* "mar345_IO.pyx":49
- *     name = <code><</code>char*>  fname
- *     with nogil:
- *         pack_wordimage_c(cdata, dim1, dim0, name)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     with open(name,"rb") as f:
- *         f.seek(0)
- */
-        pack_wordimage_c(__pyx_v_cdata, __pyx_v_dim1, __pyx_v_dim0, __pyx_v_name);
-      }
-</pre><pre class='line' style='background-color: #FFFF16' onclick='toggleDiv("line50")'> 50:     with open(name,"rb") as f:</pre>
-<pre id='line50' class='code' style='background-color: #FFFF16'>
-  /* "mar345_IO.pyx":50
- *     with nogil:
- *         pack_wordimage_c(cdata, dim1, dim0, name)
- *     with open(name,"rb") as f:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         f.seek(0)
- *         output = f.read()
- */
-  /*with:*/ {
-    __pyx_t_6 = <span class='py_c_api'>PyBytes_FromString</span>(__pyx_v_name);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(((PyObject *)__pyx_t_6));
-    __pyx_t_4 = <span class='py_c_api'>PyTuple_New</span>(2);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_4, 0, ((PyObject *)__pyx_t_6));
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_t_6));
-    <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__rb));
-    <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_4, 1, ((PyObject *)__pyx_n_s__rb));
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__rb));
-    __pyx_t_6 = 0;
-    __pyx_t_6 = <span class='py_c_api'>PyObject_Call</span>(__pyx_builtin_open, ((PyObject *)__pyx_t_4), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __pyx_t_11 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_6, __pyx_n_s____exit__);<span class='error_goto'> if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_11);
-    __pyx_t_4 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_6, __pyx_n_s____enter__);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L8_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    __pyx_t_5 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L8_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-    /*try:*/ {
-      {
-        <span class='pyx_c_api'>__Pyx_ExceptionSave</span>(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGOTREF</span></span>(__pyx_t_12);
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGOTREF</span></span>(__pyx_t_13);
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGOTREF</span></span>(__pyx_t_14);
-        /*try:*/ {
-          <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_t_5);
-          __pyx_v_f = __pyx_t_5;
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-
-        /* "mar345_IO.pyx":50
- *     with nogil:
- *         pack_wordimage_c(cdata, dim1, dim0, name)
- *     with open(name,"rb") as f:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         f.seek(0)
- *         output = f.read()
- */
-        /*except:*/ {
-          <span class='pyx_c_api'>__Pyx_AddTraceback</span>("mar345_IO.compress_pck", __pyx_clineno, __pyx_lineno, __pyx_filename);
-          if (<span class='pyx_c_api'>__Pyx_GetException</span>(&__pyx_t_5, &__pyx_t_6, &__pyx_t_4) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}</span>
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-          __pyx_t_3 = <span class='py_c_api'>PyTuple_New</span>(3);<span class='error_goto'> if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}</span>
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_3);
-          <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_t_5);
-          <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_3, 0, __pyx_t_5);
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_5);
-          <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_t_6);
-          <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_3, 1, __pyx_t_6);
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_6);
-          <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_t_4);
-          <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_3, 2, __pyx_t_4);
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_4);
-          __pyx_t_16 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_11, __pyx_t_3, NULL);
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_11); __pyx_t_11 = 0;
-          if (unlikely(!__pyx_t_16))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}</span>
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_16);
-          __pyx_t_15 = __Pyx_<span class='py_c_api'>PyObject_IsTrue</span>(__pyx_t_16);
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_16); __pyx_t_16 = 0;
-          if (unlikely(__pyx_t_15 <code><</code> 0))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}</span>
-          __pyx_t_17 = (!__pyx_t_15);
-          if (__pyx_t_17) {
-            <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_5);
-            <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_6);
-            <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_4);
-            <span class='pyx_c_api'>__Pyx_ErrRestore</span>(__pyx_t_5, __pyx_t_6, __pyx_t_4);
-            __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0; 
-           <span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}</span>
-            goto __pyx_L23;
-          }
-          __pyx_L23:;
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-          goto __pyx_L13_exception_handled;
-        }
-        __pyx_L14_except_error:;
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGIVEREF</span></span>(__pyx_t_12);
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGIVEREF</span></span>(__pyx_t_13);
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGIVEREF</span></span>(__pyx_t_14);
-        <span class='pyx_c_api'>__Pyx_ExceptionReset</span>(__pyx_t_12, __pyx_t_13, __pyx_t_14);
-        goto __pyx_L1_error;
-        __pyx_L13_exception_handled:;
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGIVEREF</span></span>(__pyx_t_12);
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGIVEREF</span></span>(__pyx_t_13);
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGIVEREF</span></span>(__pyx_t_14);
-        <span class='pyx_c_api'>__Pyx_ExceptionReset</span>(__pyx_t_12, __pyx_t_13, __pyx_t_14);
-        __pyx_L19_try_end:;
-      }
-    }
-    /*finally:*/ {
-      if (__pyx_t_11) {
-        __pyx_t_14 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_11, __pyx_k_tuple_3, NULL);
-        <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_11); __pyx_t_11 = 0;
-        if (unlikely(!__pyx_t_14))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-        <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_14);
-        __pyx_t_17 = __Pyx_<span class='py_c_api'>PyObject_IsTrue</span>(__pyx_t_14);
-        <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_14); __pyx_t_14 = 0;
-        if (unlikely(__pyx_t_17 <code><</code> 0))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      }
-    }
-    goto __pyx_L24;
-    __pyx_L8_error:;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_11); __pyx_t_11 = 0;
-    goto __pyx_L1_error;
-    __pyx_L24:;
-  }
-
-  /* "mar345_IO.pyx":50
- *     with nogil:
- *         pack_wordimage_c(cdata, dim1, dim0, name)
- *     with open(name,"rb") as f:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         f.seek(0)
- *         output = f.read()
- */
-  __pyx_k_tuple_3 = <span class='py_c_api'>PyTuple_New</span>(3);<span class='error_goto'> if (unlikely(!__pyx_k_tuple_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_k_tuple_3);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_3, 0, Py_None);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(Py_None);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_3, 1, Py_None);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(Py_None);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_3, 2, Py_None);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(Py_None);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_k_tuple_3));
-</pre><pre class='line' style='background-color: #FFFF57' onclick='toggleDiv("line51")'> 51:         f.seek(0)</pre>
-<pre id='line51' class='code' style='background-color: #FFFF57'>
-          /* "mar345_IO.pyx":51
- *         pack_wordimage_c(cdata, dim1, dim0, name)
- *     with open(name,"rb") as f:
- *         f.seek(0)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         output = f.read()
- *     os.close(fd)
- */
-          __pyx_t_5 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_f, __pyx_n_s__seek);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L12_error;}</span>
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-          __pyx_t_6 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_5, ((PyObject *)__pyx_k_tuple_2), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L12_error;}</span>
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-
-  /* "mar345_IO.pyx":51
- *         pack_wordimage_c(cdata, dim1, dim0, name)
- *     with open(name,"rb") as f:
- *         f.seek(0)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         output = f.read()
- *     os.close(fd)
- */
-  __pyx_k_tuple_2 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_k_tuple_2);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_int_0);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_2, 0, __pyx_int_0);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_int_0);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_k_tuple_2));
-</pre><pre class='line' style='background-color: #FFFF57' onclick='toggleDiv("line52")'> 52:         output = f.read()</pre>
-<pre id='line52' class='code' style='background-color: #FFFF57'>
-          /* "mar345_IO.pyx":52
- *     with open(name,"rb") as f:
- *         f.seek(0)
- *         output = f.read()             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     os.close(fd)
- *     os.remove(name)
- */
-          __pyx_t_6 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_f, __pyx_n_s__read);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L12_error;}</span>
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-          __pyx_t_5 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L12_error;}</span>
-          <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-          <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-          __pyx_v_output = __pyx_t_5;
-          __pyx_t_5 = 0;
-        }
-        <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_12); __pyx_t_12 = 0;
-        <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_13); __pyx_t_13 = 0;
-        <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_14); __pyx_t_14 = 0;
-        goto __pyx_L19_try_end;
-        __pyx_L12_error:;
-        <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-        <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_3); __pyx_t_3 = 0;
-        <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-        <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-        <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-</pre><pre class='line' style='background-color: #FFFF44' onclick='toggleDiv("line53")'> 53:     os.close(fd)</pre>
-<pre id='line53' class='code' style='background-color: #FFFF44'>
-  /* "mar345_IO.pyx":53
- *         f.seek(0)
- *         output = f.read()
- *     os.close(fd)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     os.remove(name)
- *     return output
- */
-  __pyx_t_4 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__os);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  __pyx_t_6 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_4, __pyx_n_s__close);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = <span class='py_c_api'>PyInt_FromLong</span>(__pyx_v_fd);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  __pyx_t_5 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_5, 0, __pyx_t_4);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_4);
-  __pyx_t_4 = 0;
-  __pyx_t_4 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-</pre><pre class='line' style='background-color: #FFFF44' onclick='toggleDiv("line54")'> 54:     os.remove(name)</pre>
-<pre id='line54' class='code' style='background-color: #FFFF44'>
-  /* "mar345_IO.pyx":54
- *         output = f.read()
- *     os.close(fd)
- *     os.remove(name)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     return output
- * 
- */
-  __pyx_t_4 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__os);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  __pyx_t_5 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_4, __pyx_n_s__remove);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = <span class='py_c_api'>PyBytes_FromString</span>(__pyx_v_name);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(((PyObject *)__pyx_t_4));
-  __pyx_t_6 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_6, 0, ((PyObject *)__pyx_t_4));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_t_4));
-  __pyx_t_4 = 0;
-  __pyx_t_4 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-</pre><pre class='line' style='background-color: #FFFF44' onclick='toggleDiv("line55")'> 55:     return output</pre>
-<pre id='line55' class='code' style='background-color: #FFFF44'>
-  /* "mar345_IO.pyx":55
- *     os.close(fd)
- *     os.remove(name)
- *     return output             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * 
- * @cython.boundscheck(False)
- */
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_r);
-  if (unlikely(!__pyx_v_output)) { <span class='pyx_c_api'>__Pyx_RaiseUnboundLocalError</span>("output");<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span> }
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_v_output);
-  __pyx_r = __pyx_v_output;
-  goto __pyx_L0;
-
-  __pyx_r = Py_None; <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None);
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_1);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_3);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_4);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_5);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_6);
-  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
-    <span class='pyx_c_api'>__Pyx_ErrFetch</span>(&__pyx_type, &__pyx_value, &__pyx_tb);
-    <span class='pyx_c_api'>__Pyx_SafeReleaseBuffer</span>(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
-  <span class='pyx_c_api'>__Pyx_ErrRestore</span>(__pyx_type, __pyx_value, __pyx_tb);}
-  <span class='pyx_c_api'>__Pyx_AddTraceback</span>("mar345_IO.compress_pck", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __pyx_r = NULL;
-  goto __pyx_L2;
-  __pyx_L0:;
-  <span class='pyx_c_api'>__Pyx_SafeReleaseBuffer</span>(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
-  __pyx_L2:;
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>((PyObject *)__pyx_v_data);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_fname);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_f);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_output);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGIVEREF</span></span>(__pyx_r);
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannyFinishContext</span></span>();
-  return __pyx_r;
-}
-
-/* Python wrapper */
-static PyObject *__pyx_pw_9mar345_IO_3uncompress_pck(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_9mar345_IO_2uncompress_pck[] = "\n    Unpack a mar345 compressed image\n    \n    @param raw: input string (bytes in python3)\n    @param dim1,dim2: optional parameters size\n    @param overflowPix: optional parameters: number of overflowed pixels \n    \n    @return : ndarray of 2D with the right size\n    ";
-static PyMethodDef __pyx_mdef_9mar345_IO_3uncompress_pck = {<span class='pyx_macro_api'>__Pyx_NAMESTR</span>("uncompress_pck"), (PyCFunction)__pyx_pw_9mar345_IO_3uncompress_pck, METH_VARARGS|METH_KEYWORDS, <span class='pyx_macro_api'>__Pyx_DOCSTR</span>(__pyx_doc_9mar345_IO_2uncompress_pck)};
-static PyObject *__pyx_pw_9mar345_IO_3uncompress_pck(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
-  PyObject *__pyx_v_raw = 0;
-  PyObject *__pyx_v_dim1 = 0;
-  PyObject *__pyx_v_dim2 = 0;
-  PyObject *__pyx_v_overflowPix = 0;
-  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__raw,&__pyx_n_s__dim1,&__pyx_n_s__dim2,&__pyx_n_s__overflowPix,0};
-  PyObject *__pyx_r = 0;
-  <span class='refnanny'>__Pyx_RefNannyDeclarations</span>
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannySetupContext</span></span>("uncompress_pck (wrapper)", 0);
-  __pyx_self = __pyx_self;
-  {
-    PyObject* values[4] = {0,0,0,0};
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line56")'> 56: </pre>
-<pre id='line56' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line57")'> 57: @cython.boundscheck(False)</pre>
-<pre id='line57' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF18' onclick='toggleDiv("line58")'> 58: def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None):</pre>
-<pre id='line58' class='code' style='background-color: #FFFF18'>
-    /* "mar345_IO.pyx":58
- * 
- * @cython.boundscheck(False)
- * def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     """
- *     Unpack a mar345 compressed image
- */
-    values[1] = ((PyObject *)Py_None);
-    values[2] = ((PyObject *)Py_None);
-    values[3] = ((PyObject *)Py_None);
-    if (unlikely(__pyx_kwds)) {
-      Py_ssize_t kw_args;
-      const Py_ssize_t pos_args = <span class='py_macro_api'>PyTuple_GET_SIZE</span>(__pyx_args);
-      switch (pos_args) {
-        case  4: values[3] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 3);
-        case  3: values[2] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 2);
-        case  2: values[1] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 1);
-        case  1: values[0] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 0);
-        case  0: break;
-        default: goto __pyx_L5_argtuple_error;
-      }
-      kw_args = <span class='py_c_api'>PyDict_Size</span>(__pyx_kwds);
-      switch (pos_args) {
-        case  0:
-        values[0] = <span class='py_c_api'>PyDict_GetItem</span>(__pyx_kwds, __pyx_n_s__raw);
-        if (likely(values[0])) kw_args--;
-        else goto __pyx_L5_argtuple_error;
-        case  1:
-        if (kw_args > 0) {
-          PyObject* value = <span class='py_c_api'>PyDict_GetItem</span>(__pyx_kwds, __pyx_n_s__dim1);
-          if (value) { values[1] = value; kw_args--; }
-        }
-        case  2:
-        if (kw_args > 0) {
-          PyObject* value = <span class='py_c_api'>PyDict_GetItem</span>(__pyx_kwds, __pyx_n_s__dim2);
-          if (value) { values[2] = value; kw_args--; }
-        }
-        case  3:
-        if (kw_args > 0) {
-          PyObject* value = <span class='py_c_api'>PyDict_GetItem</span>(__pyx_kwds, __pyx_n_s__overflowPix);
-          if (value) { values[3] = value; kw_args--; }
-        }
-      }
-      if (unlikely(kw_args > 0)) {
-        if (unlikely(<span class='pyx_c_api'>__Pyx_ParseOptionalKeywords</span>(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "uncompress_pck") <code><</code> 0))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L3_error;}</span>
-      }
-    } else {
-      switch (<span class='py_macro_api'>PyTuple_GET_SIZE</span>(__pyx_args)) {
-        case  4: values[3] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 3);
-        case  3: values[2] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 2);
-        case  2: values[1] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 1);
-        case  1: values[0] = <span class='py_macro_api'>PyTuple_GET_ITEM</span>(__pyx_args, 0);
-        break;
-        default: goto __pyx_L5_argtuple_error;
-      }
-    }
-    __pyx_v_raw = values[0];
-    __pyx_v_dim1 = values[1];
-    __pyx_v_dim2 = values[2];
-    __pyx_v_overflowPix = values[3];
-  }
-  goto __pyx_L4_argument_unpacking_done;
-  __pyx_L5_argtuple_error:;
-  <span class='pyx_c_api'>__Pyx_RaiseArgtupleInvalid</span>("uncompress_pck", 0, 1, 4, <span class='py_macro_api'>PyTuple_GET_SIZE</span>(__pyx_args));<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L3_error;}</span>
-  __pyx_L3_error:;
-  <span class='pyx_c_api'>__Pyx_AddTraceback</span>("mar345_IO.uncompress_pck", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannyFinishContext</span></span>();
-  return NULL;
-  __pyx_L4_argument_unpacking_done:;
-  if (unlikely(((PyObject *)__pyx_v_raw) == Py_None)) {
-    <span class='py_c_api'>PyErr_Format</span>(PyExc_TypeError, "Argument 'raw' must not be None");<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  }
-  __pyx_r = __pyx_pf_9mar345_IO_2uncompress_pck(__pyx_self, __pyx_v_raw, __pyx_v_dim1, __pyx_v_dim2, __pyx_v_overflowPix);
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  __pyx_r = NULL;
-  __pyx_L0:;
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannyFinishContext</span></span>();
-  return __pyx_r;
-}
-
-static PyObject *__pyx_pf_9mar345_IO_2uncompress_pck(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_raw, PyObject *__pyx_v_dim1, PyObject *__pyx_v_dim2, PyObject *__pyx_v_overflowPix) {
-  int __pyx_v_cdim1;
-  int __pyx_v_cdim2;
-  int __pyx_v_chigh;
-  PyObject *__pyx_v_end = NULL;
-  PyObject *__pyx_v_key1 = NULL;
-  PyObject *__pyx_v_key2 = NULL;
-  PyObject *__pyx_v_start = NULL;
-  PyObject *__pyx_v_key = NULL;
-  PyObject *__pyx_v_sizes = NULL;
-  PyObject *__pyx_v_hiLine = NULL;
-  PyObject *__pyx_v_word = NULL;
-  PyArrayObject *__pyx_v_data = 0;
-  char *__pyx_v_instream;
-  __Pyx_LocalBuf_ND __pyx_pybuffernd_data;
-  __Pyx_Buffer __pyx_pybuffer_data;
-  PyObject *__pyx_r = NULL;
-  <span class='refnanny'>__Pyx_RefNannyDeclarations</span>
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannySetupContext</span></span>("uncompress_pck", 0);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_v_raw);
-  __pyx_pybuffer_data.pybuffer.buf = NULL;
-  __pyx_pybuffer_data.refcount = 0;
-  __pyx_pybuffernd_data.data = NULL;
-  __pyx_pybuffernd_data.rcbuffer = &__pyx_pybuffer_data;
-
-  /* "mar345_IO.pyx":58
- * 
- * @cython.boundscheck(False)
- * def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     """
- *     Unpack a mar345 compressed image
- */
-  __pyx_k_tuple_34 = <span class='py_c_api'>PyTuple_New</span>(17);<span class='error_goto'> if (unlikely(!__pyx_k_tuple_34)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_k_tuple_34);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__raw));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 0, ((PyObject *)__pyx_n_s__raw));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__raw));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__dim1));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 1, ((PyObject *)__pyx_n_s__dim1));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__dim1));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__dim2));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 2, ((PyObject *)__pyx_n_s__dim2));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__dim2));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__overflowPix));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 3, ((PyObject *)__pyx_n_s__overflowPix));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__overflowPix));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__cdim1));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 4, ((PyObject *)__pyx_n_s__cdim1));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__cdim1));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__cdim2));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 5, ((PyObject *)__pyx_n_s__cdim2));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__cdim2));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__chigh));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 6, ((PyObject *)__pyx_n_s__chigh));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__chigh));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__end));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 7, ((PyObject *)__pyx_n_s__end));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__end));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__key1));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 8, ((PyObject *)__pyx_n_s__key1));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__key1));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__key2));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 9, ((PyObject *)__pyx_n_s__key2));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__key2));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__start));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 10, ((PyObject *)__pyx_n_s__start));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__start));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__key));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 11, ((PyObject *)__pyx_n_s__key));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__key));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__sizes));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 12, ((PyObject *)__pyx_n_s__sizes));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__sizes));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__hiLine));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 13, ((PyObject *)__pyx_n_s__hiLine));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__hiLine));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__word));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 14, ((PyObject *)__pyx_n_s__word));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__word));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__data));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 15, ((PyObject *)__pyx_n_s__data));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__data));
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__instream));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_34, 16, ((PyObject *)__pyx_n_s__instream));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__instream));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_k_tuple_34));
-
-  /* "mar345_IO.pyx":58
- * 
- * @cython.boundscheck(False)
- * def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None):             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     """
- *     Unpack a mar345 compressed image
- */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_9mar345_IO_3uncompress_pck, NULL, __pyx_n_s__mar345_IO);<span class='error_goto'> if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_1);
-  if (<span class='py_c_api'>PyObject_SetAttr</span>(__pyx_m, __pyx_n_s__uncompress_pck, __pyx_t_1) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_1); __pyx_t_1 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line59")'> 59:     """</pre>
-<pre id='line59' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line60")'> 60:     Unpack a mar345 compressed image</pre>
-<pre id='line60' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line61")'> 61: </pre>
-<pre id='line61' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line62")'> 62:     @param raw: input string (bytes in python3)</pre>
-<pre id='line62' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line63")'> 63:     @param dim1,dim2: optional parameters size</pre>
-<pre id='line63' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line64")'> 64:     @param overflowPix: optional parameters: number of overflowed pixels</pre>
-<pre id='line64' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line65")'> 65: </pre>
-<pre id='line65' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line66")'> 66:     @return : ndarray of 2D with the right size</pre>
-<pre id='line66' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line67")'> 67:     """</pre>
-<pre id='line67' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line68")'> 68:     cdef int cdim1, cdim2, chigh</pre>
-<pre id='line68' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFFe7' onclick='toggleDiv("line69")'> 69:     end=None</pre>
-<pre id='line69' class='code' style='background-color: #FFFFe7'>
-  /* "mar345_IO.pyx":69
- *     """
- *     cdef int cdim1, cdim2, chigh
- *     end=None             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     if dim1 is None or dim2 is None:
- *         key1 = "CCP4 packed image, X: "
- */
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None);
-  __pyx_v_end = Py_None;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line70")'> 70:     if dim1 is None or dim2 is None:</pre>
-<pre id='line70' class='code' style='background-color: #FFFFff'>
-  /* "mar345_IO.pyx":70
- *     cdef int cdim1, cdim2, chigh
- *     end=None
- *     if dim1 is None or dim2 is None:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         key1 = "CCP4 packed image, X: "
- *         key2 = "CCP4 packed image V2, X: "
- */
-  __pyx_t_1 = (__pyx_v_dim1 == Py_None);
-  if (!__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_dim2 == Py_None);
-    __pyx_t_3 = __pyx_t_2;
-  } else {
-    __pyx_t_3 = __pyx_t_1;
-  }
-  if (__pyx_t_3) {
-</pre><pre class='line' style='background-color: #FFFFe7' onclick='toggleDiv("line71")'> 71:         key1 = "CCP4 packed image, X: "</pre>
-<pre id='line71' class='code' style='background-color: #FFFFe7'>
-    /* "mar345_IO.pyx":71
- *     end=None
- *     if dim1 is None or dim2 is None:
- *         key1 = "CCP4 packed image, X: "             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         key2 = "CCP4 packed image V2, X: "
- *         start = raw.find(key2)
- */
-    <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_kp_s_4));
-    __pyx_v_key1 = ((PyObject *)__pyx_kp_s_4);
-</pre><pre class='line' style='background-color: #FFFFe7' onclick='toggleDiv("line72")'> 72:         key2 = "CCP4 packed image V2, X: "</pre>
-<pre id='line72' class='code' style='background-color: #FFFFe7'>
-    /* "mar345_IO.pyx":72
- *     if dim1 is None or dim2 is None:
- *         key1 = "CCP4 packed image, X: "
- *         key2 = "CCP4 packed image V2, X: "             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         start = raw.find(key2)
- *         key = key2
- */
-    <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_kp_s_5));
-    __pyx_v_key2 = ((PyObject *)__pyx_kp_s_5);
-</pre><pre class='line' style='background-color: #FFFF57' onclick='toggleDiv("line73")'> 73:         start = raw.find(key2)</pre>
-<pre id='line73' class='code' style='background-color: #FFFF57'>
-    /* "mar345_IO.pyx":73
- *         key1 = "CCP4 packed image, X: "
- *         key2 = "CCP4 packed image V2, X: "
- *         start = raw.find(key2)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         key = key2
- *         if start == -1:
- */
-    __pyx_t_4 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_raw, __pyx_n_s__find);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    __pyx_t_5 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_v_key2);
-    <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_5, 0, __pyx_v_key2);
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_v_key2);
-    __pyx_t_6 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __pyx_v_start = __pyx_t_6;
-    __pyx_t_6 = 0;
-</pre><pre class='line' style='background-color: #FFFFe7' onclick='toggleDiv("line74")'> 74:         key = key2</pre>
-<pre id='line74' class='code' style='background-color: #FFFFe7'>
-    /* "mar345_IO.pyx":74
- *         key2 = "CCP4 packed image V2, X: "
- *         start = raw.find(key2)
- *         key = key2             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         if start == -1:
- *             start = raw.find(key1)
- */
-    <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_v_key2);
-    __pyx_v_key = __pyx_v_key2;
-</pre><pre class='line' style='background-color: #FFFF79' onclick='toggleDiv("line75")'> 75:         if start == -1:</pre>
-<pre id='line75' class='code' style='background-color: #FFFF79'>
-    /* "mar345_IO.pyx":75
- *         start = raw.find(key2)
- *         key = key2
- *         if start == -1:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *             start = raw.find(key1)
- *             key = key1
- */
-    __pyx_t_6 = <span class='py_c_api'>PyObject_RichCompare</span>(__pyx_v_start, __pyx_int_neg_1, Py_EQ);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-    __pyx_t_3 = __Pyx_<span class='py_c_api'>PyObject_IsTrue</span>(__pyx_t_6);<span class='error_goto'> if (unlikely(__pyx_t_3 <code><</code> 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-    if (__pyx_t_3) {
-</pre><pre class='line' style='background-color: #FFFF55' onclick='toggleDiv("line76")'> 76:             start = raw.find(key1)</pre>
-<pre id='line76' class='code' style='background-color: #FFFF55'>
-      /* "mar345_IO.pyx":76
- *         key = key2
- *         if start == -1:
- *             start = raw.find(key1)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *             key = key1
- *         start = raw.index(key) + len(key)
- */
-      __pyx_t_6 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_raw, __pyx_n_s__find);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-      __pyx_t_5 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-      <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_v_key1);
-      <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_5, 0, __pyx_v_key1);
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_v_key1);
-      __pyx_t_4 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-      <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-      <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_v_start);
-      __pyx_v_start = __pyx_t_4;
-      __pyx_t_4 = 0;
-</pre><pre class='line' style='background-color: #FFFFd4' onclick='toggleDiv("line77")'> 77:             key = key1</pre>
-<pre id='line77' class='code' style='background-color: #FFFFd4'>
-      /* "mar345_IO.pyx":77
- *         if start == -1:
- *             start = raw.find(key1)
- *             key = key1             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         start = raw.index(key) + len(key)
- *         sizes = raw[start:start + 13]
- */
-      <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_v_key1);
-      <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_v_key);
-      __pyx_v_key = __pyx_v_key1;
-      goto __pyx_L4;
-    }
-    __pyx_L4:;
-</pre><pre class='line' style='background-color: #FFFF36' onclick='toggleDiv("line78")'> 78:         start = raw.index(key) + len(key)</pre>
-<pre id='line78' class='code' style='background-color: #FFFF36'>
-    /* "mar345_IO.pyx":78
- *             start = raw.find(key1)
- *             key = key1
- *         start = raw.index(key) + len(key)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         sizes = raw[start:start + 13]
- *         cdim1 = <code><</code> int > int(sizes[:4])
- */
-    __pyx_t_4 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_raw, __pyx_n_s__index);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    __pyx_t_5 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    <span class='pyx_macro_api'>__Pyx_INCREF</span>(__pyx_v_key);
-    <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_5, 0, __pyx_v_key);
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_v_key);
-    __pyx_t_6 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __pyx_t_7 = <span class='py_c_api'>PyObject_Length</span>(__pyx_v_key);<span class='error_goto'> if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_t_5 = <span class='py_c_api'>PyInt_FromSsize_t</span>(__pyx_t_7);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    __pyx_t_4 = <span class='py_c_api'>PyNumber_Add</span>(__pyx_t_6, __pyx_t_5);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_6); __pyx_t_6 = 0;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_v_start);
-    __pyx_v_start = __pyx_t_4;
-    __pyx_t_4 = 0;
-</pre><pre class='line' style='background-color: #FFFF3e' onclick='toggleDiv("line79")'> 79:         sizes = raw[start:start + 13]</pre>
-<pre id='line79' class='code' style='background-color: #FFFF3e'>
-    /* "mar345_IO.pyx":79
- *             key = key1
- *         start = raw.index(key) + len(key)
- *         sizes = raw[start:start + 13]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         cdim1 = <code><</code> int > int(sizes[:4])
- *         cdim2 = <code><</code> int > int(sizes[-4:])
- */
-    __pyx_t_7 = __Pyx_<span class='py_c_api'>PyIndex_AsSsize_t</span>(__pyx_v_start);<span class='error_goto'> if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_t_4 = <span class='py_c_api'>PyNumber_Add</span>(__pyx_v_start, __pyx_int_13);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    __pyx_t_8 = __Pyx_<span class='py_c_api'>PyIndex_AsSsize_t</span>(__pyx_t_4);<span class='error_goto'> if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_t_4 = __Pyx_<span class='py_c_api'>PySequence_GetSlice</span>(__pyx_v_raw, __pyx_t_7, __pyx_t_8);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    __pyx_v_sizes = __pyx_t_4;
-    __pyx_t_4 = 0;
-</pre><pre class='line' style='background-color: #FFFF43' onclick='toggleDiv("line80")'> 80:         cdim1 = < int > int(sizes[:4])</pre>
-<pre id='line80' class='code' style='background-color: #FFFF43'>
-    /* "mar345_IO.pyx":80
- *         start = raw.index(key) + len(key)
- *         sizes = raw[start:start + 13]
- *         cdim1 = <code><</code> int > int(sizes[:4])             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         cdim2 = <code><</code> int > int(sizes[-4:])
- *     else:
- */
-    __pyx_t_4 = __Pyx_<span class='py_c_api'>PySequence_GetSlice</span>(__pyx_v_sizes, 0, 4);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    __pyx_t_5 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_5, 0, __pyx_t_4);
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_4);
-    __pyx_t_4 = 0;
-    __pyx_t_4 = <span class='py_c_api'>PyObject_Call</span>(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_5), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __pyx_t_9 = __Pyx_<span class='py_c_api'>PyInt_AsInt</span>(__pyx_t_4);<span class='error_goto'> if (unlikely((__pyx_t_9 == (int)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_v_cdim1 = ((int)__pyx_t_9);
-</pre><pre class='line' style='background-color: #FFFF43' onclick='toggleDiv("line81")'> 81:         cdim2 = < int > int(sizes[-4:])</pre>
-<pre id='line81' class='code' style='background-color: #FFFF43'>
-    /* "mar345_IO.pyx":81
- *         sizes = raw[start:start + 13]
- *         cdim1 = <code><</code> int > int(sizes[:4])
- *         cdim2 = <code><</code> int > int(sizes[-4:])             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     else:
- *         cdim1 = <code><</code> int > dim1
- */
-    __pyx_t_4 = __Pyx_<span class='py_c_api'>PySequence_GetSlice</span>(__pyx_v_sizes, -4, PY_SSIZE_T_MAX);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    __pyx_t_5 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_5, 0, __pyx_t_4);
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_4);
-    __pyx_t_4 = 0;
-    __pyx_t_4 = <span class='py_c_api'>PyObject_Call</span>(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_5), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __pyx_t_9 = __Pyx_<span class='py_c_api'>PyInt_AsInt</span>(__pyx_t_4);<span class='error_goto'> if (unlikely((__pyx_t_9 == (int)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_v_cdim2 = ((int)__pyx_t_9);
-    goto __pyx_L3;
-  }
-  /*else*/ {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line82")'> 82:     else:</pre>
-<pre id='line82' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF7f' onclick='toggleDiv("line83")'> 83:         cdim1 = < int > dim1</pre>
-<pre id='line83' class='code' style='background-color: #FFFF7f'>
-    /* "mar345_IO.pyx":83
- *         cdim2 = <code><</code> int > int(sizes[-4:])
- *     else:
- *         cdim1 = <code><</code> int > dim1             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         cdim2 = <code><</code> int > dim2
- *     if overflowPix is None:
- */
-    __pyx_t_9 = __Pyx_<span class='py_c_api'>PyInt_AsInt</span>(__pyx_v_dim1);<span class='error_goto'> if (unlikely((__pyx_t_9 == (int)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_v_cdim1 = ((int)__pyx_t_9);
-</pre><pre class='line' style='background-color: #FFFF7f' onclick='toggleDiv("line84")'> 84:         cdim2 = < int > dim2</pre>
-<pre id='line84' class='code' style='background-color: #FFFF7f'>
-    /* "mar345_IO.pyx":84
- *     else:
- *         cdim1 = <code><</code> int > dim1
- *         cdim2 = <code><</code> int > dim2             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     if overflowPix is None:
- *         end = raw.find("END OF HEADER")
- */
-    __pyx_t_9 = __Pyx_<span class='py_c_api'>PyInt_AsInt</span>(__pyx_v_dim2);<span class='error_goto'> if (unlikely((__pyx_t_9 == (int)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_v_cdim2 = ((int)__pyx_t_9);
-  }
-  __pyx_L3:;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line85")'> 85:     if overflowPix is None:</pre>
-<pre id='line85' class='code' style='background-color: #FFFFff'>
-  /* "mar345_IO.pyx":85
- *         cdim1 = <code><</code> int > dim1
- *         cdim2 = <code><</code> int > dim2
- *     if overflowPix is None:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         end = raw.find("END OF HEADER")
- *         start = raw[:end].find("HIGH")
- */
-  __pyx_t_3 = (__pyx_v_overflowPix == Py_None);
-  if (__pyx_t_3) {
-</pre><pre class='line' style='background-color: #FFFF57' onclick='toggleDiv("line86")'> 86:         end = raw.find("END OF HEADER")</pre>
-<pre id='line86' class='code' style='background-color: #FFFF57'>
-    /* "mar345_IO.pyx":86
- *         cdim2 = <code><</code> int > dim2
- *     if overflowPix is None:
- *         end = raw.find("END OF HEADER")             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         start = raw[:end].find("HIGH")
- *         hiLine = raw[start:end]
- */
-    __pyx_t_4 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_raw, __pyx_n_s__find);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    __pyx_t_5 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_4, ((PyObject *)__pyx_k_tuple_7), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_v_end);
-    __pyx_v_end = __pyx_t_5;
-    __pyx_t_5 = 0;
-
-  /* "mar345_IO.pyx":86
- *         cdim2 = <code><</code> int > dim2
- *     if overflowPix is None:
- *         end = raw.find("END OF HEADER")             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         start = raw[:end].find("HIGH")
- *         hiLine = raw[start:end]
- */
-  __pyx_k_tuple_7 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_k_tuple_7);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_kp_s_6));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_7, 0, ((PyObject *)__pyx_kp_s_6));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_kp_s_6));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_k_tuple_7));
-</pre><pre class='line' style='background-color: #FFFF38' onclick='toggleDiv("line87")'> 87:         start = raw[:end].find("HIGH")</pre>
-<pre id='line87' class='code' style='background-color: #FFFF38'>
-    /* "mar345_IO.pyx":87
- *     if overflowPix is None:
- *         end = raw.find("END OF HEADER")
- *         start = raw[:end].find("HIGH")             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         hiLine = raw[start:end]
- *         hiLine = hiLine.split("\n")[0]
- */
-    __pyx_t_8 = __Pyx_<span class='py_c_api'>PyIndex_AsSsize_t</span>(__pyx_v_end);<span class='error_goto'> if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_t_5 = __Pyx_<span class='py_c_api'>PySequence_GetSlice</span>(__pyx_v_raw, 0, __pyx_t_8);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    __pyx_t_4 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_5, __pyx_n_s__find);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_5 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_4, ((PyObject *)__pyx_k_tuple_8), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-    <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_start);
-    __pyx_v_start = __pyx_t_5;
-    __pyx_t_5 = 0;
-
-  /* "mar345_IO.pyx":87
- *     if overflowPix is None:
- *         end = raw.find("END OF HEADER")
- *         start = raw[:end].find("HIGH")             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         hiLine = raw[start:end]
- *         hiLine = hiLine.split("\n")[0]
- */
-  __pyx_k_tuple_8 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_k_tuple_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_k_tuple_8);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_n_s__HIGH));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_8, 0, ((PyObject *)__pyx_n_s__HIGH));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_n_s__HIGH));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_k_tuple_8));
-</pre><pre class='line' style='background-color: #FFFF48' onclick='toggleDiv("line88")'> 88:         hiLine = raw[start:end]</pre>
-<pre id='line88' class='code' style='background-color: #FFFF48'>
-    /* "mar345_IO.pyx":88
- *         end = raw.find("END OF HEADER")
- *         start = raw[:end].find("HIGH")
- *         hiLine = raw[start:end]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         hiLine = hiLine.split("\n")[0]
- *         word = hiLine.split()
- */
-    __pyx_t_8 = __Pyx_<span class='py_c_api'>PyIndex_AsSsize_t</span>(__pyx_v_start);<span class='error_goto'> if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_t_7 = __Pyx_<span class='py_c_api'>PyIndex_AsSsize_t</span>(__pyx_v_end);<span class='error_goto'> if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_t_5 = __Pyx_<span class='py_c_api'>PySequence_GetSlice</span>(__pyx_v_raw, __pyx_t_8, __pyx_t_7);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    __pyx_v_hiLine = __pyx_t_5;
-    __pyx_t_5 = 0;
-</pre><pre class='line' style='background-color: #FFFF4f' onclick='toggleDiv("line89")'> 89:         hiLine = hiLine.split("\n")[0]</pre>
-<pre id='line89' class='code' style='background-color: #FFFF4f'>
-    /* "mar345_IO.pyx":89
- *         start = raw[:end].find("HIGH")
- *         hiLine = raw[start:end]
- *         hiLine = hiLine.split("\n")[0]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         word = hiLine.split()
- *         if len(word) > 1:
- */
-    __pyx_t_5 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_hiLine, __pyx_n_s__split);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    __pyx_t_4 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_5, ((PyObject *)__pyx_k_tuple_10), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_5 = <span class='pyx_c_api'>__Pyx_GetItemInt</span>(__pyx_t_4, 0, sizeof(long), PyInt_FromLong);<span class='error_goto'> if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_v_hiLine);
-    __pyx_v_hiLine = __pyx_t_5;
-    __pyx_t_5 = 0;
-
-  /* "mar345_IO.pyx":89
- *         start = raw[:end].find("HIGH")
- *         hiLine = raw[start:end]
- *         hiLine = hiLine.split("\n")[0]             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         word = hiLine.split()
- *         if len(word) > 1:
- */
-  __pyx_k_tuple_10 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_k_tuple_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_k_tuple_10);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_kp_s_9));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_10, 0, ((PyObject *)__pyx_kp_s_9));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_kp_s_9));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_k_tuple_10));
-</pre><pre class='line' style='background-color: #FFFF79' onclick='toggleDiv("line90")'> 90:         word = hiLine.split()</pre>
-<pre id='line90' class='code' style='background-color: #FFFF79'>
-    /* "mar345_IO.pyx":90
- *         hiLine = raw[start:end]
- *         hiLine = hiLine.split("\n")[0]
- *         word = hiLine.split()             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         if len(word) > 1:
- *             chigh = int(word[1])
- */
-    __pyx_t_5 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_hiLine, __pyx_n_s__split);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-    __pyx_t_4 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_v_word = __pyx_t_4;
-    __pyx_t_4 = 0;
-</pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line91")'> 91:         if len(word) > 1:</pre>
-<pre id='line91' class='code' style='background-color: #FFFFaa'>
-    /* "mar345_IO.pyx":91
- *         hiLine = hiLine.split("\n")[0]
- *         word = hiLine.split()
- *         if len(word) > 1:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *             chigh = int(word[1])
- *         else:
- */
-    __pyx_t_7 = <span class='py_c_api'>PyObject_Length</span>(__pyx_v_word);<span class='error_goto'> if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_t_3 = (__pyx_t_7 > 1);
-    if (__pyx_t_3) {
-</pre><pre class='line' style='background-color: #FFFF48' onclick='toggleDiv("line92")'> 92:             chigh = int(word[1])</pre>
-<pre id='line92' class='code' style='background-color: #FFFF48'>
-      /* "mar345_IO.pyx":92
- *         word = hiLine.split()
- *         if len(word) > 1:
- *             chigh = int(word[1])             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         else:
- *             print("Error while looking for overflowed pixels in line %s" % hiLine.strip())
- */
-      __pyx_t_4 = <span class='pyx_c_api'>__Pyx_GetItemInt</span>(__pyx_v_word, 1, sizeof(long), PyInt_FromLong);<span class='error_goto'> if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-      __pyx_t_5 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-      <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_5, 0, __pyx_t_4);
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_4);
-      __pyx_t_4 = 0;
-      __pyx_t_4 = <span class='py_c_api'>PyObject_Call</span>(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_5), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-      <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __pyx_t_9 = __Pyx_<span class='py_c_api'>PyInt_AsInt</span>(__pyx_t_4);<span class='error_goto'> if (unlikely((__pyx_t_9 == (int)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_v_chigh = __pyx_t_9;
-      goto __pyx_L6;
-    }
-    /*else*/ {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line93")'> 93:         else:</pre>
-<pre id='line93' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF55' onclick='toggleDiv("line94")'> 94:             print("Error while looking for overflowed pixels in line %s" % hiLine.strip())</pre>
-<pre id='line94' class='code' style='background-color: #FFFF55'>
-      /* "mar345_IO.pyx":94
- *             chigh = int(word[1])
- *         else:
- *             print("Error while looking for overflowed pixels in line %s" % hiLine.strip())             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *             chigh = 0
- *     else:
- */
-      __pyx_t_4 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_hiLine, __pyx_n_s__strip);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-      __pyx_t_5 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-      <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_t_4 = <span class='py_c_api'>PyNumber_Remainder</span>(((PyObject *)__pyx_kp_s_11), __pyx_t_5);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(((PyObject *)__pyx_t_4));
-      <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-      if (<span class='pyx_c_api'>__Pyx_PrintOne</span>(0, ((PyObject *)__pyx_t_4)) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-      <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line95")'> 95:             chigh = 0</pre>
-<pre id='line95' class='code' style='background-color: #FFFFff'>
-      /* "mar345_IO.pyx":95
- *         else:
- *             print("Error while looking for overflowed pixels in line %s" % hiLine.strip())
- *             chigh = 0             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     else:
- *         chigh = <code><</code> int > overflowPix
- */
-      __pyx_v_chigh = 0;
-    }
-    __pyx_L6:;
-    goto __pyx_L5;
-  }
-  /*else*/ {
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line96")'> 96:     else:</pre>
-<pre id='line96' class='code' style='background-color: #FFFFff'></pre><pre class='line' style='background-color: #FFFF7f' onclick='toggleDiv("line97")'> 97:         chigh = < int > overflowPix</pre>
-<pre id='line97' class='code' style='background-color: #FFFF7f'>
-    /* "mar345_IO.pyx":97
- *             chigh = 0
- *     else:
- *         chigh = <code><</code> int > overflowPix             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)
- *     if not end:
- */
-    __pyx_t_9 = __Pyx_<span class='py_c_api'>PyInt_AsInt</span>(__pyx_v_overflowPix);<span class='error_goto'> if (unlikely((__pyx_t_9 == (int)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    __pyx_v_chigh = ((int)__pyx_t_9);
-  }
-  __pyx_L5:;
-</pre><pre class='line' style='background-color: #FFFF22' onclick='toggleDiv("line98")'> 98:     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)</pre>
-<pre id='line98' class='code' style='background-color: #FFFF22'>
-  /* "mar345_IO.pyx":98
- *     else:
- *         chigh = <code><</code> int > overflowPix
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     if not end:
- *         end = raw.find("END OF HEADER")
- */
-  __pyx_t_4 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__numpy);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  __pyx_t_5 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_4, __pyx_n_s__zeros);<span class='error_goto'> if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_5);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = <span class='py_c_api'>PyInt_FromLong</span>(__pyx_v_cdim2);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  __pyx_t_6 = <span class='py_c_api'>PyInt_FromLong</span>(__pyx_v_cdim1);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-  __pyx_t_10 = <span class='py_c_api'>PyTuple_New</span>(2);<span class='error_goto'> if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_10);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_10, 0, __pyx_t_4);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_4);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_10, 1, __pyx_t_6);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(__pyx_t_6);
-  __pyx_t_4 = 0;
-  __pyx_t_6 = 0;
-  __pyx_t_6 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_6);
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_t_6, 0, ((PyObject *)__pyx_t_10));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_t_10));
-  __pyx_t_10 = 0;
-  __pyx_t_10 = <span class='py_c_api'>PyDict_New</span>();<span class='error_goto'> if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(((PyObject *)__pyx_t_10));
-  __pyx_t_4 = <span class='pyx_c_api'>__Pyx_GetName</span>(__pyx_m, __pyx_n_s__numpy);<span class='error_goto'> if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_4);
-  __pyx_t_11 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_4, __pyx_n_s__uint32);<span class='error_goto'> if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_11);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_4); __pyx_t_4 = 0;
-  if (<span class='py_c_api'>PyDict_SetItem</span>(__pyx_t_10, ((PyObject *)__pyx_n_s__dtype), __pyx_t_11) <code><</code> 0)<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_11); __pyx_t_11 = 0;
-  __pyx_t_11 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_5, ((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_10));<span class='error_goto'> if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_11);
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_5); __pyx_t_5 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
-  if (!(likely(((__pyx_t_11) == Py_None) || likely(<span class='pyx_c_api'>__Pyx_TypeTest</span>(__pyx_t_11, __pyx_ptype_5numpy_ndarray)))))<span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  __pyx_t_12 = ((PyArrayObject *)__pyx_t_11);
-  {
-    __Pyx_BufFmt_StackElem __pyx_stack[1];
-    if (unlikely(<span class='pyx_c_api'>__Pyx_GetBufferAndValidate</span>(&__pyx_pybuffernd_data.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
-      __pyx_v_data = ((PyArrayObject *)Py_None); <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None); __pyx_pybuffernd_data.rcbuffer->pybuffer.buf = NULL;
-     <span class='error_goto'> {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    } else {__pyx_pybuffernd_data.diminfo[0].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_data.diminfo[0].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_data.diminfo[1].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_data.diminfo[1].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[1];
-    }
-  }
-  __pyx_t_12 = 0;
-  __pyx_v_data = ((PyArrayObject *)__pyx_t_11);
-  __pyx_t_11 = 0;
-</pre><pre class='line' style='background-color: #FFFFaa' onclick='toggleDiv("line99")'> 99:     if not end:</pre>
-<pre id='line99' class='code' style='background-color: #FFFFaa'>
-  /* "mar345_IO.pyx":99
- *         chigh = <code><</code> int > overflowPix
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)
- *     if not end:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         end = raw.find("END OF HEADER")
- *     if end !=-1:
- */
-  __pyx_t_3 = __Pyx_<span class='py_c_api'>PyObject_IsTrue</span>(__pyx_v_end);<span class='error_goto'> if (unlikely(__pyx_t_3 <code><</code> 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  __pyx_t_1 = (!__pyx_t_3);
-  if (__pyx_t_1) {
-</pre><pre class='line' style='background-color: #FFFF57' onclick='toggleDiv("line100")'> 100:         end = raw.find("END OF HEADER")</pre>
-<pre id='line100' class='code' style='background-color: #FFFF57'>
-    /* "mar345_IO.pyx":100
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)
- *     if not end:
- *         end = raw.find("END OF HEADER")             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     if end !=-1:
- *         raw = raw[end+14:].lstrip()
- */
-    __pyx_t_11 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_v_raw, __pyx_n_s__find);<span class='error_goto'> if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_11);
-    __pyx_t_10 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_11, ((PyObject *)__pyx_k_tuple_12), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_10);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_11); __pyx_t_11 = 0;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_v_end);
-    __pyx_v_end = __pyx_t_10;
-    __pyx_t_10 = 0;
-    goto __pyx_L7;
-  }
-  __pyx_L7:;
-
-  /* "mar345_IO.pyx":100
- *     cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)
- *     if not end:
- *         end = raw.find("END OF HEADER")             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     if end !=-1:
- *         raw = raw[end+14:].lstrip()
- */
-  __pyx_k_tuple_12 = <span class='py_c_api'>PyTuple_New</span>(1);<span class='error_goto'> if (unlikely(!__pyx_k_tuple_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_k_tuple_12);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_kp_s_6));
-  <span class='py_macro_api'>PyTuple_SET_ITEM</span>(__pyx_k_tuple_12, 0, ((PyObject *)__pyx_kp_s_6));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_kp_s_6));
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GIVEREF</span></span>(((PyObject *)__pyx_k_tuple_12));
-</pre><pre class='line' style='background-color: #FFFF79' onclick='toggleDiv("line101")'> 101:     if end !=-1:</pre>
-<pre id='line101' class='code' style='background-color: #FFFF79'>
-  /* "mar345_IO.pyx":101
- *     if not end:
- *         end = raw.find("END OF HEADER")
- *     if end !=-1:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         raw = raw[end+14:].lstrip()
- *     cdef char* instream = <code><</code>char*> raw
- */
-  __pyx_t_10 = <span class='py_c_api'>PyObject_RichCompare</span>(__pyx_v_end, __pyx_int_neg_1, Py_NE);<span class='error_goto'> if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_10);
-  __pyx_t_1 = __Pyx_<span class='py_c_api'>PyObject_IsTrue</span>(__pyx_t_10);<span class='error_goto'> if (unlikely(__pyx_t_1 <code><</code> 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_10); __pyx_t_10 = 0;
-  if (__pyx_t_1) {
-</pre><pre class='line' style='background-color: #FFFF39' onclick='toggleDiv("line102")'> 102:         raw = raw[end+14:].lstrip()</pre>
-<pre id='line102' class='code' style='background-color: #FFFF39'>
-    /* "mar345_IO.pyx":102
- *         end = raw.find("END OF HEADER")
- *     if end !=-1:
- *         raw = raw[end+14:].lstrip()             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     cdef char* instream = <code><</code>char*> raw
- *     with nogil:
- */
-    __pyx_t_10 = <span class='py_c_api'>PyNumber_Add</span>(__pyx_v_end, __pyx_int_14);<span class='error_goto'> if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_10);
-    __pyx_t_7 = __Pyx_<span class='py_c_api'>PyIndex_AsSsize_t</span>(__pyx_t_10);<span class='error_goto'> if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_10); __pyx_t_10 = 0;
-    __pyx_t_10 = __Pyx_<span class='py_c_api'>PySequence_GetSlice</span>(__pyx_v_raw, __pyx_t_7, PY_SSIZE_T_MAX);<span class='error_goto'> if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_10);
-    __pyx_t_11 = <span class='py_c_api'>PyObject_GetAttr</span>(__pyx_t_10, __pyx_n_s__lstrip);<span class='error_goto'> if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_11);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_10); __pyx_t_10 = 0;
-    __pyx_t_10 = <span class='py_c_api'>PyObject_Call</span>(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL);<span class='error_goto'> if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-    <span class='pyx_macro_api'><span class='refnanny'>__Pyx_GOTREF</span></span>(__pyx_t_10);
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_11); __pyx_t_11 = 0;
-    <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_v_raw);
-    __pyx_v_raw = __pyx_t_10;
-    __pyx_t_10 = 0;
-    goto __pyx_L8;
-  }
-  __pyx_L8:;
-</pre><pre class='line' style='background-color: #FFFF7f' onclick='toggleDiv("line103")'> 103:     cdef char* instream = <char*> raw</pre>
-<pre id='line103' class='code' style='background-color: #FFFF7f'>
-  /* "mar345_IO.pyx":103
- *     if end !=-1:
- *         raw = raw[end+14:].lstrip()
- *     cdef char* instream = <code><</code>char*> raw             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     with nogil:
- *         data.data = <code><</code>char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)
- */
-  __pyx_t_13 = <span class='py_c_api'>PyBytes_AsString</span>(__pyx_v_raw);<span class='error_goto'> if (unlikely((!__pyx_t_13) && <span class='py_c_api'>PyErr_Occurred</span>())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}</span>
-  __pyx_v_instream = ((char *)__pyx_t_13);
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line104")'> 104:     with nogil:</pre>
-<pre id='line104' class='code' style='background-color: #FFFFff'>
-  /* "mar345_IO.pyx":104
- *         raw = raw[end+14:].lstrip()
- *     cdef char* instream = <code><</code>char*> raw
- *     with nogil:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         data.data = <code><</code>char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)
- *     return data
- */
-  {
-      #ifdef WITH_THREAD
-      PyThreadState *_save = NULL;
-      #endif
-      Py_UNBLOCK_THREADS
-      /*try:*/ {
-
-      /* "mar345_IO.pyx":104
- *         raw = raw[end+14:].lstrip()
- *     cdef char* instream = <code><</code>char*> raw
- *     with nogil:             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *         data.data = <code><</code>char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)
- *     return data
- */
-      /*finally:*/ {
-        Py_BLOCK_THREADS
-      }
-  }
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line105")'> 105:         data.data = <char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)</pre>
-<pre id='line105' class='code' style='background-color: #FFFFff'>
-        /* "mar345_IO.pyx":105
- *     cdef char* instream = <code><</code>char*> raw
- *     with nogil:
- *         data.data = <code><</code>char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- *     return data
- * 
- */
-        __pyx_v_data->data = ((char *)mar345_read_data_string(__pyx_v_instream, __pyx_v_chigh, __pyx_v_cdim1, __pyx_v_cdim2));
-      }
-</pre><pre class='line' style='background-color: #FFFF3f' onclick='toggleDiv("line106")'> 106:     return data</pre>
-<pre id='line106' class='code' style='background-color: #FFFF3f'>
-  /* "mar345_IO.pyx":106
- *     with nogil:
- *         data.data = <code><</code>char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)
- *     return data             # <code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code><code><</code>
- * 
- */
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_r);
-  <span class='pyx_macro_api'>__Pyx_INCREF</span>(((PyObject *)__pyx_v_data));
-  __pyx_r = ((PyObject *)__pyx_v_data);
-  goto __pyx_L0;
-
-  __pyx_r = Py_None; <span class='pyx_macro_api'>__Pyx_INCREF</span>(Py_None);
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_4);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_5);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_6);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_10);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_t_11);
-  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
-    <span class='pyx_c_api'>__Pyx_ErrFetch</span>(&__pyx_type, &__pyx_value, &__pyx_tb);
-    <span class='pyx_c_api'>__Pyx_SafeReleaseBuffer</span>(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
-  <span class='pyx_c_api'>__Pyx_ErrRestore</span>(__pyx_type, __pyx_value, __pyx_tb);}
-  <span class='pyx_c_api'>__Pyx_AddTraceback</span>("mar345_IO.uncompress_pck", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __pyx_r = NULL;
-  goto __pyx_L2;
-  __pyx_L0:;
-  <span class='pyx_c_api'>__Pyx_SafeReleaseBuffer</span>(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
-  __pyx_L2:;
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_end);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_key1);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_key2);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_start);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_key);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_sizes);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_hiLine);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_word);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>((PyObject *)__pyx_v_data);
-  <span class='pyx_macro_api'>__Pyx_XDECREF</span>(__pyx_v_raw);
-  <span class='pyx_macro_api'><span class='refnanny'>__Pyx_XGIVEREF</span></span>(__pyx_r);
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannyFinishContext</span></span>();
-  return __pyx_r;
-}
-
-/* Python wrapper */
-static int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
-static int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
-  int __pyx_r;
-  <span class='refnanny'>__Pyx_RefNannyDeclarations</span>
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannySetupContext</span></span>("__getbuffer__ (wrapper)", 0);
-  __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
-  <span class='pyx_c_api'><span class='refnanny'>__Pyx_RefNannyFinishContext</span></span>();
-  return __pyx_r;
-}
-</pre><pre class='line' style='background-color: #FFFFff' onclick='toggleDiv("line107")'> 107: </pre>
-<pre id='line107' class='code' style='background-color: #FFFFff'></pre></body></html>
diff --git a/src/mar345_IO.pyx b/src/mar345_IO.pyx
index 694f4a8..b3982a8 100644
--- a/src/mar345_IO.pyx
+++ b/src/mar345_IO.pyx
@@ -1,12 +1,12 @@
 """
 New Cython version of mar345_io for preparing the migration to Python3
 
-Compressor & decompressor for "pack" algorithm by JPA, binding to CCP4 libraries 
+Compressor & decompressor for "pack" algorithm by JPA, binding to CCP4 libraries
 
 Warning: decompressor is just a cython porting of mar345_io, but in cython so (soon) python3 compliant.
 
 Future: make those algorithm actually generate strings not go via files;
-        it will allow a broader use of the algorithm. 
+        it will allow a broader use of the algorithm.
 
 """
 
@@ -19,20 +19,21 @@ import cython
 cimport numpy
 import numpy
 import os,tempfile
-
-#cdef extern from "pack_c.h":
-#     void pack_wordimage_c(short int*, int , int , char*) nogil
-#     void unpack_word(FILE *packfile, int x, int y, short int *img) nogil
+from libc.string cimport memcpy
+#from libc.stdlib cimport free, malloc
 
 cdef extern from "ccp4_pack.h":
     void* mar345_read_data_string(char *instream, int ocount, int dim1, int dim2) nogil
     void pack_wordimage_c(short int*, int , int , char*) nogil
-    
+    void* ccp4_unpack_string   (void *, void *, size_t, size_t, size_t) nogil
+    void* ccp4_unpack_v2_string(void *, void *, size_t, size_t, size_t) nogil
+
+
 @cython.boundscheck(False)
 def compress_pck(numpy.ndarray inputArray not None):
     """
     @param inputArray: numpy array as input
-    @param filename: file to write data to 
+    @param filename: file to write data to
     """
     cdef long  size = inputArray.size
     cdef int dim0, dim1, i, j, fd, ret
@@ -55,34 +56,52 @@ def compress_pck(numpy.ndarray inputArray not None):
     return output
 
 @cython.boundscheck(False)
-def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None):
+def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None, version=None, normal_start=None):
     """
     Unpack a mar345 compressed image
-    
+
     @param raw: input string (bytes in python3)
     @param dim1,dim2: optional parameters size
-    @param overflowPix: optional parameters: number of overflowed pixels 
-    
+    @param overflowPix: optional parameters: number of overflowed pixels
+    @param version: PCK version 1 or 2
+    @param normal_start: position of the normal value section (can be auto-guessed)
     @return : ndarray of 2D with the right size
     """
-    cdef int cdim1, cdim2, chigh
+    cdef int cdimx, cdimy, chigh, cversion, orecords, normal_offset
+    cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data
+    cdef numpy.ndarray[numpy.uint32_t, ndim = 1] flat 
+    cdef numpy.ndarray[numpy.uint8_t, ndim = 1] instream
+    cdef void* out
     end=None
-    if dim1 is None or dim2 is None:
-        key1 = "CCP4 packed image, X: "
-        key2 = "CCP4 packed image V2, X: "
+    key1 = "CCP4 packed image, X: "
+    key2 = "CCP4 packed image V2, X: "
+
+    if (dim1 is None) or (dim2 is None) or (version not in [1,2]) or (version is None) or (normal_start is None):
         start = raw.find(key2)
         key = key2
+        cversion = 2
         if start == -1:
             start = raw.find(key1)
             key = key1
-        start = raw.index(key) + len(key)
+            cversion = 1
+        lenkey = len(key)
+        start = raw.index(key) + lenkey
         sizes = raw[start:start + 13]
-        cdim1 = < int > int(sizes[:4])
-        cdim2 = < int > int(sizes[-4:])
+        cdimx = < int > int(sizes[:4])
+        cdimy = < int > int(sizes[-4:])
+        normal_offset = start + 13
     else:
-        cdim1 = < int > dim1
-        cdim2 = < int > dim2
-    if overflowPix is None:
+        cdimx = < int > dim1
+        cdimy = < int > dim2
+        cversion = <int> version 
+        normal_offset = <int> normal_start
+        if cversion==1:
+            lenkey = len(key1)
+        else:
+            lenkey = len(key2)
+    if cversion not in [1,2]:
+        raise RuntimeError("Cannot determine the compression scheme for PCK compression (either version 1 or 2)") 
+    if (overflowPix is None):
         end = raw.find("END OF HEADER")
         start = raw[:end].find("HIGH")
         hiLine = raw[start:end]
@@ -95,13 +114,29 @@ def uncompress_pck(raw not None, dim1=None, dim2=None, overflowPix=None):
             chigh = 0
     else:
         chigh = < int > overflowPix
-    cdef numpy.ndarray[numpy.uint32_t, ndim = 2] data = numpy.zeros((cdim2, cdim1), dtype=numpy.uint32)   
-    if not end:
-        end = raw.find("END OF HEADER")
-    if end !=-1:
-        raw = raw[end+14:].lstrip()
-    cdef char* instream = <char*> raw
+    
+    orecords = <int> (chigh/8.0+0.875)
+    data = numpy.empty((cdimy, cdimx), dtype=numpy.uint32)
+    flat = data.ravel() #flat view on the data
+    instream = numpy.fromstring(raw[normal_offset:].lstrip(),dtype=numpy.uint8)
     with nogil:
-        data.data = <char *> mar345_read_data_string(instream, chigh, cdim1, cdim2)
+        ################################################################################
+        #      relay to whichever version of ccp4_unpack is appropriate
+        ################################################################################
+        if cversion == 1:
+            ccp4_unpack_string( &data[0,0], &instream[0], cdimx, cdimy,0);
+        else:# cversion == 2:
+            ccp4_unpack_v2_string( &data[0,0], &instream[0], cdimx, cdimy,0);
+    ################################################################################
+    # handle overflows
+    ################################################################################
+    stop = normal_offset-lenkey-14
+    odata = numpy.fromstring(raw[stop-64*orecords: stop],dtype=numpy.int32)
+    odata.shape = -1,2 
+    addresses = odata[:,0]
+    values = odata[:,1]
+    valid = (addresses>0)
+    addresses = addresses[valid]-1 #addresses start at 1 !!
+    values = values[valid]
+    flat[addresses] = values.astype(numpy.uint32)
     return data
-
diff --git a/src/pack_c.c b/src/pack_c.c
deleted file mode 100644
index fdf9f15..0000000
--- a/src/pack_c.c
+++ /dev/null
@@ -1,1521 +0,0 @@
-/*
-     pack_c.c: (de)compress diffraction image files
-     Copyright (C) 1995  Jan P Abrahams
-
-     This library is free software: you can redistribute it and/or
-     modify it under the terms of the GNU Lesser General Public License
-     version 3, modified in accordance with the provisions of the
-     license to address the requirements of UK law.
-
-     You should have received a copy of the modified GNU Lesser General
-     Public License along with this library.  If not, copies may be
-     downloaded from http://www.ccp4.ac.uk/ccp4license.php
-
-     This program is distributed in the hope that it will be useful,
-     but WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-     GNU Lesser General Public License for more details.
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "pack_c.h"
-
-
-/* pack_c.c, version 2 (backwards compatible with earlier versions)...
-                                                    JPA, 26 June 1995
-						    jpa at mrc-lmb.cam.ac.uk
-
-   This file contains functions capable of compressing and decompressing
-   images. It is especially suited for X-ray diffraction patterns, or other
-   image formats in which orthogonal pixels contain "grey-levels" and
-   vary smoothly accross the image. Clean images measured by a MAR-research
-   image plate scanner containing two bytes per pixel can be compressed by
-   a factor of 3.5 to 4.5 .
-
-   Since the images are encoded in a byte-stream, there should be no problem
-   concerening big- or little ended machines: both will produce an identical
-   packed image.
-
-   Compression is achieved by first calculating the differences between every
-   pixel and the truncated value of four of its neighbours. For example:
-   the difference for a pixel at img[x, y] is:
-
-     img[x, y] - (int) (img[x-1, y-1] +
-                        img[x-1, y] +
-			img[x-1, y+1] +
-			img[x, y-1]) / 4
-
-   After calculating the differences, they are encoded in a packed array. A
-   packed array consists of consequitive chunks which have the following format:
-   - Three bits containing the logarithm base 2 of the number of pixels encoded
-     in the chunk.
-   - Three bits defining the number of bits used to encode one element of the
-     chunk. The value of these three bits is used as index in a lookup table
-     to get the actual number of bits of the elements of the chunk.
-        Note: in version 2, there are four bits in this position!! This allows
-              more efficient packing of synchrotron data! The routines in this
-	      sourcefile are backwards compatible.
-	                                             JPA, 26 June 1995
-   - The truncated pixel differences.
-
-   To compress an image, call pack_wordimage_c() or pack_longimage_c(). These
-   will append the packed image to any header information already written to
-   disk (take care that the file containing this information is closed before
-   calling). To decompress an image, call readpack_word_c() or
-   readpack_long_c(). These functions will find the start of the packed image
-   themselves, irrespective of the header format.
-
-   In order to provide an interface to fortran programs, the functions
-   pack_wordimage_f(), pack_longimage_f(), read_wordimage_f() and
-   read_long_image_f() are provided. They are called by the fortran subroutines
-   PACK_WORDIMAGE, PACK_LONGIMAGE, READPACK_WORD, and READPACK_LONG, which
-   can be found in the accompanying sourcefile "pack_f.f".
-
-
-                                            Jan Pieter Abrahams, 6 Jan 1993   */
-
-
-
-
-/******************************************************************************/
-
-
-/* Some fortran compilers require c-functions to end with an underscore. */
-
-#if defined(_AIX) || defined (___AIX) || defined(__hpux)
-/* no underscore by default */
-#else
-#  if defined (VMS) || defined (vms) || defined (__vms) || defined (__VMS)
-#    define pack_wordimage_f PACK_WORDIMAGE_F
-#    define v2pack_wordimage_f V2PACK_WORDIMAGE_F
-#    define pack_longimage_f PACK_LONGIMAGE_F
-#    define v2pack_longimage_f V2PACK_LONGIMAGE_F
-#    define readpack_word_f READPACK_WORD_F
-#    define readpack_long_f READPACK_LONG_F
-#    define mirror_wordimage MIRROR_WORDIMAGE
-#    define mirror_longimage MIRROR_LONGIMAGE
-#    define imsiz_f IMSIZ_F
-#  else
-#    define pack_wordimage_f pack_wordimage_f_
-#    define v2pack_wordimage_f v2pack_wordimage_f_
-#    define pack_longimage_f pack_longimage_f_
-#    define v2pack_longimage_f v2pack_longimage_f_
-#    define readpack_word_f readpack_word_f_
-#    define readpack_long_f readpack_long_f_
-#    define mirror_wordimage mirror_wordimage_
-#    define mirror_longimage mirror_longimage_
-#    define imsiz_f imsiz_f_
-#  endif
-#endif
-
-/******************************************************************************/
-
-/* Prototypes of the functions in this sourcefile, as required by the ANSI
-   standard. The pack_c.h file contains the functions other routines might
-   call. Here are functions which will are not really usefull for image
-   processing programmes, and which are used locally in this file. Also
-   front-end fortran callable C-functions are not included in the pack_c.h
-   file. */
-
-
-#if defined (PROTOTYPE)
-
-/* Functions required for packing: */
-
-
-void pack_wordimage_f(WORD *img, LONG *x, LONG *y, LONG *filename);
-/* Fortran frontend of pack_wordimage_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-void v2pack_wordimage_f(WORD *img, LONG *x, LONG *y, LONG *filename);
-/* Fortran frontend of pack_wordimage_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. This function generates
-   Version 2 images! */
-
-void pack_longimage_f(LONG *img, LONG *x, LONG *y, LONG *filename);
-/* Fortran frontend of pack_longimage_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-void v2pack_longimage_f(LONG *img, LONG *x, LONG *y, LONG *filename);
-/* Fortran frontend of pack_longimage_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. This function generates
-   Version 2 images! */
-
-void pack_wordimage_c(WORD *img, int x, int y, char *filename);
-/* Pack image 'img', containing 'x * y' WORD-sized pixels into 'filename'.
-   Opens file and wraps pack_wordimage_copen() */
-
-void pack_wordimage_copen(WORD *img, int x, int y, FILE *packfile);
-/* Pack image 'img', containing 'x * y' WORD-sized pixels into open file
-   'packfile'. */
-
-void pack_longimage_c(LONG *img, int x, int y, char *filename);
-/* Pack image 'img', containing 'x * y' LONG-sized pixels into 'filename'.
-   Opens file and wraps pack_long_image_copen()*/
-
-void pack_longimage_copen(LONG *img, int x, int y, FILE *packfile);
-/* Pack image 'img', containing 'x * y' LONG-sized pixels into open file
-   'packfile'. */
-
-LONG *diff_words(WORD *img, int x, int y, LONG *diffs, LONG done);
-/* Calculates the difference of WORD-sized pixels of an image with the
-   truncated mean value of four of its neighbours. 'x' is the number of fast
-   coordinates of the image 'img', 'y' is the number of slow coordinates,
-   'diffs' will contain the differences, 'done' defines the index of the pixel
-   where calculating the differences should start. A pointer to the last
-   difference is returned. Maximally DIFFBUFSIZ differences are returned in
-   'diffs'.*/
-
-LONG *diff_longs(LONG *img, int x, int y, LONG *diffs, LONG done);
-/* Calculates the difference of LONG-sized pixels of an image with the
-   truncated mean value of four of its neighbours. 'x' is the number of fast
-   coordinates of the image 'img', 'y' is the number of slow coordinates,
-   'diffs' will contain the differences, 'done' defines the index of the pixel
-   where calculating the differences should start. A pointer to the last
-   difference is returned. Maximally DIFFBUFSIZ differences are returned in
-   'diffs'.*/
-
-int bits(LONG *chunk, int n);
-/* Returns the number of bits neccesary to encode the longword-array 'chunk'
-   of size 'n' The size in bits of one encoded element can be 0, 4, 5, 6, 7,
-   8, 16 or 32. */
-
-int v2bits(LONG *chunk, int n);
-/* Returns the number of bits neccesary to encode the longword-array 'chunk'
-   of size 'n' The size in bits of one encoded element can be 0, 3, 4, 5, 6, 7,
-   8, 9, 10, 11, 12, 13, 14, 15, 16 or 32. */
-
-void pack_chunk(LONG *lng, int nmbr, int bitsize, FILE *file);
-/* Packs 'nmbr' LONGs starting at 'lng[0]' into a packed array of 'bitsize'
-   sized elements. If the internal buffer in which the array is packed is full,
-   it is flushed to 'file', making room for more of the packed array. If
-   ('lng == NULL'), the buffer is flushed aswell. */
-
-void v2pack_chunk(LONG *lng, int nmbr, int bitsize, FILE *file);
-/* Packs 'nmbr' LONGs starting at 'lng[0]' into a packed array of 'bitsize'
-   sized elements. If the internal buffer in which the array is packed is full,
-   it is flushed to 'file', making room for more of the packed array. If
-   ('lng == NULL'), the buffer is flushed aswell. This is a new function
-   included in version 2, but not existing in version 1! */
-
-void pack_longs(LONG *lng, int n, BYTE **target, int *bit, int size);
-/* Pack 'n' WORDS, starting with 'lng[0]' into the packed array 'target'. The
-   elements of such a packed array do not obey BYTE-boundaries, but are put one
-   behind the other without any spacing. Only the 'bitsiz' number of least
-   significant bits are used, the rest is truncated. The starting bit of
-   'target' is 'bit' (bits range from 0 to 7). After completion of
-   'pack_words()', both '**target' and '*bit' are updated and define the next
-   position in 'target' from where packing could continue. */
-
-
-
-/* Functions required for unpacking: */
-
-
-void readpack_word_f(WORD *img, LONG *filename);
-/* Fortran frontend of readpack_word_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-void readpack_long_f(LONG *img, LONG *filename);
-/* Fortran frontend of readpack_long_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-void unpack_word(FILE *packfile, int x, int y, WORD *img);
-/* Unpacks a packed image into the WORD-array 'img'. The image is stored
-   in 'packfile'. The file should be properly positioned: the first BYTE
-   read is assumed to be the first BYTE of the packed image. */
-
-void v2unpack_word(FILE *packfile, int x, int y, WORD *img);
-/* Unpacks a packed image into the WORD-array 'img'. The image is stored
-   in 'packfile'. The file should be properly positioned: the first BYTE
-   read is assumed to be the first BYTE of the packed image. This function
-   reads Version 2 packed images! */
-
-void unpack_long(FILE *packfile, int x, int y, LONG *img);
-/* Unpacks a packed image into the LONG-array 'img'. The image is stored
-   in 'packfile'. The file should be properly positioned: the first BYTE
-   read is assumed to be the first BYTE of the packed image. */
-
-void v2unpack_long(FILE *packfile, int x, int y, LONG *img);
-/* Unpacks a packed image into the LONG-array 'img'. The image is stored
-   in 'packfile'. The file should be properly positioned: the first BYTE
-   read is assumed to be the first BYTE of the packed image. This function
-   reads Version 2 packed images! */
-
-
-
-
-/* Function required to convert a WORD-array into a char array, required for
-   both compression and decompression if called from fortran. */
-
-char *long_to_char(LONG *lng, char *string);
-/* Shrinks an array of LONGs into an array of chars, used in order to translate
-   an encoded string array passed by fortran into a c-type string. Returns
-   'string'. */
-
-void imsiz_f(LONG *filename, LONG *x, LONG *y);
-/* Fortran frontend of imsiz_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-
-
-/* Some other usefull functions for manipulating images. */
-
-void mirror_wordimg(WORD *img, LONG *x, LONG *y);
-/* Replaces img with its mirror by interchanging rows. '*x' is the fast index,
-   '*y' is the slow index. */
-
-void mirror_longimg(LONG *img, LONG *x, LONG *y);
-/* Replaces img with its mirror by interchanging rows. '*x' is the fast index,
-   '*y' is the slow index. */
-
-#endif    /* (PROTOTYPE) */
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void pack_wordimage_f(WORD *img, LONG *x, LONG *y, LONG *filename)
-#else
-  void pack_wordimage_f(img, x, y, filename)
-  WORD *img;
-  LONG *x, *y, *filename;
-#endif
-/* Fortran frontend of pack_wordimage_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-{ char c_filename[1024];
-#if !defined (PROTOTYPE)
-  void pack_wordimage_c();
-  char *long_to_char();
-#endif
-
-  pack_wordimage_c(img, (LONG) *x, (LONG) *y,
-		                           long_to_char(filename, c_filename));}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void v2pack_wordimage_f(WORD *img, LONG *x, LONG *y, LONG *filename)
-#else
-  void v2pack_wordimage_f(img, x, y, filename)
-  WORD *img;
-  LONG *x, *y, *filename;
-#endif
-/* Fortran frontend of pack_wordimage_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. This function generates
-   Version 2 images!*/
-
-{ char c_filename[1024];
-#if !defined (PROTOTYPE)
-  void v2pack_wordimage_c();
-  char *long_to_char();
-#endif
-
-  v2pack_wordimage_c(img, (LONG) *x, (LONG) *y,
-                               long_to_char(filename, c_filename));}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void pack_longimage_f(LONG *img, LONG *x, LONG *y, LONG *filename)
-#else
-  void pack_longimage_f(img, x, y, filename)
-  LONG *img, *x, *y, *filename;
-#endif
-/* Fortran frontend of pack_longimage_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-{ char c_filename[1024];
-#if !defined (PROTOTYPE)
-  void pack_longimage_c();
-  char *long_to_char();
-#endif
-
-  pack_longimage_c(img, (LONG) *x, (LONG) *y,
-		                           long_to_char(filename, c_filename));}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void v2pack_longimage_f(LONG *img, LONG *x, LONG *y, LONG *filename)
-#else
-  void v2pack_longimage_f(img, x, y, filename)
-  LONG *img, *x, *y, *filename;
-#endif
-/* Fortran frontend of pack_longimage_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-{ char c_filename[1024];
-#if !defined (PROTOTYPE)
-  void v2pack_longimage_c();
-  char *long_to_char();
-#endif
-
-  v2pack_longimage_c(img, (LONG) *x, (LONG) *y,
-                               long_to_char(filename, c_filename));}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void pack_wordimage_copen(WORD *img, int x, int y, FILE *packfile)
-#else
-  void pack_wordimage_copen(img, x, y, packfile)
-  WORD *img;
-  int x, y;
-  FILE *packfile;
-#endif
-/* Pack image 'img', containing 'x * y' WORD-sized pixels into 'filename'. */
-
-{ int chunksiz, packsiz, nbits, next_nbits, tot_nbits;
-  LONG buffer[DIFFBUFSIZ];
-  LONG *diffs = buffer;
-  LONG *end = diffs - 1;
-  LONG done = 0;
-#if !defined (PROTOTYPE)
-  LONG *diff_words();
-  int bits();
-  void pack_chunk();
-#endif
-
-  fprintf(packfile, PACKIDENTIFIER, x, y);
-  while (done < (x * y))
-  { end = diff_words(img, x, y, buffer, done);
-    done += (end - buffer) + 1;
-    diffs = buffer;
-    while (diffs <= end)
-    { packsiz = 0;
-      chunksiz = 1;
-      nbits = bits(diffs, 1);
-      while (packsiz == 0)
-      { if (end <= (diffs + chunksiz * 2))
-          packsiz = chunksiz;
-        else
-        { next_nbits = bits(diffs + chunksiz, chunksiz);
-          tot_nbits = 2 * max(nbits, next_nbits);
-          if (tot_nbits >= (nbits + next_nbits + 6))
-            packsiz = chunksiz;
-          else
-          { nbits = tot_nbits;
-            if (chunksiz == 64)
-              packsiz = 128;
-            else
-              chunksiz *= 2;}}}
-       pack_chunk(diffs, packsiz, nbits / packsiz, packfile);
-       diffs += packsiz;}}
-    pack_chunk(NULL, 0, 0, packfile);
-}
-
-
-#if defined (PROTOTYPE)
-  void pack_wordimage_c(WORD *img, int x, int y, char *filename)
-#else
-  void pack_wordimage_c(img, x, y, filename)
-  WORD *img;
-  int x, y;
-  char *filename;
-#endif
-{
-  FILE *packfile = fopen(filename, "a");
-  if (packfile == NULL) {
-    fprintf(stderr,"The file %s cannot be created!\n   ...giving up...\n",
-          filename);
-    exit(1);
-  } else {
-    pack_wordimage_copen(img, x, y, packfile);
-    fclose(packfile);
-  }
-}
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void v2pack_wordimage_c(WORD *img, int x, int y, char *filename)
-#else
-  void v2pack_wordimage_c(img, x, y, filename)
-  WORD *img;
-  int x, y;
-  char *filename;
-#endif
-/* Pack image 'img', containing 'x * y' WORD-sized pixels into 'filename'. */
-
-{ int chunksiz, packsiz, nbits, next_nbits, tot_nbits;
-  LONG buffer[DIFFBUFSIZ];
-  LONG *diffs = buffer;
-  LONG *end = diffs - 1;
-  LONG done = 0;
-  FILE *packfile;
-#if !defined (PROTOTYPE)
-  LONG *diff_words();
-  int v2bits();
-  void v2pack_chunk();
-#endif
-
-  packfile = fopen(filename, "a");
-  if (packfile == NULL)
-  { fprintf(stderr,"The file %s cannot be created!\n   ...giving up...\n",
-	    filename);
-    exit(1);}
-  else
-  { fprintf(packfile, V2IDENTIFIER, x, y);
-    while (done < (x * y))
-    { end = diff_words(img, x, y, buffer, done);
-      done += (end - buffer) + 1;
-      diffs = buffer;
-      while (diffs <= end)
-      { packsiz = 0;
-        chunksiz = 1;
-        nbits = v2bits(diffs, 1);
-        while (packsiz == 0)
-        { if (end <= (diffs + chunksiz * 2))
-	    packsiz = chunksiz;
-          else
-	  { next_nbits = v2bits(diffs + chunksiz, chunksiz);
-	    tot_nbits = 2 * max(nbits, next_nbits);
-	    if (tot_nbits >= (nbits + next_nbits + 7))
-	      packsiz = chunksiz;
-	    else
-            { nbits = tot_nbits;
-	      if (chunksiz == 64)
-	        packsiz = 128;
-	      else
-	        chunksiz *= 2;}}}
-        v2pack_chunk(diffs, packsiz, nbits / packsiz, packfile);
-        diffs += packsiz;}}
-    v2pack_chunk(NULL, 0, 0, packfile);
-    fclose(packfile);}}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void pack_longimage_copen(LONG *img, int x, int y, FILE *packfile)
-#else
-  void pack_longimage_copen(img, x, y, packfile)
-  LONG *img;
-  int x, y;
-  FILE *packfile;
-#endif
-/* Pack image 'img', containing 'x * y' LONG-sized pixels into 'filename'. */
-{ int chunksiz, packsiz, nbits, next_nbits, tot_nbits;
-  LONG buffer[DIFFBUFSIZ];
-  LONG *diffs = buffer;
-  LONG *end = diffs - 1;
-  LONG done = 0;
-#if !defined (PROTOTYPE)
-  LONG *diff_longs();
-  int bits();
-  void pack_chunk();
-#endif
-
-  fprintf(packfile, PACKIDENTIFIER, x, y);
-  while (done < (x * y))
-  { end = diff_longs(img, x, y, buffer, done);
-    done += (end - buffer) + 1;
-    diffs = buffer;
-    while (diffs <= end)
-    { packsiz = 0;
-      chunksiz = 1;
-      nbits = bits(diffs, 1);
-      while (packsiz == 0)
-      { if (end <= (diffs + chunksiz * 2))
-          packsiz = chunksiz;
-        else
-	  { next_nbits = bits(diffs + chunksiz, chunksiz);
-	    tot_nbits = 2 * max(nbits, next_nbits);
-	    if (tot_nbits >= (nbits + next_nbits + 6))
-	      packsiz = chunksiz;
-	    else
-            { nbits = tot_nbits;
-	      if (chunksiz == 64)
-	        packsiz = chunksiz * 2;
-	      else
-	        chunksiz *= 2;}}}
-        pack_chunk(diffs, packsiz, nbits / packsiz, packfile);
-        diffs += packsiz;}}
-    pack_chunk(NULL, 0, 0, packfile);
-}
-
-
-#if defined (PROTOTYPE)
-  void pack_longimage_c(LONG *img, int x, int y, char *filename)
-#else
-  void pack_longimage_c(img, x, y, filename)
-  LONG *img;
-  int x, y;
-  char *filename;
-#endif
-/* Pack image 'img', containing 'x * y' LONG-sized pixels into 'filename'. */
-{
-  FILE *packfile = fopen(filename, "a");
-  if (packfile == NULL)
-  { fprintf(stderr,"The file %s cannot be created!\n   ...giving up...\n",
-	    filename);
-    exit(1);}
-  else
-  { pack_longimage_copen(img, x, y, packfile);
-    fclose(packfile);
-  }
-}
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void v2pack_longimage_c(LONG *img, int x, int y, char *filename)
-#else
-  void v2pack_longimage_c(img, x, y, filename)
-  LONG *img;
-  int x, y;
-  char *filename;
-#endif
-/* Pack image 'img', containing 'x * y' LONG-sized pixels into 'filename'. */
-
-{ int chunksiz, packsiz, nbits, next_nbits, tot_nbits;
-  LONG buffer[DIFFBUFSIZ];
-  LONG *diffs = buffer;
-  LONG *end = diffs - 1;
-  LONG done = 0;
-  FILE *packfile;
-#if !defined (PROTOTYPE)
-  LONG *diff_longs();
-  int v2bits();
-  void v2pack_chunk();
-#endif
-
-  packfile = fopen(filename, "a");
-  if (packfile == NULL)
-  { fprintf(stderr,"The file %s cannot be created!\n   ...giving up...\n",
-	    filename);
-    exit(1);}
-  else
-  { fprintf(packfile, V2IDENTIFIER, x, y);
-    while (done < (x * y))
-    { end = diff_longs(img, x, y, buffer, done);
-      done += (end - buffer) + 1;
-      diffs = buffer;
-      while (diffs <= end)
-      { packsiz = 0;
-        chunksiz = 1;
-        nbits = v2bits(diffs, 1);
-        while (packsiz == 0)
-        { if (end <= (diffs + chunksiz * 2))
-	    packsiz = chunksiz;
-          else
-	  { next_nbits = v2bits(diffs + chunksiz, chunksiz);
-	    tot_nbits = 2 * max(nbits, next_nbits);
-	    if (tot_nbits >= (nbits + next_nbits + 7))
-	      packsiz = chunksiz;
-	    else
-            { nbits = tot_nbits;
-	      if (chunksiz == 64)
-	        packsiz = chunksiz * 2;
-	      else
-	        chunksiz *= 2;}}}
-        v2pack_chunk(diffs, packsiz, nbits / packsiz, packfile);
-        diffs += packsiz;}}
-    v2pack_chunk(NULL, 0, 0, packfile);
-    fclose(packfile);}}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  LONG *diff_words(WORD *word, int x, int y, LONG *diffs, LONG done)
-#else
-  LONG *diff_words(word, x, y, diffs, done)
-  WORD *word;
-  int x, y;
-  LONG *diffs, done;
-#endif
-/* Calculates the difference of WORD-sized pixels of an image with the
-   truncated mean value of four of its neighbours. 'x' is the number of fast
-   coordinates of the image 'img', 'y' is the number of slow coordinates,
-   'diffs' will contain the differences, 'done' defines the index of the pixel
-   where calculating the differences should start. A pointer to the last
-   difference is returned. Maximally DIFFBUFSIZ differences are returned in
-   'diffs'.*/
-
-{ LONG i = 0;
-  LONG tot = x * y;
-
-  if (done == 0)
-  { *diffs = word[0];
-    ++diffs;
-    ++done;
-    ++i;}
-  while ((done <= x) && (i < DIFFBUFSIZ))
-  { *diffs = word[done] - word[done - 1];
-    ++diffs;
-    ++done;
-    ++i;}
-  while ((done < tot) && (i < DIFFBUFSIZ))
-  { *diffs = word[done] - (word[done - 1] + word[done - x + 1] +
-                           word[done - x] + word[done - x - 1] + 2) / 4;
-    ++diffs;
-    ++done;
-    ++i;}
-  return(--diffs);}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  LONG *diff_longs(LONG *lng, int x, int y, LONG *diffs, LONG done)
-#else
-  LONG *diff_longs(lng, x, y, diffs, done)
-  LONG *lng, *diffs, done;
-  int x, y;
-#endif
-/* Calculates the difference of LONG-sized pixels of an image with the
-   truncated mean value of four of its neighbours. 'x' is the number of fast
-   coordinates of the image 'img', 'y' is the number of slow coordinates,
-   'diffs' will contain the differences, 'done' defines the index of the pixel
-   where calculating the differences should start. A pointer to the last
-   difference is returned. Maximally DIFFBUFSIZ differences are returned in
-   'diffs'.*/
-
-{ LONG i = 0, d;
-  LONG tot = x * y;
-  LONG huge = shift_left(1, 30);
-
-  if (done == 0)
-  { *diffs = min(max(-huge, lng[0]), huge);
-    ++diffs;
-    ++done;
-    ++i;}
-  while ((done <= x) && (i < DIFFBUFSIZ))
-  { d = lng[done] - lng[done - 1];
-    *diffs = min(max(-huge, d), huge);
-    ++diffs;
-    ++done;
-    ++i;}
-  while ((done < tot) && (i < DIFFBUFSIZ))
-  { d = lng[done] - (lng[done - 1] + lng[done - x + 1] +
-		     lng[done - x] + lng[done - x - 1] + 2) / 4;
-    *diffs = min(max(-huge, d), huge);
-    ++diffs;
-    ++done;
-    ++i;}
-  return(--diffs);}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  int bits(LONG *chunk, int n)
-#else
-  int bits(chunk, n)
-  LONG *chunk;
-  int n;
-#endif
-/* Returns the number of bits neccesary to encode the longword-array 'chunk'
-   of size 'n' The size in bits of one encoded element can be 0, 4, 5, 6, 7,
-   8, 16 or 32. */
-
-{ int size, maxsize, i;
-
-  for (i = 1, maxsize = abs(chunk[0]); i < n; ++i)
-    maxsize = max(maxsize, abs(chunk[i]));
-  if (maxsize == 0)
-    size = 0;
-  else if (maxsize < 8)
-    size = 4 * n;
-  else if (maxsize < 16)
-    size = 5 * n;
-  else if (maxsize < 32)
-    size = 6 * n;
-  else if (maxsize < 64)
-    size = 7 * n;
-  else if (maxsize < 128)
-    size = 8 * n;
-  else if (maxsize < 32768)
-    size = 16 * n;
-  else
-    size = 32 * n;
-  return(size);}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  int v2bits(LONG *chunk, int n)
-#else
-  int v2bits(chunk, n)
-  LONG *chunk;
-  int n;
-#endif
-/* Returns the number of bits neccesary to encode the longword-array 'chunk'
-   of size 'n' The size in bits of one encoded element can be 0, 3, 4, 5, 6, 7,
-   8, 9, 10, 11, 12, 13, 14, 15, 16 or 32. */
-
-{ int size, maxsize, i;
-
-  for (i = 1, maxsize = abs(chunk[0]); i < n; ++i)
-    maxsize = max(maxsize, abs(chunk[i]));
-  if (maxsize == 0)
-    size = 0;
-  else if (maxsize < 4)
-    size = 3 * n;
-  else if (maxsize < 8)
-    size = 4 * n;
-  else if (maxsize < 16)
-    size = 5 * n;
-  else if (maxsize < 32)
-    size = 6 * n;
-  else if (maxsize < 64)
-    size = 7 * n;
-  else if (maxsize < 128)
-    size = 8 * n;
-  else if (maxsize < 256)
-    size = 9 * n;
-  else if (maxsize < 512)
-    size = 10 * n;
-  else if (maxsize < 1024)
-    size = 11 * n;
-  else if (maxsize < 2048)
-    size = 12 * n;
-  else if (maxsize < 4096)
-    size = 13 * n;
-  else if (maxsize < 8192)
-    size = 14 * n;
-  else if (maxsize < 16384)
-    size = 15 * n;
-  else if (maxsize < 32768)
-    size = 16 * n;
-  else
-    size = 32 * n;
-  return(size);}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void pack_chunk(LONG *lng, int nmbr, int bitsize, FILE *packfile)
-#else
-  void pack_chunk(lng, nmbr, bitsize, packfile)
-  LONG *lng;
-  int nmbr, bitsize;
-  FILE *packfile;
-#endif
-/* Packs 'nmbr' LONGs starting at 'lng[0]' into a packed array of 'bitsize'
-   sized elements. If the internal buffer in which the array is packed is full,
-   it is flushed to 'file', making room for more of the packed array. If
-   ('lng == NULL'), the buffer is flushed aswell. */
-
-{ static LONG bitsize_encode[33] = {0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 0,
-                                    0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
-                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7};
-  LONG descriptor[2], i, j;
-  static BYTE *buffer = NULL;
-  static BYTE *buffree = NULL;
-  static int bitmark;
-#if !defined (PROTOTYPE)
-  void pack_longs();
-#endif
-
-  if (buffer == NULL)
-  { buffree = buffer = (BYTE *) malloc(PACKBUFSIZ);
-    bitmark = 0;}
-  if (lng != NULL)
-  { for (i = nmbr, j = 0; i > 1; i /= 2, ++j);
-    descriptor[0] = j;
-    descriptor[1] = bitsize_encode[bitsize];
-    if ((buffree - buffer) > (PACKBUFSIZ - (130 * 4)))
-    { fwrite(buffer, sizeof(BYTE), buffree - buffer, packfile);
-      buffer[0] = buffree[0];
-      buffree = buffer;}
-    pack_longs(descriptor, 2, &buffree, &bitmark, 3);
-    pack_longs(lng, nmbr, &buffree, &bitmark, bitsize);}
-  else
-  { int len=buffree-buffer;
-    if (bitmark!=0) len++;
-    fwrite(buffer, sizeof(BYTE), len, packfile);
-    free((void *) buffer);
-    buffer = NULL;}}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void v2pack_chunk(LONG *lng, int nmbr, int bitsize, FILE *packfile)
-#else
-  void v2pack_chunk(lng, nmbr, bitsize, packfile)
-  LONG *lng;
-  int nmbr, bitsize;
-  FILE *packfile;
-#endif
-/* Packs 'nmbr' LONGs starting at 'lng[0]' into a packed array of 'bitsize'
-   sized elements. If the internal buffer in which the array is packed is full,
-   it is flushed to 'file', making room for more of the packed array. If
-   ('lng == NULL'), the buffer is flushed aswell. This is a new function
-   included in version 2, but not existing in version 1! */
-
-{ static LONG bitsize_encode[33] = {0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-                                    9, 10, 11, 12, 13, 14, 0, 0, 0, 0, 0,
-                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15};
-  LONG descriptor[2], i, j;
-  static BYTE *buffer = NULL;
-  static BYTE *buffree = NULL;
-  static int bitmark;
-#if !defined (PROTOTYPE)
-  void pack_longs();
-#endif
-
-  if (buffer == NULL)
-  { buffree = buffer = (BYTE *) malloc(PACKBUFSIZ);
-    bitmark = 0;}
-  if (lng != NULL)
-  { for (i = nmbr, j = 0; i > 1; i /= 2, ++j);
-    descriptor[0] = j;
-    descriptor[1] = bitsize_encode[bitsize];
-    if ((buffree - buffer) > (PACKBUFSIZ - (130 * 4)))
-    { fwrite(buffer, sizeof(BYTE), buffree - buffer, packfile);
-      buffer[0] = buffree[0];
-      buffree = buffer;}
-    pack_longs(descriptor, 1, &buffree, &bitmark, 3);
-    pack_longs(descriptor + 1, 1, &buffree, &bitmark, 4);
-    pack_longs(lng, nmbr, &buffree, &bitmark, bitsize);}
-  else
-  { int len=buffree-buffer;
-    if (bitmark!=0) len++;
-    fwrite(buffer, sizeof(BYTE), len, packfile);
-    free((void *) buffer);
-    buffer = NULL;}}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void pack_longs(LONG *lng, int n, BYTE **target, int *bit, int size)
-#else
-   void pack_longs(lng, n, target, bit, size)
-   LONG *lng;
-   int n, *bit, size;
-   BYTE **target;
-#endif
-/* Pack 'n' WORDS, starting with 'lng[0]' into the packed array 'target'. The
-   elements of such a packed array do not obey BYTE-boundaries, but are put one
-   behind the other without any spacing. Only the 'bitsiz' number of least
-   significant bits are used. The starting bit of 'target' is 'bit' (bits range
-   from 0 to 7). After completion of 'pack_words()', both '**target' and '*bit'
-   are updated and define the next position in 'target' from which packing
-   could continue. */
-
-{ LONG mask, window;
-  int valids, i, temp;
-  int temp_bit = *bit;
-  BYTE *temp_target = *target;
-
-  if (size > 0)
-  { mask = setbits[size];
-    for (i = 0; i < n; ++i)
-    { window = lng[i] & mask;
-      valids = size;
-      if (temp_bit == 0)
-        *temp_target = (BYTE) window;
-      else
-      { temp = shift_left(window, temp_bit);
-        *temp_target |= temp;}
-      window = shift_right(window, 8 - temp_bit);
-      valids = valids - (8 - temp_bit);
-      if (valids < 0)
-        temp_bit += size;
-      else
-      { while (valids > 0)
-        { *++temp_target = (BYTE) window;
-          window = shift_right(window, 8);
-          valids -= 8;}
-        temp_bit = 8 + valids;}
-      if (valids == 0)
-      { temp_bit = 0;
-        ++temp_target;}}
-  *target = temp_target;
-  *bit = (*bit + (size * n)) % 8;}}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void readpack_word_f(WORD *img, LONG *filename)
-#else
-  void readpack_word_f(img, filename)
-  WORD *img;
-  LONG *filename;
-#endif
-/* Fortran frontend of readpack_word_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-{ char c_filename[1024];
-#if !defined (PROTOTYPE)
-  void readpack_word_c();
-  char *long_to_char();
-#endif
-
-  readpack_word_c(img, long_to_char(filename, c_filename));}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void readpack_long_f(LONG *img, LONG *filename)
-#else
-  void readpack_long_f(img, filename)
-  LONG *img, *filename;
-#endif
-/* Fortran frontend of readpack_long_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-{ char c_filename[1024];
-#if !defined (PROTOTYPE)
-  void readpack_long_c();
-  char *long_to_char();
-#endif
-
-  readpack_long_c(img, long_to_char(filename, c_filename));}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void readpack_word_c(WORD *img, char *filename)
-#else
-  void readpack_word_c(img, filename)
-  WORD *img;
-  char *filename;
-#endif
-/* Unpacks packed image from 'filename' into the WORD-array 'img'. Scans the
-   file defined by 'filename' until the PACKIDENTIFIER is found, then unpacks
-   starting from there. */
-
-{ FILE *packfile;
-  int x = 0, y = 0, i = 0, c = 0, version = 0;
-  char header[BUFSIZ];
-#if !defined (PROTOTYPE)
-  void unpack_word();
-  void v2unpack_word();
-#endif
-
-  packfile = fopen(filename, "r");
-  if (packfile == NULL)
-    printf("%s does not exist.\n", filename);
-  else
-  { header[0] = '\n';
-    header[1] = 0;
-    while ((c != EOF) && ((x == 0) || (y == 0)))
-    { c = i = x = y = 0;
-      while ((++i < BUFSIZ) && (c != EOF) && (c != '\n') && (x==0) && (y==0))
-	if ((header[i] = c = getc(packfile)) == '\n')
-	{ if (sscanf(header, PACKIDENTIFIER, &x, &y) == 2)
-	    version = 1;
-	  else if (sscanf(header, V2IDENTIFIER, &x, &y) == 2)
-	    version = 2;}}
-    if (version == 1)
-      unpack_word(packfile, x, y, img);
-    else if (version == 2)
-      v2unpack_word(packfile, x, y, img);
-    fclose(packfile);}}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void readpack_long_c(LONG *img, char *filename)
-#else
-  void readpack_long_c(img, filename)
-  LONG *img;
-  char *filename;
-#endif
-/* Unpacks packed image from 'filename' into the LONG-array 'img'. Scans the
-   file defined by 'filename' until the PACKIDENTIFIER is found, then unpacks
-   starting from there. */
-
-{ FILE *packfile;
-  int x = 0, y = 0, i = 0, c = 0, version = 0;
-  char header[BUFSIZ];
-#if !defined (PROTOTYPE)
-  void unpack_long();
-  void v2unpack_long();
-#endif
-
-  packfile = fopen(filename, "r");
-  if (packfile == NULL)
-    printf("%s does not exist.", filename);
-  else
-  { header[0] = '\n';
-    header[1] = 0;
-    while ((c != EOF) && ((x == 0) || (y == 0)))
-    { c = i = x = y = 0;
-      while ((++i < BUFSIZ) && (c != EOF) && (c != '\n') && (x==0) && (y==0))
-	if ((header[i] = c = getc(packfile)) == '\n')
-	{ if (sscanf(header, PACKIDENTIFIER, &x, &y) == 2)
-	    version = 1;
-	  else if (sscanf(header, V2IDENTIFIER, &x, &y) == 2)
-	    version = 2;}}
-    if (version == 1)
-      unpack_long(packfile, x, y, img);
-    else if (version == 2)
-      v2unpack_long(packfile, x, y, img);
-    fclose(packfile);}}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void unpack_word(FILE *packfile, int x, int y, WORD *img)
-#else
-  void unpack_word(packfile, x, y, img)
-  FILE *packfile;
-  int x, y;
-  WORD *img;
-#endif
-/* Unpacks a packed image into the WORD-array 'img'. The image is stored
-   in 'packfile'. The file should be properly positioned: the first BYTE
-   read is assumed to be the first BYTE of the packed image. */
-
-{ int valids = 0, spillbits = 0, usedbits, total = x * y;
-  LONG window = 0L, spill = 0, pixel = 0, nextint, bitnum, pixnum;
-  static int bitdecode[8] = {0, 4, 5, 6, 7, 8, 16, 32};
-
-  while (pixel < total)
-  { if (valids < 6)
-    { if (spillbits > 0)
-      { window |= shift_left(spill, valids);
-	valids += spillbits;
-	spillbits = 0;}
-      else
-      { spill = (LONG) getc(packfile);
-	spillbits = 8;}}
-    else
-    { pixnum = 1 << (window & setbits[3]);
-      window = shift_right(window, 3);
-      bitnum = bitdecode[window & setbits[3]];
-      window = shift_right(window, 3);
-      valids -= 6;
-      while ((pixnum > 0) && (pixel < total))
-      { if (valids < bitnum)
-	{ if (spillbits > 0)
-	  { window |= shift_left(spill, valids);
-	    if ((32 - valids) > spillbits)
-	    { valids += spillbits;
-	      spillbits = 0;}
-	    else
-	    { usedbits = 32 - valids;
-	      spill = shift_right(spill, usedbits);
-	      spillbits -= usedbits;
-	      valids = 32;}}
-	  else
-	  { spill = (LONG) getc(packfile);
-	    spillbits = 8;}}
-        else
-	{ --pixnum;
-	  if (bitnum == 0)
-            nextint = 0;
-	  else
-	  { nextint = window & setbits[bitnum];
-	    valids -= bitnum;
-	    window = shift_right(window, bitnum);
-	    if ((nextint & (1 << (bitnum - 1))) != 0)
-	      nextint |= ~setbits[bitnum];}
-	  if (pixel > x)
-	  { img[pixel] = (WORD) (nextint +
-				      (img[pixel-1] + img[pixel-x+1] +
-                                       img[pixel-x] + img[pixel-x-1] + 2) / 4);
-	    ++pixel;}
-	  else if (pixel != 0)
-	  { img[pixel] = (WORD) (img[pixel - 1] + nextint);
-	    ++pixel;}
-	  else
-	    img[pixel++] = (WORD) nextint;}}}}}
-
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void v2unpack_word(FILE *packfile, int x, int y, WORD *img)
-#else
-   void v2unpack_word(packfile, x, y, img)
-   FILE *packfile;
-   int x, y;
-   WORD *img;
-#endif
-/* Unpacks a packed image into the WORD-array 'img'. The image is stored
-   in 'packfile'. The file should be properly positioned: the first BYTE
-   read is assumed to be the first BYTE of the packed image. */
-
-{ int valids = 0, spillbits = 0, usedbits, total = x * y;
-  LONG window = 0L, spill = 0, pixel = 0, nextint, bitnum, pixnum;
-  static int bitdecode[16] = {0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-                              16, 32};
-
-  while (pixel < total)
-  { if (valids < 7)
-    { if (spillbits > 0)
-      { window |= shift_left(spill, valids);
-	valids += spillbits;
-	spillbits = 0;}
-      else
-      { spill = (LONG) getc(packfile);
-	spillbits = 8;}}
-    else
-    { pixnum = 1 << (window & setbits[3]);
-      window = shift_right(window, 3);
-      bitnum = bitdecode[window & setbits[4]];
-      window = shift_right(window, 4);
-      valids -= 7;
-      while ((pixnum > 0) && (pixel < total))
-      { if (valids < bitnum)
-	{ if (spillbits > 0)
-	  { window |= shift_left(spill, valids);
-	    if ((32 - valids) > spillbits)
-	    { valids += spillbits;
-	      spillbits = 0;}
-	    else
-	    { usedbits = 32 - valids;
-	      spill = shift_right(spill, usedbits);
-	      spillbits -= usedbits;
-	      valids = 32;}}
-	  else
-	  { spill = (LONG) getc(packfile);
-	    spillbits = 8;}}
-        else
-	{ --pixnum;
-	  if (bitnum == 0)
-            nextint = 0;
-	  else
-	  { nextint = window & setbits[bitnum];
-	    valids -= bitnum;
-	    window = shift_right(window, bitnum);
-	    if ((nextint & (1 << (bitnum - 1))) != 0)
-	      nextint |= ~setbits[bitnum];}
- 	  if (pixel > x)
-	  { img[pixel] = (WORD) (nextint +
-				      (img[pixel-1] + img[pixel-x+1] +
-                                       img[pixel-x] + img[pixel-x-1] + 2) / 4);
-	    ++pixel;}
-	  else if (pixel != 0)
-	  { img[pixel] = (WORD) (img[pixel - 1] + nextint);
-	    ++pixel;}
-	  else
-	    img[pixel++] = (WORD) nextint;}}}}}
-
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void unpack_long(FILE *packfile, int x, int y, LONG *img)
-#else
-  void unpack_long(packfile, x, y, img)
-  FILE *packfile;
-  int x, y;
-  LONG *img;
-#endif
-/* Unpacks a packed image into the LONG-array 'img'. The image is stored
-   in 'packfile'. The file should be properly positioned: the first BYTE
-   read is assumed to be the first BYTE of the packed image. */
-
-{ int valids = 0, spillbits = 0, usedbits, total = x * y;
-  LONG window = 0L, spill = 0, pixel = 0, nextint, bitnum, pixnum;
-  static int bitdecode[8] = {0, 4, 5, 6, 7, 8, 16, 32};
-
-  while (pixel < total)
-  { if (valids < 6)
-    { if (spillbits > 0)
-      { window |= shift_left(spill, valids);
-	valids += spillbits;
-	spillbits = 0;}
-      else
-      { spill = (LONG) getc(packfile);
-	spillbits = 8;}}
-    else
-    { pixnum = 1 << (window & setbits[3]);
-      window = shift_right(window, 3);
-      bitnum = bitdecode[window & setbits[3]];
-      window = shift_right(window, 3);
-      valids -= 6;
-      while ((pixnum > 0) && (pixel < total))
-      { if (valids < bitnum)
-	{ if (spillbits > 0)
-	  { window |= shift_left(spill, valids);
-	    if ((32 - valids) > spillbits)
-	    { valids += spillbits;
-	      spillbits = 0;}
-	    else
-	    { usedbits = 32 - valids;
-	      spill = shift_right(spill, usedbits);
-	      spillbits -= usedbits;
-	      valids = 32;}}
-	  else
-	  { spill = (LONG) getc(packfile);
-	    spillbits = 8;}}
-        else
-	{ --pixnum;
-	  if (bitnum == 0)
-            nextint = 0;
-	  else
-	  { nextint = window & setbits[bitnum];
-	    valids -= bitnum;
-	    window = shift_right(window, bitnum);
-	    if ((nextint & (1 << (bitnum - 1))) != 0)
-	      nextint |= ~setbits[bitnum];}
-	  if (pixel > x)
-	  { img[pixel] = (LONG) (nextint +
-				      (img[pixel-1] + img[pixel-x+1] +
-                                       img[pixel-x] + img[pixel-x-1] + 2) / 4);
-	    ++pixel;}
-	  else if (pixel != 0)
-	  { img[pixel] = (LONG) (img[pixel - 1] + nextint);
-	    ++pixel;}
-	  else
-	    img[pixel++] = (LONG) nextint;}}}}}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void v2unpack_long(FILE *packfile, int x, int y, LONG *img)
-#else
-  void v2unpack_long(packfile, x, y, img)
-  FILE *packfile;
-  int x, y;
-  LONG *img;
-#endif
-/* Unpacks a packed image into the LONG-array 'img'. The image is stored
-   in 'packfile'. The file should be properly positioned: the first BYTE
-   read is assumed to be the first BYTE of the packed image. */
-
-{ int valids = 0, spillbits = 0, usedbits, total = x * y;
-  LONG window = 0L, spill = 0, pixel = 0, nextint, bitnum, pixnum;
-  static int bitdecode[16] = {0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-                              16, 32};
-
-  while (pixel < total)
-  { if (valids < 7)
-    { if (spillbits > 0)
-      { window |= shift_left(spill, valids);
-	valids += spillbits;
-	spillbits = 0;}
-      else
-      { spill = (LONG) getc(packfile);
-	spillbits = 8;}}
-    else
-    { pixnum = 1 << (window & setbits[3]);
-      window = shift_right(window, 3);
-      bitnum = bitdecode[window & setbits[4]];
-      window = shift_right(window, 4);
-      valids -= 7;
-      while ((pixnum > 0) && (pixel < total))
-      { if (valids < bitnum)
-	{ if (spillbits > 0)
-	  { window |= shift_left(spill, valids);
-	    if ((32 - valids) > spillbits)
-	    { valids += spillbits;
-	      spillbits = 0;}
-	    else
-	    { usedbits = 32 - valids;
-	      spill = shift_right(spill, usedbits);
-	      spillbits -= usedbits;
-	      valids = 32;}}
-	  else
-	  { spill = (LONG) getc(packfile);
-	    spillbits = 8;}}
-        else
-	{ --pixnum;
-	  if (bitnum == 0)
-            nextint = 0;
-	  else
-	  { nextint = window & setbits[bitnum];
-	    valids -= bitnum;
-	    window = shift_right(window, bitnum);
-	    if ((nextint & (1 << (bitnum - 1))) != 0)
-	      nextint |= ~setbits[bitnum];}
-	  if (pixel > x)
-	  { img[pixel] = (LONG) (nextint +
-				      (img[pixel-1] + img[pixel-x+1] +
-                                       img[pixel-x] + img[pixel-x-1] + 2) / 4);
-	    ++pixel;}
-	  else if (pixel != 0)
-	  { img[pixel] = (LONG) (img[pixel - 1] + nextint);
-	    ++pixel;}
-	  else
-	    img[pixel++] = (LONG) nextint;}}}}}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPES)
-  char *long_to_char(LONG *lng, char *string)
-#else
-  char *long_to_char(lng, string)
-  LONG *lng;
-  char *string;
-#endif
-/* Shrinks an array of LONGs into an array of chars, used in order to translate
-   an encoded string array passed by fortran into a c-type string. Returns
-   'string'. */
-
-{ char *s = string;
-
-  do
-    *(s++) = (char) *lng;
-  while (*(lng++) != 0);
-  return(string);}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void imsiz_c(char *filename, LONG *x, LONG *y)
-#else
-  void imsiz_c(filename, x, y)
-  char *filename;
-  LONG *x, *y;
-#endif
-/* Determines the size of the the packed image "filename" after unpacking. The
-   dimensions are returned in x and y. */
-
-{ FILE *packfile;
-  int i = 0, c = 0;
-  char header[BUFSIZ];
-
-  packfile = fopen(filename, "r");
-  header[0] = '\n';
-  header[1] = 0;
-  *x = *y = 0;
-  if (packfile != NULL)
-  { while ((c != EOF) && ((*x == 0) || (*y == 0)))
-    { c = i = *x = *y = 0;
-      while ((++i < BUFSIZ) && (c != EOF) && (c != '\n') && (*x==0) && (*y==0))
-      { if ((header[i] = c = getc(packfile)) == '\n')
-        { if (sscanf(header, PACKIDENTIFIER, x, y) == 2) {
-/*          version = 1; */
-          }
-          else if (sscanf(header, V2IDENTIFIER, x, y) == 2) {
-/*          version = 2; */
-          }
-        }
-      }
-    }
-  }
-  fclose(packfile);
-}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void imsiz_f(LONG *filename, LONG *x, LONG *y)
-#else
-  void imsiz_f(filename, x, y)
-  LONG *filename, *x, *y;
-#endif
-/* Fortran frontend of imsiz_c. Because the way in which fortran
-   passes strings is not defined, it passes the filename in which the
-   packed image should be stored as an array of LONGs. */
-
-{ char c_filename[1024];
-#if !defined (PROTOTYPE)
-  void imsiz_c();
-  char *long_to_char();
-#endif
-
-  imsiz_c(long_to_char(filename, c_filename), x, y);}
-
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void mirror_wordimg(WORD *img, LONG *x, LONG  *y)
-#else
-  void mirror_wordimg(img, x, y)
-  WORD *img;
-  LONG *x, *y;
-#endif
-/* Replaces img with its mirror by interchanging rows. 'x' is the fast index,
-   'y' is the slow index. */
-
-{ WORD *buff;
-  int i, j;
-
-  buff = (WORD *)malloc(sizeof(WORD) * *x);
-  for (i = 0, j = *y - 1; i < j; ++i, --j)
-  { memcpy(buff, img + (i * *x), sizeof(WORD) * *x);
-    memcpy(img + (i * *x), img + (j * *x), sizeof(WORD) * *x);
-    memcpy(img + (j * *x), buff, sizeof(WORD) * *x);}
-  free((void *) buff);}
-
-
-
-/******************************************************************************/
-
-#if defined (PROTOTYPE)
-  void mirror_longimg(LONG *img, LONG *x, LONG  *y)
-#else
-  void mirror_longimg(img, x, y)
-  LONG *img, *x, *y;
-#endif
-/* Replaces img with its mirror by interchanging rows. 'x' is the fast index,
-   'y' is the slow index. */
-
-{ LONG *buff;
-  int i, j;
-
-  buff = (LONG *)malloc(sizeof(LONG) * *x);
-  for (i = 0, j = *y - 1; i < j; ++i, --j)
-  { memcpy(buff, img + (i * *x), sizeof(LONG) * *x);
-    memcpy(img + (i * *x), img + (j * *x), sizeof(LONG) * *x);
-    memcpy(img + (j * *x), buff, sizeof(LONG) * *x);}
-  free((void *) buff);}
-
-
-
-/******************************************************************************/
-
-
-
diff --git a/src/pack_c.h b/src/pack_c.h
deleted file mode 100644
index f5b78cc..0000000
--- a/src/pack_c.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Some general defines: */
-
-
-#define PACKIDENTIFIER "\nCCP4 packed image, X: %04d, Y: %04d\n"
-/* This string defines the start of a packed image. An image file is scanned
-   until this string is encountered, the size of the unpacked image is
-   determined from the values of X and Y (which are written out as formatted
-   ascii numbers), and the packed image is expected to start immediately after
-   the null-character ending the string. */
-
-#define V2IDENTIFIER "\nCCP4 packed image V2, X: %04d, Y: %04d\n"
-/* This string defines the start of a packed image. An image file is scanned
-   until this string is encountered, the size of the unpacked image is
-   determined from the values of X and Y (which are written out as formatted
-   ascii numbers), and the packed image is expected to start immediately after
-   the null-character ending the string. */
-
-#define PACKBUFSIZ BUFSIZ
-/* Size of internal buffer in which the packed array is stored during transit
-   form an unpacked image to a packed image on disk. It is set to the size
-   used by the buffered io-routines given in <stdio.h>, but it could be
-   anything. */
-
-#define DIFFBUFSIZ 16384L
-/* Size of the internal buffer in which the differences between neighbouring
-   pixels are stored prior to compression. The image is therefore compressed
-   in DIFFBUFSIZ chunks. Decompression does not need to know what DIFFBUFSIZ
-   was when the image was compressed. By increasing this value, the image
-   can be compressed into a packed image which is a few bytes smaller. Do
-   not decrease the value of DIFFBUFSIZ below 128L. */
-
-#define BYTE char
-/* BYTE is a one byte integer. */
-
-#define WORD short int
-/* WORD is a two-byte integer. */
-
-#define LONG int
-/* LONG is a four byte integer. */
-/* Dave Love 5/7/94: using `int' gets you 4 bytes on the 32-bit Unix
-   (and VAX) systems I know of and also on (64-bit) OSF/1 Alphas which
-   have 64-bit longs.  (This definition previously used `long'.) */
-
-
-
-/******************************************************************************/
-
-/* Some usefull macros used in the code of this sourcefile: */
-
-
-#define max(x, y) (((x) > (y)) ? (x) : (y))
-/* Returns maximum of x and y. */
-
-#define min(x, y) (((x) < (y)) ? (x) : (y))
-/* Returns minimum of x and y. */
-
-#undef abs			/* avoid complaint from DEC C, at least */
-#define abs(x) (((x) < 0) ? (-(x)) : (x))
-/* Returns the absolute value of x. */
-
-/* Used to be 'static const LONG' but const declaration gives trouble on HPs */
-#ifndef SKIP_SETBITS
-static LONG setbits[33] =
-                         {0x00000000L, 0x00000001L, 0x00000003L, 0x00000007L,
-			  0x0000000FL, 0x0000001FL, 0x0000003FL, 0x0000007FL,
-			  0x000000FFL, 0x000001FFL, 0x000003FFL, 0x000007FFL,
-			  0x00000FFFL, 0x00001FFFL, 0x00003FFFL, 0x00007FFFL,
-			  0x0000FFFFL, 0x0001FFFFL, 0x0003FFFFL, 0x0007FFFFL,
-			  0x000FFFFFL, 0x001FFFFFL, 0x003FFFFFL, 0x007FFFFFL,
-			  0x00FFFFFFL, 0x01FFFFFFL, 0x03FFFFFFL, 0x07FFFFFFL,
-			  0x0FFFFFFFL, 0x1FFFFFFFL, 0x3FFFFFFFL, 0x7FFFFFFFL,
-                          0xFFFFFFFFL};
-/* This is not a macro really, but I've included it here anyway. Upon indexing,
-   it returns a LONG with the lower (index) number of bits set. It is equivalent
-   to the following macro:
-     #define setbits(n) (((n) == 32) : ((1L << (n)) - 1) : (-1L))
-   Indexing the const array should usually be slightly faster. */
-#endif
-
-#define shift_left(x, n)  (((x) & setbits[32 - (n)]) << (n))
-/* This macro is included because the C standard does not properly define a
-   left shift: on some machines the bits which are pushed out at the left are
-   popped back in at the right. By masking, the macro prevents this behaviour.
-   If you are sure that your machine does not pops bits back in, you can speed
-   up the code insignificantly by taking out the masking. */
-
-#define shift_right(x, n) (((x) >> (n)) & setbits[32 - (n)])
-/* See comment on left shift. */
-
-
-
-/******************************************************************************/
-
-
-
-
-/* Functions required for packing: */
-
-#if defined (PROTOTYPE)
-
-
-void pack_wordimage_c(WORD *img, int x, int y, char *filename);
-/* Pack image 'img', containing 'x * y' WORD-sized pixels into 'filename'.
-   This function generates Version 1 images! */
-void pack_wordimage_copen(WORD *img, int x, int y, FILE *packfile)
-
-void pack_longimage_c(LONG *img, int x, int y, char *filename);
-/* Pack image 'img', containing 'x * y' LONG-sized pixels into 'filename'.
-   This function generates Version 1 images! */
-void pack_longimage_copen(LONG *img, int x, int y, FILE *packfile)
-
-
-void v2pack_wordimage_c(WORD *img, int x, int y, char *filename);
-/* Pack image 'img', containing 'x * y' WORD-sized pixels into 'filename'.
-   This function generates Version 2 images! */
-
-void v2pack_longimage_c(LONG *img, int x, int y, char *filename);
-/* Pack image 'img', containing 'x * y' LONG-sized pixels into 'filename'.
-   This function generates Version 2 images! */
-
-
-/* Functions required for unpacking: */
-void unpack_word(FILE *packfile, int x, int y, WORD *img);
-
-void readpack_word_c(WORD *img, char *filename);
-/* Unpacks packed image from 'filename' into the WORD-array 'img'. Scans the
-   file defined by 'filename' until the PACKIDENTIFIER is found, then unpacks
-   starting from there. */
-
-void readpack_long_c(LONG *img, char *filename);
-/* Unpacks packed image from 'filename' into the LONG-array 'img'. Scans the
-   file defined by 'filename' until the PACKIDENTIFIER is found, then unpacks
-   starting from there. */
-
-void imsiz_c(char *filename, LONG *x, LONG *y);
-/* Determines the size of the the packed image "filename" after unpacking. The
-   dimensions are returned in x and y. */
-
-#endif  /* (PROTOTYPE) */
-
diff --git a/src/setup.py b/src/setup.py
deleted file mode 100644
index c283270..0000000
--- a/src/setup.py
+++ /dev/null
@@ -1,27 +0,0 @@
-try:
-    from setuptools import setup
-except ImportError:
-    from distutils.core import setup
-
-from distutils.core import  Extension
-from Cython.Distutils import build_ext
-
-# for numpy
-from numpy.distutils.misc_util import get_numpy_include_dirs
-
-
-mar345_ext = Extension("mar345_IO",
-                    include_dirs=get_numpy_include_dirs(),
-                    sources=["pack_c.c", 'mar345_IO.c', "ccp4_pack.c"])
-
-
-setup(name='mar345_IO',
-      version="0.0.0",
-      author="Jerome Kieffer",
-      author_email="jerome.kieffer at esrf.eu",
-      description='Mar345 writer',
-      ext_modules=[mar345_ext],
-      cmdclass={'build_ext': build_ext},
-      )
-
-
diff --git a/test/coral31_benchheaders b/test/coral31_benchheaders
deleted file mode 100644
index d622a64..0000000
--- a/test/coral31_benchheaders
+++ /dev/null
@@ -1,46 +0,0 @@
-  0.000857 testimages/Cr8F8140k103.0026
-  0.046055 testimages/Cr8F8140k103.0026.bz2
-  0.001116 testimages/Cr8F8140k103.0026.gz
-  0.000727 testimages/F2K_Seb_Lyso0675.edf
-  0.083457 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.000906 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000454 testimages/GE_aSI_detector_image_1529
-  0.058213 testimages/GE_aSI_detector_image_1529.bz2
-  0.000798 testimages/GE_aSI_detector_image_1529.gz
-  0.000572 testimages/b191_1_9_1.img
-  0.057766 testimages/b191_1_9_1.img.bz2
-  0.000981 testimages/b191_1_9_1.img.gz
-  0.000556 testimages/b191_1_9_1_uncompressed.img
-  0.078372 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.001016 testimages/b191_1_9_1_uncompressed.img.gz
-  0.003505 testimages/corkcont2_H_0089.mccd
-  0.067027 testimages/corkcont2_H_0089.mccd.bz2
-  0.004070 testimages/corkcont2_H_0089.mccd.gz
-  0.000617 testimages/example.mar2300
-  0.153640 testimages/example.mar2300.bz2
-  0.000832 testimages/example.mar2300.gz
-  0.000430 testimages/face.edf
-  0.001603 testimages/face.edf.bz2
-  0.001281 testimages/face.edf.gz
-  0.000349 testimages/face.msk
-  0.000797 testimages/face.msk.bz2
-  0.000507 testimages/face.msk.gz
-  0.000431 testimages/fit2d_click.edf
-  0.002208 testimages/fit2d_click.edf.bz2
-  0.011531 testimages/fit2d_click.edf.gz
-  0.000408 testimages/fit2d_click.msk
-  0.000592 testimages/fit2d_click.msk.bz2
-  0.002028 testimages/fit2d_click.msk.gz
-  0.000444 testimages/mb_LP_1_001.edf
-  0.020046 testimages/mb_LP_1_001.img
-  0.644009 testimages/mb_LP_1_001.img.bz2
-  0.130721 testimages/mb_LP_1_001.img.gz
-  0.000385 testimages/oPPA_5grains_0001.tif
-  0.011607 testimages/oPPA_5grains_0001.tif.bz2
-  0.001579 testimages/oPPA_5grains_0001.tif.gz
-  0.003500 testimages/somedata_0001.mccd
-  0.078679 testimages/somedata_0001.mccd.bz2
-  0.003825 testimages/somedata_0001.mccd.gz
-  0.000364 testimages/testmap1_0002.tif
-  0.000399 testimages/testmap1_0002.tif.bz2
-  0.000536 testimages/testmap1_0002.tif.gz
diff --git a/test/coral31_benchmark b/test/coral31_benchmark
deleted file mode 100644
index 99d2622..0000000
--- a/test/coral31_benchmark
+++ /dev/null
@@ -1,53 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0000 0.0000 0.0100                   0.508 testimages/Cr8F8140k103.0026
-0.0100 0.0000 0.0600 0.0358 0.0300     0.508 testimages/Cr8F8140k103.0026.bz2
-0.0000 0.0000 0.0100 0.0114 0.0100     0.508 testimages/Cr8F8140k103.0026.gz
-0.0100 0.0100 0.0300                   8.003 testimages/F2K_Seb_Lyso0675.edf
-0.0000 0.0100 0.9700 0.9219 0.9200     8.003 testimages/F2K_Seb_Lyso0675.edf.bz2
-0.0000 0.0100 0.1400 0.1360 0.1200     8.003 testimages/F2K_Seb_Lyso0675.edf.gz
-0.0100 0.0200 0.0300                   8.008 testimages/GE_aSI_detector_image_1529
-0.0100 0.0000 0.7700 0.6982 0.6800     8.008 testimages/GE_aSI_detector_image_1529.bz2
-0.0100 0.0000 0.1000 0.1031 0.1000     8.008 testimages/GE_aSI_detector_image_1529.gz
-0.0000 0.0000 0.3400                   0.256 testimages/b191_1_9_1.img
-0.0000 0.0000 0.3800 0.0278 0.0300     0.256 testimages/b191_1_9_1.img.bz2
-0.0000 0.0000 0.3300 0.0083 0.0000     0.256 testimages/b191_1_9_1.img.gz
-0.0000 0.0000 0.0000                   1.005 testimages/b191_1_9_1_uncompressed.img
-0.0000 0.0000 0.1400 0.0954 0.1000     1.005 testimages/b191_1_9_1_uncompressed.img.bz2
-0.0000 0.0000 0.0200 0.0159 0.0100     1.005 testimages/b191_1_9_1_uncompressed.img.gz
-0.0100 0.0100 0.1500                   8.004 testimages/corkcont2_H_0089.mccd
-0.0100 0.0000 0.5000 0.3985 0.3700     8.004 testimages/corkcont2_H_0089.mccd.bz2
-0.0000 0.0000 0.1600 0.1114 0.0700     8.004 testimages/corkcont2_H_0089.mccd.gz
-0.0100 0.0000 0.1400                   3.471 testimages/example.mar2300
-0.0000 0.0000 0.7900 0.5799 0.5500     3.471 testimages/example.mar2300.bz2
-0.0000 0.0100 0.1800 0.0671 0.0400     3.471 testimages/example.mar2300.gz
-0.0000 0.0000 0.0000                   0.215 testimages/face.edf
-0.0000 0.0000 0.0100 0.0201 0.0000     0.215 testimages/face.edf.bz2
-0.0000 0.0000 0.0000 0.0183 0.0000     0.215 testimages/face.edf.gz
-0.0000 0.0000 0.0000                   0.008 testimages/face.msk
-0.0000 0.0000 0.0100 0.0188 0.0000     0.008 testimages/face.msk.bz2
-0.0000 0.0100 0.0000 0.0185 0.0000     0.008 testimages/face.msk.gz
-0.0100 0.0000 0.0100                   4.001 testimages/fit2d_click.edf
-0.0000 0.0000 0.0200 0.0436 0.0200     4.001 testimages/fit2d_click.edf.bz2
-0.0000 0.0000 0.0300 0.0524 0.0300     4.001 testimages/fit2d_click.edf.gz
-0.0000 0.0000 0.1100                   0.126 testimages/fit2d_click.msk
-0.0000 0.0000 0.1100 0.0189 0.0100     0.126 testimages/fit2d_click.msk.bz2
-0.0000 0.0000 0.1000 0.0180 0.0000     0.126 testimages/fit2d_click.msk.gz
-0.0600 0.0700 0.1300                  36.001 testimages/mb_LP_1_001.edf
-0.0400 0.0300 0.1600                  18.000 testimages/mb_LP_1_001.img
-0.0100 0.0000 2.4600 2.4958 1.8100    18.000 testimages/mb_LP_1_001.img.bz2
-0.0100 0.0100 0.4100 0.2717 0.2300    18.000 testimages/mb_LP_1_001.img.gz
-0.0200 0.0100 0.1800                   8.067 testimages/oPPA_5grains_0001.tif
-0.0000 0.0000 0.5100 0.5660 0.3400     8.067 testimages/oPPA_5grains_0001.tif.bz2
-0.0000 0.0000 0.1900 0.0829 0.0400     8.067 testimages/oPPA_5grains_0001.tif.gz
-0.0000 0.0000 0.0300                   2.004 testimages/somedata_0001.mccd
-0.0000 0.0000 0.2600 0.2281 0.2100     2.004 testimages/somedata_0001.mccd.bz2
-0.0000 0.0000 0.0700 0.0507 0.0200     2.004 testimages/somedata_0001.mccd.gz
-0.0000 0.0000 0.0000                   0.023 testimages/testmap1_0002.tif
-0.0000 0.0000 0.0000 0.0192 0.0000     0.023 testimages/testmap1_0002.tif.bz2
-0.0000 0.0000 0.0000 0.0205 0.0000     0.023 testimages/testmap1_0002.tif.gz
diff --git a/test/eeepc-jonathanw_benchheaders b/test/eeepc-jonathanw_benchheaders
deleted file mode 100644
index 32b0750..0000000
--- a/test/eeepc-jonathanw_benchheaders
+++ /dev/null
@@ -1,46 +0,0 @@
-  0.002404 testimages/Cr8F8140k103.0026
-  0.206815 testimages/Cr8F8140k103.0026.bz2
-  0.003507 testimages/Cr8F8140k103.0026.gz
-  0.001946 testimages/F2K_Seb_Lyso0675.edf
-  0.400643 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.015549 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000832 testimages/GE_aSI_detector_image_1529
-  0.297967 testimages/GE_aSI_detector_image_1529.bz2
-  0.002485 testimages/GE_aSI_detector_image_1529.gz
-  0.001397 testimages/b191_1_9_1.img
-  0.399226 testimages/b191_1_9_1.img.bz2
-  0.010648 testimages/b191_1_9_1.img.gz
-  0.001454 testimages/b191_1_9_1_uncompressed.img
-  0.386724 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.003699 testimages/b191_1_9_1_uncompressed.img.gz
-  0.013971 testimages/corkcont2_H_0089.mccd
-  0.453871 testimages/corkcont2_H_0089.mccd.bz2
-  0.017732 testimages/corkcont2_H_0089.mccd.gz
-  0.001761 testimages/example.mar2300
-  0.723718 testimages/example.mar2300.bz2
-  0.002948 testimages/example.mar2300.gz
-  0.000841 testimages/face.edf
-  0.011863 testimages/face.edf.bz2
-  0.004975 testimages/face.edf.gz
-  0.000680 testimages/face.msk
-  0.002963 testimages/face.msk.bz2
-  0.001511 testimages/face.msk.gz
-  0.000861 testimages/fit2d_click.edf
-  0.011688 testimages/fit2d_click.edf.bz2
-  0.035719 testimages/fit2d_click.edf.gz
-  0.000706 testimages/fit2d_click.msk
-  0.001966 testimages/fit2d_click.msk.bz2
-  0.006991 testimages/fit2d_click.msk.gz
-  0.000755 testimages/mb_LP_1_001.edf
-  0.058444 testimages/mb_LP_1_001.img
-  3.408607 testimages/mb_LP_1_001.img.bz2
-  0.488263 testimages/mb_LP_1_001.img.gz
-  0.000593 testimages/oPPA_5grains_0001.tif
-  0.060364 testimages/oPPA_5grains_0001.tif.bz2
-  0.005937 testimages/oPPA_5grains_0001.tif.gz
-  0.013839 testimages/somedata_0001.mccd
-  0.381711 testimages/somedata_0001.mccd.bz2
-  0.019168 testimages/somedata_0001.mccd.gz
-  0.000574 testimages/testmap1_0002.tif
-  0.000943 testimages/testmap1_0002.tif.bz2
-  0.001888 testimages/testmap1_0002.tif.gz
diff --git a/test/eeepc-jonathanw_benchmark b/test/eeepc-jonathanw_benchmark
deleted file mode 100644
index f6a09ba..0000000
--- a/test/eeepc-jonathanw_benchmark
+++ /dev/null
@@ -1,53 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0000 0.0000 0.0200                   0.508 testimages/Cr8F8140k103.0026
-0.0000 0.0000 0.2700 0.1878 0.1600     0.508 testimages/Cr8F8140k103.0026.bz2
-0.0000 0.0000 0.0500 0.0430 0.0300     0.508 testimages/Cr8F8140k103.0026.gz
-0.0300 0.0300 0.0500                   8.003 testimages/F2K_Seb_Lyso0675.edf
-0.0200 0.0100 3.7200 3.6164 3.4900     8.003 testimages/F2K_Seb_Lyso0675.edf.bz2
-0.0200 0.0200 0.5200 0.6880 0.5000     8.003 testimages/F2K_Seb_Lyso0675.edf.gz
-0.0300 0.0300 0.0600                   8.008 testimages/GE_aSI_detector_image_1529
-0.0000 0.0200 3.1800 3.0424 2.8600     8.008 testimages/GE_aSI_detector_image_1529.bz2
-0.0100 0.0100 0.3800 0.5069 0.3500     8.008 testimages/GE_aSI_detector_image_1529.gz
-0.0000 0.0000 1.4400                   0.256 testimages/b191_1_9_1.img
-0.0000 0.0100 1.7400 0.1409 0.1200     0.256 testimages/b191_1_9_1.img.bz2
-0.0000 0.0000 1.4200 0.0255 0.0200     0.256 testimages/b191_1_9_1.img.gz
-0.0000 0.0000 0.0200                   1.005 testimages/b191_1_9_1_uncompressed.img
-0.0100 0.0000 0.6000 0.3607 0.3400     1.005 testimages/b191_1_9_1_uncompressed.img.bz2
-0.0100 0.0000 0.0500 0.0674 0.0400     1.005 testimages/b191_1_9_1_uncompressed.img.gz
-0.0300 0.0200 0.3400                   8.004 testimages/corkcont2_H_0089.mccd
-0.0000 0.0100 1.9600 1.6794 1.5200     8.004 testimages/corkcont2_H_0089.mccd.bz2
-0.0000 0.0000 0.5700 0.4143 0.2900     8.004 testimages/corkcont2_H_0089.mccd.gz
-0.0100 0.0100 0.7000                   3.471 testimages/example.mar2300
-0.0100 0.0100 3.0400 2.1931 2.0400     3.471 testimages/example.mar2300.bz2
-0.0100 0.0100 0.9000 0.2436 0.2100     3.471 testimages/example.mar2300.gz
-0.0100 0.0000 0.0000                   0.215 testimages/face.edf
-0.0000 0.0000 0.0100 0.0284 0.0100     0.215 testimages/face.edf.bz2
-0.0000 0.0000 0.0000 0.0217 0.0100     0.215 testimages/face.edf.gz
-0.0000 0.0000 0.0200                   0.008 testimages/face.msk
-0.0100 0.0000 0.0200 0.0181 0.0100     0.008 testimages/face.msk.bz2
-0.0000 0.0000 0.0200 0.0166 0.0000     0.008 testimages/face.msk.gz
-0.0300 0.0100 0.0400                   4.001 testimages/fit2d_click.edf
-0.0000 0.0000 0.1300 0.1984 0.1100     4.001 testimages/fit2d_click.edf.bz2
-0.0000 0.0000 0.1300 0.1338 0.0900     4.001 testimages/fit2d_click.edf.gz
-0.0000 0.0000 0.3200                   0.126 testimages/fit2d_click.msk
-0.0000 0.0000 0.3200 0.0212 0.0000     0.126 testimages/fit2d_click.msk.bz2
-0.0000 0.0000 0.3300 0.0201 0.0000     0.126 testimages/fit2d_click.msk.gz
-0.2000 0.1500 0.2800                  36.001 testimages/mb_LP_1_001.edf
-0.0700 0.0800 0.3500                  18.000 testimages/mb_LP_1_001.img
-0.0200 0.0200 10.4500 7.4476 6.8900    18.000 testimages/mb_LP_1_001.img.bz2
-0.0500 0.0200 1.5700 2.1255 0.9200    18.000 testimages/mb_LP_1_001.img.gz
-0.0400 0.0200 0.5300                   8.067 testimages/oPPA_5grains_0001.tif
-0.0000 0.0000 1.9100 1.5322 1.3800     8.067 testimages/oPPA_5grains_0001.tif.bz2
-0.0000 0.0000 0.6400 0.2398 0.1800     8.067 testimages/oPPA_5grains_0001.tif.gz
-0.0000 0.0100 0.0900                   2.004 testimages/somedata_0001.mccd
-0.0000 0.0000 0.9200 0.7265 0.6400     2.004 testimages/somedata_0001.mccd.bz2
-0.0000 0.0100 0.1700 0.1496 0.0900     2.004 testimages/somedata_0001.mccd.gz
-0.0000 0.0000 0.0000                   0.023 testimages/testmap1_0002.tif
-0.0000 0.0000 0.0100 0.0211 0.0000     0.023 testimages/testmap1_0002.tif.bz2
-0.0100 0.0000 0.0000 0.0203 0.0000     0.023 testimages/testmap1_0002.tif.gz
diff --git a/test/esrflinux1-1a_benchheaders b/test/esrflinux1-1a_benchheaders
deleted file mode 100644
index 7b848b4..0000000
--- a/test/esrflinux1-1a_benchheaders
+++ /dev/null
@@ -1,46 +0,0 @@
-  0.041507 testimages/Cr8F8140k103.0026
-  0.060209 testimages/Cr8F8140k103.0026.bz2
-  0.001523 testimages/Cr8F8140k103.0026.gz
-  0.001040 testimages/F2K_Seb_Lyso0675.edf
-  0.115198 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.001390 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000740 testimages/GE_aSI_detector_image_1529
-  0.082954 testimages/GE_aSI_detector_image_1529.bz2
-  0.001530 testimages/GE_aSI_detector_image_1529.gz
-  0.001205 testimages/b191_1_9_1.img
-  0.082022 testimages/b191_1_9_1.img.bz2
-  0.001455 testimages/b191_1_9_1.img.gz
-  0.000870 testimages/b191_1_9_1_uncompressed.img
-  0.107474 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.002650 testimages/b191_1_9_1_uncompressed.img.gz
-  0.007094 testimages/corkcont2_H_0089.mccd
-  0.135271 testimages/corkcont2_H_0089.mccd.bz2
-  0.006231 testimages/corkcont2_H_0089.mccd.gz
-  0.041302 testimages/example.mar2300
-  0.215028 testimages/example.mar2300.bz2
-  0.001293 testimages/example.mar2300.gz
-  0.000765 testimages/face.edf
-  0.002466 testimages/face.edf.bz2
-  0.002021 testimages/face.edf.gz
-  0.000607 testimages/face.msk
-  0.041250 testimages/face.msk.bz2
-  0.000841 testimages/face.msk.gz
-  0.000759 testimages/fit2d_click.edf
-  0.003282 testimages/fit2d_click.edf.bz2
-  0.017603 testimages/fit2d_click.edf.gz
-  0.000693 testimages/fit2d_click.msk
-  0.000938 testimages/fit2d_click.msk.bz2
-  0.003037 testimages/fit2d_click.msk.gz
-  0.000748 testimages/mb_LP_1_001.edf
-  0.028433 testimages/mb_LP_1_001.img
-  0.835932 testimages/mb_LP_1_001.img.bz2
-  0.171870 testimages/mb_LP_1_001.img.gz
-  0.000714 testimages/oPPA_5grains_0001.tif
-  0.031276 testimages/oPPA_5grains_0001.tif.bz2
-  0.003840 testimages/oPPA_5grains_0001.tif.gz
-  0.005126 testimages/somedata_0001.mccd
-  0.110826 testimages/somedata_0001.mccd.bz2
-  0.006386 testimages/somedata_0001.mccd.gz
-  0.003645 testimages/testmap1_0002.tif
-  0.001334 testimages/testmap1_0002.tif.bz2
-  0.001180 testimages/testmap1_0002.tif.gz
diff --git a/test/esrflinux1-1a_benchmark b/test/esrflinux1-1a_benchmark
deleted file mode 100644
index 858b59e..0000000
--- a/test/esrflinux1-1a_benchmark
+++ /dev/null
@@ -1,3563 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0000 0.0000 0.0200                   0.508 testimages/Cr8F8140k103.0026
-Thu Oct 30 12:14:08 2008    stats
-
-         637 function calls in 0.008 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.008    0.008 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.001    0.001    0.001    0.001 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.007    0.007 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.008    0.008 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.003    0.003 readbytestream.py:27(readbytestream)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        2    0.000    0.000    0.000    0.000 {len}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        6    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0800 0.0530 0.0400     0.508 testimages/Cr8F8140k103.0026.bz2
-Thu Oct 30 12:14:08 2008    stats
-
-         637 function calls in 0.079 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.079    0.079 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.001    0.001    0.030    0.030 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.049    0.049 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.079    0.079 openimage.py:67(openimage)
-        1    0.000    0.000    0.030    0.030 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.015    0.015 readbytestream.py:27(readbytestream)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        2    0.000    0.000    0.000    0.000 {len}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        6    0.071    0.012    0.071    0.012 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'bz2.BZ2File' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tell' of 'bz2.BZ2File' objects}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.fromstring}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0100 0.0200 0.0182 0.0100     0.508 testimages/Cr8F8140k103.0026.gz
-Thu Oct 30 12:14:09 2008    stats
-
-         818 function calls in 0.019 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.019    0.019 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.001    0.001    0.002    0.002 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.017    0.017 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        7    0.001    0.000    0.012    0.002 gzip.py:208(read)
-       12    0.000    0.000    0.011    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       12    0.003    0.000    0.003    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:360(tell)
-        1    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.019    0.019 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.012    0.012 readbytestream.py:27(readbytestream)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       12    0.006    0.001    0.006    0.001 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-       27    0.000    0.000    0.000    0.000 {len}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       58    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       12    0.000    0.000    0.000    0.000 {min}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        2    0.000    0.000    0.000    0.000 {range}
-       14    0.001    0.000    0.001    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0200 0.0200                   8.003 testimages/F2K_Seb_Lyso0675.edf
-Thu Oct 30 12:14:09 2008    stats
-
-         624 function calls in 0.034 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.034    0.034 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.001    0.001    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.031    0.031 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.032    0.032 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {len}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        8    0.015    0.002    0.015    0.002 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.015    0.015    0.015    0.015 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0100 0.0000 1.1700 1.1390 1.0800     8.003 testimages/F2K_Seb_Lyso0675.edf.bz2
-Thu Oct 30 12:14:13 2008    stats
-
-         624 function calls in 1.164 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    1.164    1.164 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.001    0.001    0.058    0.058 edfimage.py:55(_readheader)
-        1    0.000    0.000    1.104    1.104 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        2    0.001    0.001    0.001    0.001 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    1.163    1.163 openimage.py:67(openimage)
-        1    0.001    0.001    0.058    0.058 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {len}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        8    1.142    0.143    1.142    0.143 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.015    0.015    0.015    0.015 {numpy.core.multiarray.fromstring}
-
-
-0.0100 0.0100 0.1900 0.6054 0.1700     8.003 testimages/F2K_Seb_Lyso0675.edf.gz
-Thu Oct 30 12:14:15 2008    stats
-
-         845 function calls in 0.595 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.595    0.595 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.001    0.001    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.590    0.590 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.401    0.200 fabioimage.py:259(_open)
-        2    0.000    0.000    0.401    0.200 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        8    0.002    0.000    0.174    0.022 gzip.py:208(read)
-       17    0.000    0.000    0.172    0.010 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       16    0.041    0.003    0.054    0.003 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.400    0.200 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.593    0.593 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {apply}
-       16    0.108    0.007    0.108    0.007 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       45    0.000    0.000    0.000    0.000 {len}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       68    0.009    0.000    0.009    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.015    0.015    0.015    0.015 {numpy.core.multiarray.fromstring}
-        2    0.400    0.200    0.400    0.200 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-       18    0.013    0.001    0.013    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0200 0.0400                   8.008 testimages/GE_aSI_detector_image_1529
-Thu Oct 30 12:14:16 2008    stats
-
-         87 function calls in 0.434 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.434    0.434 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 GEimage.py:29(_readheader)
-        1    0.001    0.001    0.031    0.031 GEimage.py:460(read)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.401    0.201 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.432    0.432 openimage.py:67(openimage)
-        1    0.000    0.000    0.401    0.401 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        2    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       21    0.015    0.001    0.015    0.001 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        9    0.015    0.002    0.015    0.002 {numpy.core.multiarray.fromstring}
-        2    0.401    0.201    0.401    0.201 {open}
-
-
-0.0100 0.0000 0.9400 0.8904 0.8400     8.008 testimages/GE_aSI_detector_image_1529.bz2
-Thu Oct 30 12:14:19 2008    stats
-
-         87 function calls in 0.947 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.947    0.947 <string>:1(<module>)
-        1    0.000    0.000    0.040    0.040 GEimage.py:29(_readheader)
-        1    0.002    0.002    0.904    0.904 GEimage.py:460(read)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.945    0.945 openimage.py:67(openimage)
-        1    0.001    0.001    0.041    0.041 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        2    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       21    0.885    0.042    0.885    0.042 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.040    0.013    0.040    0.013 {method 'seek' of 'bz2.BZ2File' objects}
-        9    0.016    0.002    0.016    0.002 {numpy.core.multiarray.fromstring}
-
-
-0.0000 0.0100 0.1500 0.1368 0.1200     8.008 testimages/GE_aSI_detector_image_1529.gz
-Thu Oct 30 12:14:20 2008    stats
-
-         365 function calls in 0.147 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.147    0.147 <string>:1(<module>)
-        1    0.000    0.000    0.001    0.001 GEimage.py:29(_readheader)
-        1    0.002    0.002    0.144    0.144 GEimage.py:460(read)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       32    0.002    0.000    0.127    0.004 gzip.py:208(read)
-       15    0.000    0.000    0.125    0.008 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       15    0.041    0.003    0.054    0.004 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.145    0.145 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       15    0.066    0.004    0.066    0.004 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       33    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      110    0.005    0.000    0.005    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       15    0.000    0.000    0.000    0.000 {min}
-        9    0.016    0.002    0.016    0.002 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        3    0.000    0.000    0.000    0.000 {range}
-       18    0.013    0.001    0.013    0.001 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.4500                   0.256 testimages/b191_1_9_1.img
-Thu Oct 30 12:14:21 2008    stats
-
-         128 function calls in 0.444 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.444    0.444 <string>:1(<module>)
-        1    0.422    0.422    0.443    0.443 OXDimage.py:145(read)
-        1    0.000    0.000    0.000    0.000 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.444    0.444 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        2    0.006    0.003    0.006    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.003    0.003    0.003    0.003 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        8    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        1    0.010    0.010    0.010    0.010 {range}
-
-
-0.0000 0.0000 0.5300 0.0439 0.0300     0.256 testimages/b191_1_9_1.img.bz2
-Thu Oct 30 12:14:23 2008    stats
-
-         128 function calls in 0.538 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.538    0.538 <string>:1(<module>)
-        1    0.424    0.424    0.510    0.510 OXDimage.py:145(read)
-        1    0.000    0.000    0.055    0.055 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.537    0.537 openimage.py:67(openimage)
-        1    0.000    0.000    0.027    0.027 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        2    0.006    0.003    0.006    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.003    0.003    0.003    0.003 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        8    0.033    0.004    0.033    0.004 {method 'read' of 'bz2.BZ2File' objects}
-        6    0.028    0.005    0.028    0.005 {method 'readline' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.026    0.009    0.026    0.009 {method 'seek' of 'bz2.BZ2File' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.001    0.000    0.001    0.000 {numpy.core.multiarray.fromstring}
-        1    0.014    0.014    0.014    0.014 {range}
-
-
-0.0000 0.0000 0.4600 0.0149 0.0100     0.256 testimages/b191_1_9_1.img.gz
-Thu Oct 30 12:14:24 2008    stats
-
-         398 function calls in 0.464 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.464    0.464 <string>:1(<module>)
-        1    0.431    0.431    0.461    0.461 OXDimage.py:145(read)
-        1    0.000    0.000    0.001    0.001 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       22    0.001    0.000    0.006    0.000 gzip.py:208(read)
-        6    0.000    0.000    0.000    0.000 gzip.py:240(_unread)
-       11    0.000    0.000    0.005    0.000 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       11    0.001    0.000    0.001    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        6    0.000    0.000    0.000    0.000 gzip.py:391(readline)
-        2    0.000    0.000    0.002    0.001 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.464    0.464 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       11    0.003    0.000    0.003    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       47    0.000    0.000    0.000    0.000 {len}
-       10    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.006    0.003    0.006    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.003    0.003    0.003    0.003 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       19    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        7    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       70    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.002    0.001    0.002    0.001 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        4    0.014    0.003    0.014    0.003 {range}
-       14    0.000    0.000    0.000    0.000 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0000 0.0000                   1.005 testimages/b191_1_9_1_uncompressed.img
-Thu Oct 30 12:14:24 2008    stats
-
-         120 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        1    0.000    0.000    0.006    0.006 OXDimage.py:145(read)
-        1    0.000    0.000    0.000    0.000 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        3    0.000    0.000    0.000    0.000 {len}
-        1    0.002    0.002    0.002    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        7    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.002    0.000    0.002    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0000 0.0000 0.1700 0.1178 0.1000     1.005 testimages/b191_1_9_1_uncompressed.img.bz2
-Thu Oct 30 12:14:25 2008    stats
-
-         120 function calls in 0.179 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.179    0.179 <string>:1(<module>)
-        1    0.000    0.000    0.143    0.143 OXDimage.py:145(read)
-        1    0.000    0.000    0.069    0.069 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.178    0.178 openimage.py:67(openimage)
-        1    0.001    0.001    0.036    0.036 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        3    0.000    0.000    0.000    0.000 {len}
-        1    0.002    0.002    0.002    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        7    0.103    0.015    0.103    0.015 {method 'read' of 'bz2.BZ2File' objects}
-        6    0.034    0.006    0.034    0.006 {method 'readline' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.034    0.011    0.034    0.011 {method 'seek' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.002    0.000    0.002    0.000 {numpy.core.multiarray.fromstring}
-
-
-0.0000 0.0000 0.0200 0.0249 0.0200     1.005 testimages/b191_1_9_1_uncompressed.img.gz
-Thu Oct 30 12:14:25 2008    stats
-
-         433 function calls in 0.021 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.021    0.021 <string>:1(<module>)
-        1    0.000    0.000    0.020    0.020 OXDimage.py:145(read)
-        1    0.000    0.000    0.001    0.001 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       19    0.000    0.000    0.015    0.001 gzip.py:208(read)
-        6    0.000    0.000    0.000    0.000 gzip.py:240(_unread)
-       13    0.000    0.000    0.015    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.005    0.000    0.006    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        6    0.000    0.000    0.000    0.000 gzip.py:391(readline)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.021    0.021 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       13    0.008    0.001    0.008    0.001 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       46    0.000    0.000    0.000    0.000 {len}
-        8    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.002    0.002    0.002    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       17    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        7    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      111    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.002    0.000    0.002    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        3    0.000    0.000    0.000    0.000 {range}
-       16    0.002    0.000    0.002    0.000 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0200 0.2100                   8.004 testimages/corkcont2_H_0089.mccd
-Thu Oct 30 12:14:26 2008    stats
-
-         4000 function calls in 0.169 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.004    0.004    0.169    0.169 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.067    0.067 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.049    0.049 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.014    0.014 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.165    0.165 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.033    0.033 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.007    0.007    0.164    0.164 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.035    0.035    0.035    0.035 {built-in method convert}
-      128    0.005    0.000    0.005    0.000 {built-in method decode}
-      256    0.033    0.000    0.033    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       40    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      421    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.032    0.011    0.032    0.011 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      152    0.008    0.000    0.008    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.033    0.033    0.033    0.033 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.6300 0.6214 0.4500     8.004 testimages/corkcont2_H_0089.mccd.bz2
-Thu Oct 30 12:14:28 2008    stats
-
-         4002 function calls in 0.657 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.657    0.657 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.067    0.067 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.043    0.043 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.012    0.012 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.453    0.226 fabioimage.py:259(_open)
-        2    0.001    0.000    0.453    0.226 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.652    0.652 openimage.py:67(openimage)
-        1    0.000    0.000    0.041    0.041 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.032    0.032 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.007    0.007    0.611    0.611 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.031    0.031    0.031    0.031 {built-in method convert}
-      128    0.005    0.000    0.005    0.000 {built-in method decode}
-      256    0.034    0.000    0.034    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       40    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      421    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.032    0.011    0.032    0.011 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.492    0.246    0.492    0.246 {method 'read' of 'bz2.BZ2File' objects}
-      151    0.006    0.000    0.006    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.033    0.033    0.033    0.033 {numpy.core.multiarray.fromstring}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0100 0.0000 0.2400 0.1626 0.0900     8.004 testimages/corkcont2_H_0089.mccd.gz
-Thu Oct 30 12:14:29 2008    stats
-
-         4194 function calls in 0.264 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.264    0.264 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.065    0.065 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.038    0.038 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.015    0.015 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.106    0.053 fabioimage.py:259(_open)
-        2    0.000    0.000    0.106    0.053 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.098    0.049 gzip.py:208(read)
-       13    0.000    0.000    0.097    0.007 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       12    0.030    0.002    0.043    0.004 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.009    0.005 gzip.py:60(__init__)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.259    0.259 openimage.py:67(openimage)
-        1    0.000    0.000    0.009    0.009 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.032    0.032 string.py:306(join)
-        3    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.007    0.007    0.251    0.251 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.023    0.023    0.023    0.023 {built-in method convert}
-      128    0.006    0.000    0.006    0.000 {built-in method decode}
-       12    0.052    0.004    0.052    0.004 {built-in method decompress}
-      256    0.032    0.000    0.032    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       65    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      421    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.032    0.011    0.032    0.011 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      151    0.006    0.000    0.006    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       66    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        3    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       14    0.000    0.000    0.000    0.000 {min}
-        1    0.033    0.033    0.033    0.033 {numpy.core.multiarray.fromstring}
-        2    0.009    0.005    0.009    0.005 {open}
-      192    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       14    0.013    0.001    0.013    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0000 0.2000                   3.471 testimages/example.mar2300
-Thu Oct 30 12:14:30 2008    stats
-
-         222 function calls in 0.201 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.201    0.201 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        2    0.000    0.000    0.003    0.002 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.198    0.198 mar345image.py:21(read)
-        1    0.000    0.000    0.001    0.001 mar345image.py:46(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.201    0.201 openimage.py:67(openimage)
-        1    0.000    0.000    0.003    0.003 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       15    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       16    0.000    0.000    0.000    0.000 {len}
-        1    0.196    0.196    0.196    0.196 {mar345_io.unpack}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        4    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-       15    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        2    0.003    0.002    0.003    0.002 {open}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.9900 0.8456 0.6700     3.471 testimages/example.mar2300.bz2
-Thu Oct 30 12:14:33 2008    stats
-
-         227 function calls in 0.998 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.998    0.998 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        2    0.000    0.000    0.693    0.346 fabioimage.py:259(_open)
-        2    0.001    0.000    0.693    0.346 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.895    0.895 mar345image.py:21(read)
-        1    0.000    0.000    0.001    0.001 mar345image.py:46(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.998    0.998 openimage.py:67(openimage)
-        1    0.000    0.000    0.103    0.103 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       15    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       16    0.000    0.000    0.000    0.000 {len}
-        1    0.198    0.198    0.198    0.198 {mar345_io.unpack}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.003    0.003    0.003    0.003 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.780    0.390    0.780    0.390 {method 'read' of 'bz2.BZ2File' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-       15    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        1    0.013    0.013    0.013    0.013 {method 'write' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {posix.tmpfile}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0100 0.0000 0.2800 0.1064 0.0600     3.471 testimages/example.mar2300.gz
-Thu Oct 30 12:14:34 2008    stats
-
-         414 function calls in 0.268 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.268    0.268 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        2    0.000    0.000    0.065    0.033 fabioimage.py:259(_open)
-        2    0.000    0.000    0.065    0.033 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.051    0.026 gzip.py:208(read)
-       14    0.000    0.000    0.051    0.004 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.009    0.001    0.014    0.001 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.267    0.267 mar345image.py:21(read)
-        1    0.000    0.000    0.001    0.001 mar345image.py:46(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.268    0.268 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       17    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       13    0.032    0.002    0.032    0.002 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       43    0.000    0.000    0.000    0.000 {len}
-        1    0.198    0.198    0.198    0.198 {mar345_io.unpack}
-        3    0.003    0.001    0.003    0.001 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       58    0.004    0.000    0.004    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        1    0.013    0.013    0.013    0.013 {method 'write' of 'file' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {posix.tmpfile}
-       11    0.000    0.000    0.000    0.000 {range}
-       15    0.006    0.000    0.006    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.0100                   0.215 testimages/face.edf
-Thu Oct 30 12:14:35 2008    stats
-
-         119 function calls in 0.003 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.002    0.002 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.003    0.003 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.002    0.001    0.002    0.001 {open}
-
-
-0.0000 0.0000 0.0000 0.0443 0.0000     0.215 testimages/face.edf.bz2
-Thu Oct 30 12:14:35 2008    stats
-
-         119 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.004    0.004 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.004    0.002 fabioimage.py:259(_open)
-        2    0.004    0.002    0.004    0.002 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:67(openimage)
-        1    0.000    0.000    0.003    0.003 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.003    0.001    0.003    0.001 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-
-
-0.0000 0.0000 0.0100 0.0373 0.0000     0.215 testimages/face.edf.gz
-Thu Oct 30 12:14:36 2008    stats
-
-         212 function calls in 0.004 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.004    0.004 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.003    0.003 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        4    0.000    0.000    0.002    0.001 gzip.py:208(read)
-        4    0.000    0.000    0.002    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        3    0.000    0.000    0.001    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.004    0.004 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {apply}
-        3    0.001    0.000    0.001    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       16    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       31    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        3    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        5    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.0000                   0.008 testimages/face.msk
-Thu Oct 30 12:14:36 2008    stats
-
-         82 function calls in 0.008 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.008    0.008 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.002    0.002    0.007    0.007 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.008    0.008 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.005    0.005    0.005    0.005 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0100 0.0335 0.0000     0.008 testimages/face.msk.bz2
-Thu Oct 30 12:14:36 2008    stats
-
-         82 function calls in 0.010 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.010    0.010 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.002    0.002    0.009    0.009 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.010    0.010 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.001    0.000    0.001    0.000 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.005    0.005    0.005    0.005 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0100 0.0317 0.0000     0.008 testimages/face.msk.gz
-Thu Oct 30 12:14:36 2008    stats
-
-         171 function calls in 0.010 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.010    0.010 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.002    0.002    0.008    0.008 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        3    0.000    0.000    0.001    0.000 gzip.py:208(read)
-        3    0.000    0.000    0.001    0.000 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        3    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.010    0.010 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        3    0.000    0.000    0.000    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       11    0.000    0.000    0.000    0.000 {len}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       31    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        3    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.005    0.005    0.005    0.005 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {range}
-        5    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0000 0.0100                   4.001 testimages/fit2d_click.edf
-Thu Oct 30 12:14:40 2008    stats
-
-         119 function calls in 0.013 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.013    0.013 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.012    0.012 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.013    0.013 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.008    0.002    0.008    0.002 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.004    0.004    0.004    0.004 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0000 0.0000 0.0200 0.0646 0.0200     4.001 testimages/fit2d_click.edf.bz2
-Thu Oct 30 12:14:40 2008    stats
-
-         119 function calls in 0.027 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.027    0.027 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.025    0.025 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.027    0.027 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.022    0.005    0.022    0.005 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.004    0.004    0.004    0.004 {numpy.core.multiarray.fromstring}
-
-
-0.0000 0.0000 0.0500 0.0864 0.0300     4.001 testimages/fit2d_click.edf.gz
-Thu Oct 30 12:14:40 2008    stats
-
-         242 function calls in 0.053 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.053    0.053 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.007    0.007 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.046    0.046 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        4    0.004    0.001    0.047    0.012 gzip.py:208(read)
-        6    0.000    0.000    0.043    0.007 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        5    0.014    0.003    0.022    0.004 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.053    0.053 openimage.py:67(openimage)
-        1    0.000    0.000    0.007    0.007 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {apply}
-        5    0.021    0.004    0.021    0.004 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       20    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       47    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        5    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.004    0.004    0.004    0.004 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        7    0.008    0.001    0.008    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.1400                   0.126 testimages/fit2d_click.msk
-Thu Oct 30 12:14:41 2008    stats
-
-         82 function calls in 0.125 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.125    0.125 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.013    0.013    0.125    0.125 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.125    0.125 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        9    0.014    0.002    0.014    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.097    0.097    0.097    0.097 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.001    0.000    0.001    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.1300 0.0389 0.0000     0.126 testimages/fit2d_click.msk.bz2
-Thu Oct 30 12:14:41 2008    stats
-
-         82 function calls in 0.135 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.135    0.135 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.012    0.012    0.134    0.134 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.135    0.135 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        9    0.014    0.002    0.014    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.001    0.000    0.001    0.000 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.106    0.106    0.106    0.106 {numpy.core.multiarray.where}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.zeros}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.1200 0.0346 0.0000     0.126 testimages/fit2d_click.msk.gz
-Thu Oct 30 12:14:41 2008    stats
-
-         193 function calls in 0.134 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.134    0.134 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.001    0.001 fit2dmaskimage.py:19(_readheader)
-        1    0.012    0.012    0.132    0.132 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        6    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        3    0.000    0.000    0.002    0.001 gzip.py:208(read)
-        2    0.000    0.000    0.002    0.001 gzip.py:245(_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        2    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        2    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        4    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.134    0.134 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        4    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.001    0.001    0.001    0.001 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       10    0.000    0.000    0.000    0.000 {len}
-        9    0.013    0.001    0.013    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       46    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        4    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.104    0.104    0.104    0.104 {numpy.core.multiarray.where}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {range}
-        4    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0800 0.0700 0.1600                  36.001 testimages/mb_LP_1_001.edf
-Thu Oct 30 12:14:42 2008    stats
-
-         119 function calls in 0.164 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.006    0.006    0.164    0.164 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.151    0.151 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.006    0.006    0.158    0.158 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.072    0.018    0.072    0.018 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.079    0.079    0.079    0.079 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0400 0.0400 0.1600                  18.000 testimages/mb_LP_1_001.img
-Thu Oct 30 12:14:42 2008    stats
-
-         183 function calls in 0.158 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.003    0.003    0.158    0.158 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.004    0.004    0.152    0.152 adscimage.py:25(read)
-        1    0.000    0.000    0.023    0.023 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.002    0.002    0.155    0.155 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       22    0.000    0.000    0.000    0.000 {len}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.058    0.058    0.058    0.058 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.034    0.017    0.034    0.017 {method 'read' of 'file' objects}
-       19    0.022    0.001    0.022    0.001 {method 'readline' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.034    0.034    0.034    0.034 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0100 0.0100 3.0700 2.2536 2.1600    18.000 testimages/mb_LP_1_001.img.bz2
-Thu Oct 30 12:14:53 2008    stats
-
-         183 function calls in 3.079 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.003    0.003    3.079    3.079 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    3.033    3.033 adscimage.py:25(read)
-        1    0.000    0.000    0.782    0.782 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.004    0.004    3.076    3.076 openimage.py:67(openimage)
-        1    0.000    0.000    0.039    0.039 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       22    0.000    0.000    0.000    0.000 {len}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.062    0.062    0.062    0.062 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    2.149    1.075    2.149    1.075 {method 'read' of 'bz2.BZ2File' objects}
-       19    0.782    0.041    0.782    0.041 {method 'readline' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.039    0.039    0.039    0.039 {method 'seek' of 'bz2.BZ2File' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.036    0.036    0.036    0.036 {numpy.core.multiarray.fromstring}
-
-
-0.0100 0.0100 0.5100 0.4089 0.2700    18.000 testimages/mb_LP_1_001.img.gz
-Thu Oct 30 12:14:55 2008    stats
-
-         1123 function calls in 0.519 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.003    0.003    0.519    0.519 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    0.512    0.512 adscimage.py:25(read)
-        1    0.000    0.000    0.129    0.129 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        3    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        3    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       37    0.009    0.000    0.392    0.011 gzip.py:208(read)
-       19    0.004    0.000    0.004    0.000 gzip.py:240(_unread)
-       75    0.001    0.000    0.383    0.005 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       74    0.087    0.001    0.126    0.002 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        3    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        3    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-       19    0.003    0.000    0.129    0.007 gzip.py:391(readline)
-        3    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.003    0.003    0.516    0.516 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        3    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {apply}
-       74    0.243    0.003    0.243    0.003 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      239    0.000    0.000    0.000    0.000 {len}
-       51    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.062    0.062    0.062    0.062 {method 'byteswap' of 'numpy.ndarray' objects}
-        3    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       38    0.005    0.000    0.005    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-       20    0.005    0.000    0.005    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      136    0.012    0.000    0.012    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       90    0.000    0.000    0.000    0.000 {min}
-        1    0.036    0.036    0.036    0.036 {numpy.core.multiarray.fromstring}
-        3    0.001    0.000    0.001    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-       77    0.039    0.001    0.039    0.001 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0200 0.0000 0.2000                   8.067 testimages/oPPA_5grains_0001.tif
-Thu Oct 30 12:14:56 2008    stats
-
-         11340 function calls in 0.234 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.236    0.236 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.008    0.008 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.002    0.000    0.006    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.062    0.062 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.121    0.121 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.001    0.000 Image.py:91(isTupleType)
-        1    0.005    0.005    0.098    0.098 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.008    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.004    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.004    0.004 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.007    0.007 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.002    0.000    0.003    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.231    0.231 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.030    0.030 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.007    0.007    0.230    0.230 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      512    0.054    0.000    0.054    0.000 {built-in method decode}
-      256    0.030    0.000    0.030    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        3    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      523    0.001    0.000    0.001    0.000 {isinstance}
-      557    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.030    0.010    0.030    0.010 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      541    0.023    0.000    0.023    0.000 {method 'read' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-      528    0.007    0.000    0.007    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.002    0.002 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-     1024    0.001    0.000    0.001    0.000 {min}
-        2    0.032    0.016    0.032    0.016 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-     2244    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.7100 0.4409 0.4700     8.067 testimages/oPPA_5grains_0001.tif.bz2
-Thu Oct 30 12:14:58 2008    stats
-
-         11342 function calls in 0.722 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.723    0.723 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.009    0.009 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.002    0.000    0.005    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.063    0.063 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.104    0.104 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.001    0.000 Image.py:91(isTupleType)
-        1    0.005    0.005    0.080    0.080 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.008    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.004    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.004    0.004 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.008    0.008 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.002    0.000    0.003    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.487    0.244 fabioimage.py:259(_open)
-        2    0.001    0.000    0.487    0.243 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.718    0.718 openimage.py:67(openimage)
-        1    0.000    0.000    0.013    0.013 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.030    0.030 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.007    0.007    0.703    0.703 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.024    0.024    0.024    0.024 {built-in method convert}
-      512    0.054    0.000    0.054    0.000 {built-in method decode}
-      256    0.033    0.000    0.033    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        3    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      523    0.001    0.000    0.001    0.000 {isinstance}
-      557    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.030    0.010    0.030    0.010 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.499    0.249    0.499    0.249 {method 'read' of 'bz2.BZ2File' objects}
-      540    0.012    0.000    0.012    0.000 {method 'read' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'cStringIO.StringI' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-      528    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.002    0.002 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-     1024    0.001    0.000    0.001    0.000 {min}
-        2    0.033    0.017    0.033    0.017 {numpy.core.multiarray.fromstring}
-     2244    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.2700 0.1194 0.0500     8.067 testimages/oPPA_5grains_0001.tif.gz
-Thu Oct 30 12:14:59 2008    stats
-
-         11494 function calls in 0.276 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.004    0.004    0.277    0.277 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.009    0.009 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.002    0.000    0.005    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.066    0.066 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.100    0.100 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.001    0.000 Image.py:91(isTupleType)
-        1    0.005    0.005    0.079    0.079 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.008    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.004    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.004    0.004 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.007    0.007 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.002    0.000    0.003    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.055    0.027 fabioimage.py:259(_open)
-        2    0.000    0.000    0.055    0.027 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.055    0.028 gzip.py:208(read)
-        8    0.000    0.000    0.055    0.007 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        7    0.026    0.004    0.040    0.006 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.273    0.273 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.032    0.032 string.py:306(join)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.007    0.007    0.270    0.270 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.021    0.021    0.021    0.021 {built-in method convert}
-      512    0.052    0.000    0.052    0.000 {built-in method decode}
-        7    0.014    0.002    0.014    0.002 {built-in method decompress}
-      256    0.033    0.000    0.033    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        3    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      523    0.001    0.000    0.001    0.000 {isinstance}
-      572    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.032    0.011    0.032    0.011 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      540    0.012    0.000    0.012    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       61    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-      528    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.002    0.002 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-     1031    0.001    0.000    0.001    0.000 {min}
-        2    0.033    0.017    0.033    0.017 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-     2248    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-        9    0.013    0.001    0.013    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0000 0.0400                   2.004 testimages/somedata_0001.mccd
-Thu Oct 30 12:15:00 2008    stats
-
-         3424 function calls in 0.032 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.032    0.032 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.010    0.010 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.008    0.008 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.004    0.004 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.032    0.032 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.032    0.032 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.004    0.004    0.004    0.004 {built-in method convert}
-       32    0.001    0.000    0.001    0.000 {built-in method decode}
-       64    0.004    0.000    0.004    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       40    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      229    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.006    0.002    0.006    0.002 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       56    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.005    0.005    0.005    0.005 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.2900 0.2321 0.2200     2.004 testimages/somedata_0001.mccd.bz2
-Thu Oct 30 12:15:01 2008    stats
-
-         3426 function calls in 0.300 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.300    0.300 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.013    0.013 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.007    0.007 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.003    0.003 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.214    0.107 fabioimage.py:259(_open)
-        2    0.001    0.000    0.213    0.107 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.300    0.300 openimage.py:67(openimage)
-        1    0.000    0.000    0.050    0.050 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.007    0.007 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.250    0.250 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.004    0.004    0.004    0.004 {built-in method convert}
-       32    0.001    0.000    0.001    0.000 {built-in method decode}
-       64    0.005    0.000    0.005    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       40    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      229    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.007    0.002    0.007    0.002 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.261    0.131    0.261    0.131 {method 'read' of 'bz2.BZ2File' objects}
-       55    0.001    0.000    0.001    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.007    0.007    0.007    0.007 {numpy.core.multiarray.fromstring}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0600 0.0715 0.0300     2.004 testimages/somedata_0001.mccd.gz
-Thu Oct 30 12:15:01 2008    stats
-
-         3604 function calls in 0.073 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.073    0.073 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.013    0.013 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.012    0.012 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.005    0.005 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.032    0.016 fabioimage.py:259(_open)
-        2    0.000    0.000    0.032    0.016 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.032    0.016 gzip.py:208(read)
-       12    0.000    0.000    0.031    0.003 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       11    0.007    0.001    0.010    0.001 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.073    0.073 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        3    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.072    0.072 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.007    0.007    0.007    0.007 {built-in method convert}
-       32    0.002    0.000    0.002    0.000 {built-in method decode}
-       11    0.019    0.002    0.019    0.002 {built-in method decompress}
-       64    0.006    0.000    0.006    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       63    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      229    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.006    0.002    0.006    0.002 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       55    0.002    0.000    0.002    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       59    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        3    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        1    0.006    0.006    0.006    0.006 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      192    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       13    0.003    0.000    0.003    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.0000                   0.023 testimages/testmap1_0002.tif
-Thu Oct 30 12:15:01 2008    stats
-
-         616 function calls in 0.003 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.003    0.003 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.000    0.000    0.002    0.002 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       29    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      204    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0000 0.0360 0.0000     0.023 testimages/testmap1_0002.tif.bz2
-Thu Oct 30 12:15:01 2008    stats
-
-         618 function calls in 0.004 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.004    0.004 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.001 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.004    0.004 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.000    0.000    0.003    0.003 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'read' of 'bz2.BZ2File' objects}
-       28    0.000    0.000    0.000    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        4    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-      204    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0000 0.0343 0.0000     0.023 testimages/testmap1_0002.tif.gz
-Thu Oct 30 12:15:02 2008    stats
-
-         738 function calls in 0.005 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.005    0.005 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        6    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.001    0.000 gzip.py:208(read)
-        3    0.000    0.000    0.001    0.000 gzip.py:245(_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        2    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        2    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        4    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.001 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.005    0.005 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        4    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.000    0.000    0.004    0.004 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        2    0.000    0.000    0.000    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       50    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       28    0.000    0.000    0.000    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       50    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        6    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.001    0.001    0.001 {open}
-      208    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-        4    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
diff --git a/test/get_test_images.sh b/test/get_test_images.sh
deleted file mode 100644
index aa9c120..0000000
--- a/test/get_test_images.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-
-#
-#wget "http://teamsites.risoe.dk/totalcryst/File exchange/fabio_testimages.zip"
-# --http-user=username
-# --http-password=password
-
-
-wget http://downloads.sourceforge.net/fable/fabio_testimages.zip
-
-cd testimages
-
-unzip ../fabio_testimages.zip
-
-for name in $(ls *.bz2 ) ; do
-    bunzip2 -k $name
-    sleep 1
-    gzip ${name%.bz2}
-    sleep 1
-    bunzip2 -k $name
-done
-
-fit2d_12_081_i686_linux2.4.20 -nogr <<EOF
-3072
-3072
-NO
-INPUT
-ADSC
-mb_LP_1_001.img
-OUTPUT
-"KLORA" 
-mb_LP_1_001.edf
-QUIT
-YES
-EOF
diff --git a/test/lapwright_benchheaders b/test/lapwright_benchheaders
deleted file mode 100644
index 6e13ad3..0000000
--- a/test/lapwright_benchheaders
+++ /dev/null
@@ -1,47 +0,0 @@
-  0.000583 testimages/Cr8F8140k103.0026
-  0.051907 testimages/Cr8F8140k103.0026.bz2
-  0.000820 testimages/Cr8F8140k103.0026.gz
-  0.000396 testimages/F2K_Seb_Lyso0675.edf
-  0.100052 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.000672 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000184 testimages/GE_aSI_detector_image_1529
-  0.071242 testimages/GE_aSI_detector_image_1529.bz2
-  0.000594 testimages/GE_aSI_detector_image_1529.gz
-  0.000318 testimages/b191_1_9_1.img
-  0.073274 testimages/b191_1_9_1.img.bz2
-  0.000767 testimages/b191_1_9_1.img.gz
-  0.000301 testimages/b191_1_9_1_uncompressed.img
-  0.088887 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.000809 testimages/b191_1_9_1_uncompressed.img.gz
-  0.003353 testimages/corkcont2_H_0089.mccd
-  0.081050 testimages/corkcont2_H_0089.mccd.bz2
-  0.003884 testimages/corkcont2_H_0089.mccd.gz
-  0.000363 testimages/example.mar2300
-  0.193586 testimages/example.mar2300.bz2
-  0.000607 testimages/example.mar2300.gz
-  0.000173 testimages/face.edf
-  0.001616 testimages/face.edf.bz2
-  0.001207 testimages/face.edf.gz
-  0.000128 testimages/face.msk
-  0.000726 testimages/face.msk.bz2
-  0.000348 testimages/face.msk.gz
-  0.000167 testimages/fit2d_click.edf
-  0.002242 testimages/fit2d_click.edf.bz2
-  0.009748 testimages/fit2d_click.edf.gz
-  0.000131 testimages/fit2d_click.msk
-  0.000441 testimages/fit2d_click.msk.bz2
-  0.001680 testimages/fit2d_click.msk.gz
-  0.000174 testimages/mb_LP_1_001.edf
-  0.013777 testimages/mb_LP_1_001.img
-  0.666265 testimages/mb_LP_1_001.img.bz2
-  0.147505 testimages/mb_LP_1_001.img.gz
-  0.000139 testimages/oPPA_5grains_0001.tif
-  0.011123 testimages/oPPA_5grains_0001.tif.bz2
-  0.001009 testimages/oPPA_5grains_0001.tif.gz
-  0.003373 testimages/somedata_0001.mccd
-  0.095547 testimages/somedata_0001.mccd.bz2
-  0.003814 testimages/somedata_0001.mccd.gz
-  0.000128 testimages/testmap1_0002.tif
-  0.000211 testimages/testmap1_0002.tif.bz2
-  0.000349 testimages/testmap1_0002.tif.gz
-  0.000383 testimages/testspr.spr.gz
diff --git a/test/lapwright_benchmark b/test/lapwright_benchmark
deleted file mode 100644
index aa9b7ec..0000000
--- a/test/lapwright_benchmark
+++ /dev/null
@@ -1,54 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0000 0.0000 0.0000                   0.508 testimages/Cr8F8140k103.0026
-0.0000 0.0000 0.0600 0.0363 0.0300     0.508 testimages/Cr8F8140k103.0026.bz2
-0.0000 0.0000 0.0100 0.0111 0.0100     0.508 testimages/Cr8F8140k103.0026.gz
-0.0100 0.0100 0.0200                   8.003 testimages/F2K_Seb_Lyso0675.edf
-0.0100 0.0000 0.7300 0.7201 0.6900     8.003 testimages/F2K_Seb_Lyso0675.edf.bz2
-0.0100 0.0000 0.1600 0.1851 0.1500     8.003 testimages/F2K_Seb_Lyso0675.edf.gz
-0.0100 0.0100 0.0200                   8.008 testimages/GE_aSI_detector_image_1529
-0.0100 0.0000 0.6200 0.6092 0.4900     8.008 testimages/GE_aSI_detector_image_1529.bz2
-0.0000 0.0100 0.1200 0.1191 0.1200     8.008 testimages/GE_aSI_detector_image_1529.gz
-0.0100 0.0000 0.4100                   0.256 testimages/b191_1_9_1.img
-0.0000 0.0000 0.4700 0.0305 0.0300     0.256 testimages/b191_1_9_1.img.bz2
-0.0000 0.0000 0.4600 0.0071 0.0100     0.256 testimages/b191_1_9_1.img.gz
-0.0000 0.0000 0.0100                   1.005 testimages/b191_1_9_1_uncompressed.img
-0.0000 0.0000 0.1200 0.0655 0.0600     1.005 testimages/b191_1_9_1_uncompressed.img.bz2
-0.0000 0.0000 0.0400 0.0341 0.0100     1.005 testimages/b191_1_9_1_uncompressed.img.gz
-0.0200 0.0000 0.1300                   8.004 testimages/corkcont2_H_0089.mccd
-0.0000 0.0000 0.4200 0.3214 0.2900     8.004 testimages/corkcont2_H_0089.mccd.bz2
-0.0000 0.0000 0.1800 0.0977 0.0900     8.004 testimages/corkcont2_H_0089.mccd.gz
-0.0000 0.0000 0.1800                   3.471 testimages/example.mar2300
-0.0100 0.0000 0.7600 0.4990 0.5800     3.471 testimages/example.mar2300.bz2
-0.0100 0.0000 0.3000 0.0672 0.0500     3.471 testimages/example.mar2300.gz
-0.0000 0.0000 0.0000                   0.215 testimages/face.edf
-0.0000 0.0000 0.0000 0.0109 0.0000     0.215 testimages/face.edf.bz2
-0.0000 0.0000 0.0000 0.0098 0.0000     0.215 testimages/face.edf.gz
-0.0000 0.0000 0.0100                   0.008 testimages/face.msk
-0.0000 0.0000 0.0100 0.0089 0.0000     0.008 testimages/face.msk.bz2
-0.0000 0.0000 0.0100 0.0084 0.0000     0.008 testimages/face.msk.gz
-0.0000 0.0100 0.0100                   4.001 testimages/fit2d_click.edf
-0.0000 0.0000 0.0300 0.0498 0.0200     4.001 testimages/fit2d_click.edf.bz2
-0.0000 0.0000 0.0400 0.0433 0.0300     4.001 testimages/fit2d_click.edf.gz
-0.0000 0.0000 0.1100                   0.126 testimages/fit2d_click.msk
-0.0000 0.0000 0.1100 0.0184 0.0000     0.126 testimages/fit2d_click.msk.bz2
-0.0000 0.0000 0.1300 0.0117 0.0000     0.126 testimages/fit2d_click.msk.gz
-0.0400 0.0400 0.0800                  36.001 testimages/mb_LP_1_001.edf
-0.0200 0.0200 0.1100                  18.000 testimages/mb_LP_1_001.img
-0.0100 0.0000 1.9300 1.3436 1.1800    18.000 testimages/mb_LP_1_001.img.bz2
-0.0100 0.0100 0.4200 0.3263 0.2600    18.000 testimages/mb_LP_1_001.img.gz
-0.0200 0.0000 0.1400                   8.067 testimages/oPPA_5grains_0001.tif
-0.0000 0.0000 0.3800 0.2985 0.2300     8.067 testimages/oPPA_5grains_0001.tif.bz2
-0.0000 0.0000 0.1600 0.0624 0.0600     8.067 testimages/oPPA_5grains_0001.tif.gz
-0.0100 0.0000 0.0200                   2.004 testimages/somedata_0001.mccd
-0.0000 0.0000 0.1800 0.1373 0.1200     2.004 testimages/somedata_0001.mccd.bz2
-0.0000 0.0000 0.0400 0.0466 0.0300     2.004 testimages/somedata_0001.mccd.gz
-0.0000 0.0000 0.0100                   0.023 testimages/testmap1_0002.tif
-0.0000 0.0000 0.0000 0.0080 0.0000     0.023 testimages/testmap1_0002.tif.bz2
-0.0000 0.0000 0.0000 0.0078 0.0000     0.023 testimages/testmap1_0002.tif.gz
-0.0000 0.0000 1.0200 0.1523 0.1200     9.141 testimages/testspr.spr.gz
diff --git a/test/lintaillefer_benchHeaders b/test/lintaillefer_benchHeaders
deleted file mode 100644
index c08838e..0000000
--- a/test/lintaillefer_benchHeaders
+++ /dev/null
@@ -1,95 +0,0 @@
-  0.000329 testimages/Cr8F8140k103.0026
-  0.037044 testimages/Cr8F8140k103.0026.bz2
-  0.000592 testimages/Cr8F8140k103.0026.gz
-  0.003818 testimages/F2K_Seb_Lyso0675.edf
-  0.557174 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.086970 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000493 testimages/F2K_Seb_Lyso0675_header_only.edf
-  0.001307 testimages/F2K_Seb_Lyso0675_header_only.edf.bz2
-  0.000816 testimages/F2K_Seb_Lyso0675_header_only.edf.gz
-  0.000236 testimages/GE_aSI_detector_image_1529
-  0.051342 testimages/GE_aSI_detector_image_1529.bz2
-  0.000785 testimages/GE_aSI_detector_image_1529.gz
-  0.001612 testimages/MultiFrame-Frame0.edf
-  0.176526 testimages/MultiFrame-Frame0.edf.bz2
-  0.021154 testimages/MultiFrame-Frame0.edf.gz
-  0.001412 testimages/MultiFrame-Frame1.edf
-  0.176522 testimages/MultiFrame-Frame1.edf.bz2
-  0.021324 testimages/MultiFrame-Frame1.edf.gz
-  0.003797 testimages/MultiFrame.edf
-  0.505238 testimages/MultiFrame.edf.bz2
-  0.086753 testimages/MultiFrame.edf.gz
-  0.000412 testimages/XSDataImage.edf
-  0.003893 testimages/XSDataImage.xml
-  0.003825 testimages/XSDataImageInv.xml
-  0.000221 testimages/b191_1_9_1.img
-  0.055115 testimages/b191_1_9_1.img.bz2
-  0.000593 testimages/b191_1_9_1.img.gz
-  0.000210 testimages/b191_1_9_1_uncompressed.img
-  0.060150 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.000622 testimages/b191_1_9_1_uncompressed.img.gz
-  0.002060 testimages/corkcont2_H_0089.mccd
-  0.056873 testimages/corkcont2_H_0089.mccd.bz2
-  0.002520 testimages/corkcont2_H_0089.mccd.gz
-  0.001412 testimages/edfCompressed_U16.edf
-  0.409378 testimages/edfCompressed_U16.edf.bz2
-  0.009362 testimages/edfCompressed_U16.edf.gz
-  0.001355 testimages/edfGzip_U16.edf
-  0.409779 testimages/edfGzip_U16.edf.bz2
-  0.009243 testimages/edfGzip_U16.edf.gz
-  0.003138 testimages/edfUncompressed_U16.edf
-  0.461300 testimages/edfUncompressed_U16.edf.bz2
-  0.065004 testimages/edfUncompressed_U16.edf.gz
-  0.000304 testimages/example.mar2300
-  0.132916 testimages/example.mar2300.bz2
-  0.000491 testimages/example.mar2300.gz
-  0.000294 testimages/face.edf
-  0.002074 testimages/face.edf.bz2
-  0.001499 testimages/face.edf.gz
-  0.000097 testimages/face.msk
-  0.000470 testimages/face.msk.bz2
-  0.000302 testimages/face.msk.gz
-  0.001673 testimages/fit2d_click.edf
-  0.018431 testimages/fit2d_click.edf.bz2
-  0.020730 testimages/fit2d_click.edf.gz
-  0.000095 testimages/fit2d_click.msk
-  0.000281 testimages/fit2d_click.msk.bz2
-  0.001220 testimages/fit2d_click.msk.gz
-  0.001084 testimages/i01f0001.edf
-  0.110340 testimages/i01f0001.edf.bz2
-  0.012220 testimages/i01f0001.edf.gz
-  0.001402 testimages/i01f0001.kcd
-  0.078815 testimages/i01f0001.kcd.bz2
-  0.007362 testimages/i01f0001.kcd.gz
-  0.000401 testimages/id13_badPadding.edf
-  0.066293 testimages/id13_badPadding.edf.bz2
-  0.007500 testimages/id13_badPadding.edf.gz
-  0.000297 testimages/im0000.edf
-  0.005363 testimages/im0000.edf.bz2
-  0.001566 testimages/im0000.edf.gz
-  0.000166 testimages/image.0000
-  0.001915 testimages/image.0000.bz2
-  0.000981 testimages/image.0000.gz
-  0.021417 testimages/mb_LP_1_001.edf
-  1.442814 testimages/mb_LP_1_001.edf.bz2
-  0.267614 testimages/mb_LP_1_001.edf.gz
-  0.011164 testimages/mb_LP_1_001.img
-  0.395687 testimages/mb_LP_1_001.img.bz2
-  0.067309 testimages/mb_LP_1_001.img.gz
-  0.011211 testimages/mb_LP_1_002.img
-  0.000093 testimages/oPPA_5grains_0001.tif
-  0.011608 testimages/oPPA_5grains_0001.tif.bz2
-  0.001260 testimages/oPPA_5grains_0001.tif.gz
-  0.102151 testimages/run2_1_00148.cbf
-  0.577272 testimages/run2_1_00148.cbf.bz2
-  0.156771 testimages/run2_1_00148.cbf.gz
-  0.010526 testimages/run2_1_00148.edf
-  0.862486 testimages/run2_1_00148.edf.bz2
-  0.118586 testimages/run2_1_00148.edf.gz
-  0.002041 testimages/somedata_0001.mccd
-  0.070370 testimages/somedata_0001.mccd.bz2
-  0.002538 testimages/somedata_0001.mccd.gz
-  0.000089 testimages/testmap1_0002.tif
-  0.000198 testimages/testmap1_0002.tif.bz2
-  0.000430 testimages/testmap1_0002.tif.gz
-  0.000087 testimages/tifimagewrite_test0000.tif
diff --git a/test/profile/coral31_benchheaders b/test/profile/coral31_benchheaders
deleted file mode 100644
index d622a64..0000000
--- a/test/profile/coral31_benchheaders
+++ /dev/null
@@ -1,46 +0,0 @@
-  0.000857 testimages/Cr8F8140k103.0026
-  0.046055 testimages/Cr8F8140k103.0026.bz2
-  0.001116 testimages/Cr8F8140k103.0026.gz
-  0.000727 testimages/F2K_Seb_Lyso0675.edf
-  0.083457 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.000906 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000454 testimages/GE_aSI_detector_image_1529
-  0.058213 testimages/GE_aSI_detector_image_1529.bz2
-  0.000798 testimages/GE_aSI_detector_image_1529.gz
-  0.000572 testimages/b191_1_9_1.img
-  0.057766 testimages/b191_1_9_1.img.bz2
-  0.000981 testimages/b191_1_9_1.img.gz
-  0.000556 testimages/b191_1_9_1_uncompressed.img
-  0.078372 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.001016 testimages/b191_1_9_1_uncompressed.img.gz
-  0.003505 testimages/corkcont2_H_0089.mccd
-  0.067027 testimages/corkcont2_H_0089.mccd.bz2
-  0.004070 testimages/corkcont2_H_0089.mccd.gz
-  0.000617 testimages/example.mar2300
-  0.153640 testimages/example.mar2300.bz2
-  0.000832 testimages/example.mar2300.gz
-  0.000430 testimages/face.edf
-  0.001603 testimages/face.edf.bz2
-  0.001281 testimages/face.edf.gz
-  0.000349 testimages/face.msk
-  0.000797 testimages/face.msk.bz2
-  0.000507 testimages/face.msk.gz
-  0.000431 testimages/fit2d_click.edf
-  0.002208 testimages/fit2d_click.edf.bz2
-  0.011531 testimages/fit2d_click.edf.gz
-  0.000408 testimages/fit2d_click.msk
-  0.000592 testimages/fit2d_click.msk.bz2
-  0.002028 testimages/fit2d_click.msk.gz
-  0.000444 testimages/mb_LP_1_001.edf
-  0.020046 testimages/mb_LP_1_001.img
-  0.644009 testimages/mb_LP_1_001.img.bz2
-  0.130721 testimages/mb_LP_1_001.img.gz
-  0.000385 testimages/oPPA_5grains_0001.tif
-  0.011607 testimages/oPPA_5grains_0001.tif.bz2
-  0.001579 testimages/oPPA_5grains_0001.tif.gz
-  0.003500 testimages/somedata_0001.mccd
-  0.078679 testimages/somedata_0001.mccd.bz2
-  0.003825 testimages/somedata_0001.mccd.gz
-  0.000364 testimages/testmap1_0002.tif
-  0.000399 testimages/testmap1_0002.tif.bz2
-  0.000536 testimages/testmap1_0002.tif.gz
diff --git a/test/profile/coral31_benchmark b/test/profile/coral31_benchmark
deleted file mode 100644
index 99d2622..0000000
--- a/test/profile/coral31_benchmark
+++ /dev/null
@@ -1,53 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0000 0.0000 0.0100                   0.508 testimages/Cr8F8140k103.0026
-0.0100 0.0000 0.0600 0.0358 0.0300     0.508 testimages/Cr8F8140k103.0026.bz2
-0.0000 0.0000 0.0100 0.0114 0.0100     0.508 testimages/Cr8F8140k103.0026.gz
-0.0100 0.0100 0.0300                   8.003 testimages/F2K_Seb_Lyso0675.edf
-0.0000 0.0100 0.9700 0.9219 0.9200     8.003 testimages/F2K_Seb_Lyso0675.edf.bz2
-0.0000 0.0100 0.1400 0.1360 0.1200     8.003 testimages/F2K_Seb_Lyso0675.edf.gz
-0.0100 0.0200 0.0300                   8.008 testimages/GE_aSI_detector_image_1529
-0.0100 0.0000 0.7700 0.6982 0.6800     8.008 testimages/GE_aSI_detector_image_1529.bz2
-0.0100 0.0000 0.1000 0.1031 0.1000     8.008 testimages/GE_aSI_detector_image_1529.gz
-0.0000 0.0000 0.3400                   0.256 testimages/b191_1_9_1.img
-0.0000 0.0000 0.3800 0.0278 0.0300     0.256 testimages/b191_1_9_1.img.bz2
-0.0000 0.0000 0.3300 0.0083 0.0000     0.256 testimages/b191_1_9_1.img.gz
-0.0000 0.0000 0.0000                   1.005 testimages/b191_1_9_1_uncompressed.img
-0.0000 0.0000 0.1400 0.0954 0.1000     1.005 testimages/b191_1_9_1_uncompressed.img.bz2
-0.0000 0.0000 0.0200 0.0159 0.0100     1.005 testimages/b191_1_9_1_uncompressed.img.gz
-0.0100 0.0100 0.1500                   8.004 testimages/corkcont2_H_0089.mccd
-0.0100 0.0000 0.5000 0.3985 0.3700     8.004 testimages/corkcont2_H_0089.mccd.bz2
-0.0000 0.0000 0.1600 0.1114 0.0700     8.004 testimages/corkcont2_H_0089.mccd.gz
-0.0100 0.0000 0.1400                   3.471 testimages/example.mar2300
-0.0000 0.0000 0.7900 0.5799 0.5500     3.471 testimages/example.mar2300.bz2
-0.0000 0.0100 0.1800 0.0671 0.0400     3.471 testimages/example.mar2300.gz
-0.0000 0.0000 0.0000                   0.215 testimages/face.edf
-0.0000 0.0000 0.0100 0.0201 0.0000     0.215 testimages/face.edf.bz2
-0.0000 0.0000 0.0000 0.0183 0.0000     0.215 testimages/face.edf.gz
-0.0000 0.0000 0.0000                   0.008 testimages/face.msk
-0.0000 0.0000 0.0100 0.0188 0.0000     0.008 testimages/face.msk.bz2
-0.0000 0.0100 0.0000 0.0185 0.0000     0.008 testimages/face.msk.gz
-0.0100 0.0000 0.0100                   4.001 testimages/fit2d_click.edf
-0.0000 0.0000 0.0200 0.0436 0.0200     4.001 testimages/fit2d_click.edf.bz2
-0.0000 0.0000 0.0300 0.0524 0.0300     4.001 testimages/fit2d_click.edf.gz
-0.0000 0.0000 0.1100                   0.126 testimages/fit2d_click.msk
-0.0000 0.0000 0.1100 0.0189 0.0100     0.126 testimages/fit2d_click.msk.bz2
-0.0000 0.0000 0.1000 0.0180 0.0000     0.126 testimages/fit2d_click.msk.gz
-0.0600 0.0700 0.1300                  36.001 testimages/mb_LP_1_001.edf
-0.0400 0.0300 0.1600                  18.000 testimages/mb_LP_1_001.img
-0.0100 0.0000 2.4600 2.4958 1.8100    18.000 testimages/mb_LP_1_001.img.bz2
-0.0100 0.0100 0.4100 0.2717 0.2300    18.000 testimages/mb_LP_1_001.img.gz
-0.0200 0.0100 0.1800                   8.067 testimages/oPPA_5grains_0001.tif
-0.0000 0.0000 0.5100 0.5660 0.3400     8.067 testimages/oPPA_5grains_0001.tif.bz2
-0.0000 0.0000 0.1900 0.0829 0.0400     8.067 testimages/oPPA_5grains_0001.tif.gz
-0.0000 0.0000 0.0300                   2.004 testimages/somedata_0001.mccd
-0.0000 0.0000 0.2600 0.2281 0.2100     2.004 testimages/somedata_0001.mccd.bz2
-0.0000 0.0000 0.0700 0.0507 0.0200     2.004 testimages/somedata_0001.mccd.gz
-0.0000 0.0000 0.0000                   0.023 testimages/testmap1_0002.tif
-0.0000 0.0000 0.0000 0.0192 0.0000     0.023 testimages/testmap1_0002.tif.bz2
-0.0000 0.0000 0.0000 0.0205 0.0000     0.023 testimages/testmap1_0002.tif.gz
diff --git a/test/profile/eeepc-jonathanw_benchheaders b/test/profile/eeepc-jonathanw_benchheaders
deleted file mode 100644
index 32b0750..0000000
--- a/test/profile/eeepc-jonathanw_benchheaders
+++ /dev/null
@@ -1,46 +0,0 @@
-  0.002404 testimages/Cr8F8140k103.0026
-  0.206815 testimages/Cr8F8140k103.0026.bz2
-  0.003507 testimages/Cr8F8140k103.0026.gz
-  0.001946 testimages/F2K_Seb_Lyso0675.edf
-  0.400643 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.015549 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000832 testimages/GE_aSI_detector_image_1529
-  0.297967 testimages/GE_aSI_detector_image_1529.bz2
-  0.002485 testimages/GE_aSI_detector_image_1529.gz
-  0.001397 testimages/b191_1_9_1.img
-  0.399226 testimages/b191_1_9_1.img.bz2
-  0.010648 testimages/b191_1_9_1.img.gz
-  0.001454 testimages/b191_1_9_1_uncompressed.img
-  0.386724 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.003699 testimages/b191_1_9_1_uncompressed.img.gz
-  0.013971 testimages/corkcont2_H_0089.mccd
-  0.453871 testimages/corkcont2_H_0089.mccd.bz2
-  0.017732 testimages/corkcont2_H_0089.mccd.gz
-  0.001761 testimages/example.mar2300
-  0.723718 testimages/example.mar2300.bz2
-  0.002948 testimages/example.mar2300.gz
-  0.000841 testimages/face.edf
-  0.011863 testimages/face.edf.bz2
-  0.004975 testimages/face.edf.gz
-  0.000680 testimages/face.msk
-  0.002963 testimages/face.msk.bz2
-  0.001511 testimages/face.msk.gz
-  0.000861 testimages/fit2d_click.edf
-  0.011688 testimages/fit2d_click.edf.bz2
-  0.035719 testimages/fit2d_click.edf.gz
-  0.000706 testimages/fit2d_click.msk
-  0.001966 testimages/fit2d_click.msk.bz2
-  0.006991 testimages/fit2d_click.msk.gz
-  0.000755 testimages/mb_LP_1_001.edf
-  0.058444 testimages/mb_LP_1_001.img
-  3.408607 testimages/mb_LP_1_001.img.bz2
-  0.488263 testimages/mb_LP_1_001.img.gz
-  0.000593 testimages/oPPA_5grains_0001.tif
-  0.060364 testimages/oPPA_5grains_0001.tif.bz2
-  0.005937 testimages/oPPA_5grains_0001.tif.gz
-  0.013839 testimages/somedata_0001.mccd
-  0.381711 testimages/somedata_0001.mccd.bz2
-  0.019168 testimages/somedata_0001.mccd.gz
-  0.000574 testimages/testmap1_0002.tif
-  0.000943 testimages/testmap1_0002.tif.bz2
-  0.001888 testimages/testmap1_0002.tif.gz
diff --git a/test/profile/eeepc-jonathanw_benchmark b/test/profile/eeepc-jonathanw_benchmark
deleted file mode 100644
index f6a09ba..0000000
--- a/test/profile/eeepc-jonathanw_benchmark
+++ /dev/null
@@ -1,53 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0000 0.0000 0.0200                   0.508 testimages/Cr8F8140k103.0026
-0.0000 0.0000 0.2700 0.1878 0.1600     0.508 testimages/Cr8F8140k103.0026.bz2
-0.0000 0.0000 0.0500 0.0430 0.0300     0.508 testimages/Cr8F8140k103.0026.gz
-0.0300 0.0300 0.0500                   8.003 testimages/F2K_Seb_Lyso0675.edf
-0.0200 0.0100 3.7200 3.6164 3.4900     8.003 testimages/F2K_Seb_Lyso0675.edf.bz2
-0.0200 0.0200 0.5200 0.6880 0.5000     8.003 testimages/F2K_Seb_Lyso0675.edf.gz
-0.0300 0.0300 0.0600                   8.008 testimages/GE_aSI_detector_image_1529
-0.0000 0.0200 3.1800 3.0424 2.8600     8.008 testimages/GE_aSI_detector_image_1529.bz2
-0.0100 0.0100 0.3800 0.5069 0.3500     8.008 testimages/GE_aSI_detector_image_1529.gz
-0.0000 0.0000 1.4400                   0.256 testimages/b191_1_9_1.img
-0.0000 0.0100 1.7400 0.1409 0.1200     0.256 testimages/b191_1_9_1.img.bz2
-0.0000 0.0000 1.4200 0.0255 0.0200     0.256 testimages/b191_1_9_1.img.gz
-0.0000 0.0000 0.0200                   1.005 testimages/b191_1_9_1_uncompressed.img
-0.0100 0.0000 0.6000 0.3607 0.3400     1.005 testimages/b191_1_9_1_uncompressed.img.bz2
-0.0100 0.0000 0.0500 0.0674 0.0400     1.005 testimages/b191_1_9_1_uncompressed.img.gz
-0.0300 0.0200 0.3400                   8.004 testimages/corkcont2_H_0089.mccd
-0.0000 0.0100 1.9600 1.6794 1.5200     8.004 testimages/corkcont2_H_0089.mccd.bz2
-0.0000 0.0000 0.5700 0.4143 0.2900     8.004 testimages/corkcont2_H_0089.mccd.gz
-0.0100 0.0100 0.7000                   3.471 testimages/example.mar2300
-0.0100 0.0100 3.0400 2.1931 2.0400     3.471 testimages/example.mar2300.bz2
-0.0100 0.0100 0.9000 0.2436 0.2100     3.471 testimages/example.mar2300.gz
-0.0100 0.0000 0.0000                   0.215 testimages/face.edf
-0.0000 0.0000 0.0100 0.0284 0.0100     0.215 testimages/face.edf.bz2
-0.0000 0.0000 0.0000 0.0217 0.0100     0.215 testimages/face.edf.gz
-0.0000 0.0000 0.0200                   0.008 testimages/face.msk
-0.0100 0.0000 0.0200 0.0181 0.0100     0.008 testimages/face.msk.bz2
-0.0000 0.0000 0.0200 0.0166 0.0000     0.008 testimages/face.msk.gz
-0.0300 0.0100 0.0400                   4.001 testimages/fit2d_click.edf
-0.0000 0.0000 0.1300 0.1984 0.1100     4.001 testimages/fit2d_click.edf.bz2
-0.0000 0.0000 0.1300 0.1338 0.0900     4.001 testimages/fit2d_click.edf.gz
-0.0000 0.0000 0.3200                   0.126 testimages/fit2d_click.msk
-0.0000 0.0000 0.3200 0.0212 0.0000     0.126 testimages/fit2d_click.msk.bz2
-0.0000 0.0000 0.3300 0.0201 0.0000     0.126 testimages/fit2d_click.msk.gz
-0.2000 0.1500 0.2800                  36.001 testimages/mb_LP_1_001.edf
-0.0700 0.0800 0.3500                  18.000 testimages/mb_LP_1_001.img
-0.0200 0.0200 10.4500 7.4476 6.8900    18.000 testimages/mb_LP_1_001.img.bz2
-0.0500 0.0200 1.5700 2.1255 0.9200    18.000 testimages/mb_LP_1_001.img.gz
-0.0400 0.0200 0.5300                   8.067 testimages/oPPA_5grains_0001.tif
-0.0000 0.0000 1.9100 1.5322 1.3800     8.067 testimages/oPPA_5grains_0001.tif.bz2
-0.0000 0.0000 0.6400 0.2398 0.1800     8.067 testimages/oPPA_5grains_0001.tif.gz
-0.0000 0.0100 0.0900                   2.004 testimages/somedata_0001.mccd
-0.0000 0.0000 0.9200 0.7265 0.6400     2.004 testimages/somedata_0001.mccd.bz2
-0.0000 0.0100 0.1700 0.1496 0.0900     2.004 testimages/somedata_0001.mccd.gz
-0.0000 0.0000 0.0000                   0.023 testimages/testmap1_0002.tif
-0.0000 0.0000 0.0100 0.0211 0.0000     0.023 testimages/testmap1_0002.tif.bz2
-0.0100 0.0000 0.0000 0.0203 0.0000     0.023 testimages/testmap1_0002.tif.gz
diff --git a/test/profile/esrflinux1-1a_benchheaders b/test/profile/esrflinux1-1a_benchheaders
deleted file mode 100644
index 7b848b4..0000000
--- a/test/profile/esrflinux1-1a_benchheaders
+++ /dev/null
@@ -1,46 +0,0 @@
-  0.041507 testimages/Cr8F8140k103.0026
-  0.060209 testimages/Cr8F8140k103.0026.bz2
-  0.001523 testimages/Cr8F8140k103.0026.gz
-  0.001040 testimages/F2K_Seb_Lyso0675.edf
-  0.115198 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.001390 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000740 testimages/GE_aSI_detector_image_1529
-  0.082954 testimages/GE_aSI_detector_image_1529.bz2
-  0.001530 testimages/GE_aSI_detector_image_1529.gz
-  0.001205 testimages/b191_1_9_1.img
-  0.082022 testimages/b191_1_9_1.img.bz2
-  0.001455 testimages/b191_1_9_1.img.gz
-  0.000870 testimages/b191_1_9_1_uncompressed.img
-  0.107474 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.002650 testimages/b191_1_9_1_uncompressed.img.gz
-  0.007094 testimages/corkcont2_H_0089.mccd
-  0.135271 testimages/corkcont2_H_0089.mccd.bz2
-  0.006231 testimages/corkcont2_H_0089.mccd.gz
-  0.041302 testimages/example.mar2300
-  0.215028 testimages/example.mar2300.bz2
-  0.001293 testimages/example.mar2300.gz
-  0.000765 testimages/face.edf
-  0.002466 testimages/face.edf.bz2
-  0.002021 testimages/face.edf.gz
-  0.000607 testimages/face.msk
-  0.041250 testimages/face.msk.bz2
-  0.000841 testimages/face.msk.gz
-  0.000759 testimages/fit2d_click.edf
-  0.003282 testimages/fit2d_click.edf.bz2
-  0.017603 testimages/fit2d_click.edf.gz
-  0.000693 testimages/fit2d_click.msk
-  0.000938 testimages/fit2d_click.msk.bz2
-  0.003037 testimages/fit2d_click.msk.gz
-  0.000748 testimages/mb_LP_1_001.edf
-  0.028433 testimages/mb_LP_1_001.img
-  0.835932 testimages/mb_LP_1_001.img.bz2
-  0.171870 testimages/mb_LP_1_001.img.gz
-  0.000714 testimages/oPPA_5grains_0001.tif
-  0.031276 testimages/oPPA_5grains_0001.tif.bz2
-  0.003840 testimages/oPPA_5grains_0001.tif.gz
-  0.005126 testimages/somedata_0001.mccd
-  0.110826 testimages/somedata_0001.mccd.bz2
-  0.006386 testimages/somedata_0001.mccd.gz
-  0.003645 testimages/testmap1_0002.tif
-  0.001334 testimages/testmap1_0002.tif.bz2
-  0.001180 testimages/testmap1_0002.tif.gz
diff --git a/test/profile/esrflinux1-1a_benchmark b/test/profile/esrflinux1-1a_benchmark
deleted file mode 100644
index 858b59e..0000000
--- a/test/profile/esrflinux1-1a_benchmark
+++ /dev/null
@@ -1,3563 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0000 0.0000 0.0200                   0.508 testimages/Cr8F8140k103.0026
-Thu Oct 30 12:14:08 2008    stats
-
-         637 function calls in 0.008 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.008    0.008 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.001    0.001    0.001    0.001 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.007    0.007 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.008    0.008 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.003    0.003 readbytestream.py:27(readbytestream)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        2    0.000    0.000    0.000    0.000 {len}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        6    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0800 0.0530 0.0400     0.508 testimages/Cr8F8140k103.0026.bz2
-Thu Oct 30 12:14:08 2008    stats
-
-         637 function calls in 0.079 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.079    0.079 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.001    0.001    0.030    0.030 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.049    0.049 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.079    0.079 openimage.py:67(openimage)
-        1    0.000    0.000    0.030    0.030 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.015    0.015 readbytestream.py:27(readbytestream)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        2    0.000    0.000    0.000    0.000 {len}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        6    0.071    0.012    0.071    0.012 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'bz2.BZ2File' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tell' of 'bz2.BZ2File' objects}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.fromstring}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0100 0.0200 0.0182 0.0100     0.508 testimages/Cr8F8140k103.0026.gz
-Thu Oct 30 12:14:09 2008    stats
-
-         818 function calls in 0.019 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.019    0.019 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.001    0.001    0.002    0.002 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.017    0.017 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        7    0.001    0.000    0.012    0.002 gzip.py:208(read)
-       12    0.000    0.000    0.011    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       12    0.003    0.000    0.003    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:360(tell)
-        1    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.019    0.019 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.012    0.012 readbytestream.py:27(readbytestream)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       12    0.006    0.001    0.006    0.001 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-       27    0.000    0.000    0.000    0.000 {len}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       58    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       12    0.000    0.000    0.000    0.000 {min}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        2    0.000    0.000    0.000    0.000 {range}
-       14    0.001    0.000    0.001    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0200 0.0200                   8.003 testimages/F2K_Seb_Lyso0675.edf
-Thu Oct 30 12:14:09 2008    stats
-
-         624 function calls in 0.034 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.034    0.034 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.001    0.001    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.031    0.031 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.032    0.032 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {len}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        8    0.015    0.002    0.015    0.002 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.015    0.015    0.015    0.015 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0100 0.0000 1.1700 1.1390 1.0800     8.003 testimages/F2K_Seb_Lyso0675.edf.bz2
-Thu Oct 30 12:14:13 2008    stats
-
-         624 function calls in 1.164 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    1.164    1.164 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.001    0.001    0.058    0.058 edfimage.py:55(_readheader)
-        1    0.000    0.000    1.104    1.104 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        2    0.001    0.001    0.001    0.001 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    1.163    1.163 openimage.py:67(openimage)
-        1    0.001    0.001    0.058    0.058 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {len}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        8    1.142    0.143    1.142    0.143 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.015    0.015    0.015    0.015 {numpy.core.multiarray.fromstring}
-
-
-0.0100 0.0100 0.1900 0.6054 0.1700     8.003 testimages/F2K_Seb_Lyso0675.edf.gz
-Thu Oct 30 12:14:15 2008    stats
-
-         845 function calls in 0.595 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.595    0.595 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.001    0.001    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.590    0.590 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.401    0.200 fabioimage.py:259(_open)
-        2    0.000    0.000    0.401    0.200 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        8    0.002    0.000    0.174    0.022 gzip.py:208(read)
-       17    0.000    0.000    0.172    0.010 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       16    0.041    0.003    0.054    0.003 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.400    0.200 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.593    0.593 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {apply}
-       16    0.108    0.007    0.108    0.007 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       45    0.000    0.000    0.000    0.000 {len}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       68    0.009    0.000    0.009    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.015    0.015    0.015    0.015 {numpy.core.multiarray.fromstring}
-        2    0.400    0.200    0.400    0.200 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-       18    0.013    0.001    0.013    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0200 0.0400                   8.008 testimages/GE_aSI_detector_image_1529
-Thu Oct 30 12:14:16 2008    stats
-
-         87 function calls in 0.434 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.434    0.434 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 GEimage.py:29(_readheader)
-        1    0.001    0.001    0.031    0.031 GEimage.py:460(read)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.401    0.201 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.432    0.432 openimage.py:67(openimage)
-        1    0.000    0.000    0.401    0.401 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        2    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       21    0.015    0.001    0.015    0.001 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        9    0.015    0.002    0.015    0.002 {numpy.core.multiarray.fromstring}
-        2    0.401    0.201    0.401    0.201 {open}
-
-
-0.0100 0.0000 0.9400 0.8904 0.8400     8.008 testimages/GE_aSI_detector_image_1529.bz2
-Thu Oct 30 12:14:19 2008    stats
-
-         87 function calls in 0.947 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.947    0.947 <string>:1(<module>)
-        1    0.000    0.000    0.040    0.040 GEimage.py:29(_readheader)
-        1    0.002    0.002    0.904    0.904 GEimage.py:460(read)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.945    0.945 openimage.py:67(openimage)
-        1    0.001    0.001    0.041    0.041 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        2    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       21    0.885    0.042    0.885    0.042 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.040    0.013    0.040    0.013 {method 'seek' of 'bz2.BZ2File' objects}
-        9    0.016    0.002    0.016    0.002 {numpy.core.multiarray.fromstring}
-
-
-0.0000 0.0100 0.1500 0.1368 0.1200     8.008 testimages/GE_aSI_detector_image_1529.gz
-Thu Oct 30 12:14:20 2008    stats
-
-         365 function calls in 0.147 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.147    0.147 <string>:1(<module>)
-        1    0.000    0.000    0.001    0.001 GEimage.py:29(_readheader)
-        1    0.002    0.002    0.144    0.144 GEimage.py:460(read)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       32    0.002    0.000    0.127    0.004 gzip.py:208(read)
-       15    0.000    0.000    0.125    0.008 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       15    0.041    0.003    0.054    0.004 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.145    0.145 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       15    0.066    0.004    0.066    0.004 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       33    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      110    0.005    0.000    0.005    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       15    0.000    0.000    0.000    0.000 {min}
-        9    0.016    0.002    0.016    0.002 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        3    0.000    0.000    0.000    0.000 {range}
-       18    0.013    0.001    0.013    0.001 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.4500                   0.256 testimages/b191_1_9_1.img
-Thu Oct 30 12:14:21 2008    stats
-
-         128 function calls in 0.444 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.444    0.444 <string>:1(<module>)
-        1    0.422    0.422    0.443    0.443 OXDimage.py:145(read)
-        1    0.000    0.000    0.000    0.000 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.444    0.444 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        2    0.006    0.003    0.006    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.003    0.003    0.003    0.003 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        8    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        1    0.010    0.010    0.010    0.010 {range}
-
-
-0.0000 0.0000 0.5300 0.0439 0.0300     0.256 testimages/b191_1_9_1.img.bz2
-Thu Oct 30 12:14:23 2008    stats
-
-         128 function calls in 0.538 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.538    0.538 <string>:1(<module>)
-        1    0.424    0.424    0.510    0.510 OXDimage.py:145(read)
-        1    0.000    0.000    0.055    0.055 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.537    0.537 openimage.py:67(openimage)
-        1    0.000    0.000    0.027    0.027 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        2    0.006    0.003    0.006    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.003    0.003    0.003    0.003 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        8    0.033    0.004    0.033    0.004 {method 'read' of 'bz2.BZ2File' objects}
-        6    0.028    0.005    0.028    0.005 {method 'readline' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.026    0.009    0.026    0.009 {method 'seek' of 'bz2.BZ2File' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.001    0.000    0.001    0.000 {numpy.core.multiarray.fromstring}
-        1    0.014    0.014    0.014    0.014 {range}
-
-
-0.0000 0.0000 0.4600 0.0149 0.0100     0.256 testimages/b191_1_9_1.img.gz
-Thu Oct 30 12:14:24 2008    stats
-
-         398 function calls in 0.464 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.464    0.464 <string>:1(<module>)
-        1    0.431    0.431    0.461    0.461 OXDimage.py:145(read)
-        1    0.000    0.000    0.001    0.001 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       22    0.001    0.000    0.006    0.000 gzip.py:208(read)
-        6    0.000    0.000    0.000    0.000 gzip.py:240(_unread)
-       11    0.000    0.000    0.005    0.000 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       11    0.001    0.000    0.001    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        6    0.000    0.000    0.000    0.000 gzip.py:391(readline)
-        2    0.000    0.000    0.002    0.001 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.464    0.464 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       11    0.003    0.000    0.003    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       47    0.000    0.000    0.000    0.000 {len}
-       10    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.006    0.003    0.006    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.003    0.003    0.003    0.003 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       19    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        7    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       70    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.002    0.001    0.002    0.001 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        4    0.014    0.003    0.014    0.003 {range}
-       14    0.000    0.000    0.000    0.000 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0000 0.0000                   1.005 testimages/b191_1_9_1_uncompressed.img
-Thu Oct 30 12:14:24 2008    stats
-
-         120 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        1    0.000    0.000    0.006    0.006 OXDimage.py:145(read)
-        1    0.000    0.000    0.000    0.000 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        3    0.000    0.000    0.000    0.000 {len}
-        1    0.002    0.002    0.002    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        7    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.002    0.000    0.002    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0000 0.0000 0.1700 0.1178 0.1000     1.005 testimages/b191_1_9_1_uncompressed.img.bz2
-Thu Oct 30 12:14:25 2008    stats
-
-         120 function calls in 0.179 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.179    0.179 <string>:1(<module>)
-        1    0.000    0.000    0.143    0.143 OXDimage.py:145(read)
-        1    0.000    0.000    0.069    0.069 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.178    0.178 openimage.py:67(openimage)
-        1    0.001    0.001    0.036    0.036 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        3    0.000    0.000    0.000    0.000 {len}
-        1    0.002    0.002    0.002    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        7    0.103    0.015    0.103    0.015 {method 'read' of 'bz2.BZ2File' objects}
-        6    0.034    0.006    0.034    0.006 {method 'readline' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.034    0.011    0.034    0.011 {method 'seek' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.002    0.000    0.002    0.000 {numpy.core.multiarray.fromstring}
-
-
-0.0000 0.0000 0.0200 0.0249 0.0200     1.005 testimages/b191_1_9_1_uncompressed.img.gz
-Thu Oct 30 12:14:25 2008    stats
-
-         433 function calls in 0.021 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.021    0.021 <string>:1(<module>)
-        1    0.000    0.000    0.020    0.020 OXDimage.py:145(read)
-        1    0.000    0.000    0.001    0.001 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       19    0.000    0.000    0.015    0.001 gzip.py:208(read)
-        6    0.000    0.000    0.000    0.000 gzip.py:240(_unread)
-       13    0.000    0.000    0.015    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.005    0.000    0.006    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        6    0.000    0.000    0.000    0.000 gzip.py:391(readline)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.021    0.021 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       13    0.008    0.001    0.008    0.001 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       46    0.000    0.000    0.000    0.000 {len}
-        8    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.002    0.002    0.002    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       17    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        7    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      111    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.002    0.000    0.002    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        3    0.000    0.000    0.000    0.000 {range}
-       16    0.002    0.000    0.002    0.000 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0200 0.2100                   8.004 testimages/corkcont2_H_0089.mccd
-Thu Oct 30 12:14:26 2008    stats
-
-         4000 function calls in 0.169 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.004    0.004    0.169    0.169 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.067    0.067 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.049    0.049 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.014    0.014 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.165    0.165 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.033    0.033 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.007    0.007    0.164    0.164 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.035    0.035    0.035    0.035 {built-in method convert}
-      128    0.005    0.000    0.005    0.000 {built-in method decode}
-      256    0.033    0.000    0.033    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       40    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      421    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.032    0.011    0.032    0.011 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      152    0.008    0.000    0.008    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.033    0.033    0.033    0.033 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.6300 0.6214 0.4500     8.004 testimages/corkcont2_H_0089.mccd.bz2
-Thu Oct 30 12:14:28 2008    stats
-
-         4002 function calls in 0.657 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.657    0.657 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.067    0.067 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.043    0.043 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.012    0.012 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.453    0.226 fabioimage.py:259(_open)
-        2    0.001    0.000    0.453    0.226 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.652    0.652 openimage.py:67(openimage)
-        1    0.000    0.000    0.041    0.041 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.032    0.032 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.007    0.007    0.611    0.611 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.031    0.031    0.031    0.031 {built-in method convert}
-      128    0.005    0.000    0.005    0.000 {built-in method decode}
-      256    0.034    0.000    0.034    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       40    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      421    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.032    0.011    0.032    0.011 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.492    0.246    0.492    0.246 {method 'read' of 'bz2.BZ2File' objects}
-      151    0.006    0.000    0.006    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.033    0.033    0.033    0.033 {numpy.core.multiarray.fromstring}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0100 0.0000 0.2400 0.1626 0.0900     8.004 testimages/corkcont2_H_0089.mccd.gz
-Thu Oct 30 12:14:29 2008    stats
-
-         4194 function calls in 0.264 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.264    0.264 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.065    0.065 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.038    0.038 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.015    0.015 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.106    0.053 fabioimage.py:259(_open)
-        2    0.000    0.000    0.106    0.053 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.098    0.049 gzip.py:208(read)
-       13    0.000    0.000    0.097    0.007 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       12    0.030    0.002    0.043    0.004 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.009    0.005 gzip.py:60(__init__)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.259    0.259 openimage.py:67(openimage)
-        1    0.000    0.000    0.009    0.009 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.032    0.032 string.py:306(join)
-        3    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.007    0.007    0.251    0.251 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.023    0.023    0.023    0.023 {built-in method convert}
-      128    0.006    0.000    0.006    0.000 {built-in method decode}
-       12    0.052    0.004    0.052    0.004 {built-in method decompress}
-      256    0.032    0.000    0.032    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       65    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      421    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.032    0.011    0.032    0.011 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      151    0.006    0.000    0.006    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       66    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        3    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       14    0.000    0.000    0.000    0.000 {min}
-        1    0.033    0.033    0.033    0.033 {numpy.core.multiarray.fromstring}
-        2    0.009    0.005    0.009    0.005 {open}
-      192    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       14    0.013    0.001    0.013    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0000 0.2000                   3.471 testimages/example.mar2300
-Thu Oct 30 12:14:30 2008    stats
-
-         222 function calls in 0.201 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.201    0.201 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        2    0.000    0.000    0.003    0.002 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.198    0.198 mar345image.py:21(read)
-        1    0.000    0.000    0.001    0.001 mar345image.py:46(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.201    0.201 openimage.py:67(openimage)
-        1    0.000    0.000    0.003    0.003 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       15    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       16    0.000    0.000    0.000    0.000 {len}
-        1    0.196    0.196    0.196    0.196 {mar345_io.unpack}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        4    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-       15    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        2    0.003    0.002    0.003    0.002 {open}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.9900 0.8456 0.6700     3.471 testimages/example.mar2300.bz2
-Thu Oct 30 12:14:33 2008    stats
-
-         227 function calls in 0.998 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.998    0.998 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        2    0.000    0.000    0.693    0.346 fabioimage.py:259(_open)
-        2    0.001    0.000    0.693    0.346 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.895    0.895 mar345image.py:21(read)
-        1    0.000    0.000    0.001    0.001 mar345image.py:46(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.998    0.998 openimage.py:67(openimage)
-        1    0.000    0.000    0.103    0.103 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       15    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       16    0.000    0.000    0.000    0.000 {len}
-        1    0.198    0.198    0.198    0.198 {mar345_io.unpack}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.003    0.003    0.003    0.003 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.780    0.390    0.780    0.390 {method 'read' of 'bz2.BZ2File' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-       15    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        1    0.013    0.013    0.013    0.013 {method 'write' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {posix.tmpfile}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0100 0.0000 0.2800 0.1064 0.0600     3.471 testimages/example.mar2300.gz
-Thu Oct 30 12:14:34 2008    stats
-
-         414 function calls in 0.268 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.268    0.268 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        2    0.000    0.000    0.065    0.033 fabioimage.py:259(_open)
-        2    0.000    0.000    0.065    0.033 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.051    0.026 gzip.py:208(read)
-       14    0.000    0.000    0.051    0.004 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.009    0.001    0.014    0.001 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.267    0.267 mar345image.py:21(read)
-        1    0.000    0.000    0.001    0.001 mar345image.py:46(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.268    0.268 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       17    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       13    0.032    0.002    0.032    0.002 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       43    0.000    0.000    0.000    0.000 {len}
-        1    0.198    0.198    0.198    0.198 {mar345_io.unpack}
-        3    0.003    0.001    0.003    0.001 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       58    0.004    0.000    0.004    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        1    0.013    0.013    0.013    0.013 {method 'write' of 'file' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {posix.tmpfile}
-       11    0.000    0.000    0.000    0.000 {range}
-       15    0.006    0.000    0.006    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.0100                   0.215 testimages/face.edf
-Thu Oct 30 12:14:35 2008    stats
-
-         119 function calls in 0.003 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.002    0.002 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.003    0.003 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.002    0.001    0.002    0.001 {open}
-
-
-0.0000 0.0000 0.0000 0.0443 0.0000     0.215 testimages/face.edf.bz2
-Thu Oct 30 12:14:35 2008    stats
-
-         119 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.004    0.004 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.004    0.002 fabioimage.py:259(_open)
-        2    0.004    0.002    0.004    0.002 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:67(openimage)
-        1    0.000    0.000    0.003    0.003 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.003    0.001    0.003    0.001 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-
-
-0.0000 0.0000 0.0100 0.0373 0.0000     0.215 testimages/face.edf.gz
-Thu Oct 30 12:14:36 2008    stats
-
-         212 function calls in 0.004 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.004    0.004 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.003    0.003 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        4    0.000    0.000    0.002    0.001 gzip.py:208(read)
-        4    0.000    0.000    0.002    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        3    0.000    0.000    0.001    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.004    0.004 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {apply}
-        3    0.001    0.000    0.001    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       16    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       31    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        3    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        5    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.0000                   0.008 testimages/face.msk
-Thu Oct 30 12:14:36 2008    stats
-
-         82 function calls in 0.008 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.008    0.008 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.002    0.002    0.007    0.007 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.008    0.008 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.005    0.005    0.005    0.005 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0100 0.0335 0.0000     0.008 testimages/face.msk.bz2
-Thu Oct 30 12:14:36 2008    stats
-
-         82 function calls in 0.010 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.010    0.010 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.002    0.002    0.009    0.009 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.010    0.010 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.001    0.000    0.001    0.000 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.005    0.005    0.005    0.005 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0100 0.0317 0.0000     0.008 testimages/face.msk.gz
-Thu Oct 30 12:14:36 2008    stats
-
-         171 function calls in 0.010 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.010    0.010 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.002    0.002    0.008    0.008 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        3    0.000    0.000    0.001    0.000 gzip.py:208(read)
-        3    0.000    0.000    0.001    0.000 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        3    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.010    0.010 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        3    0.000    0.000    0.000    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       11    0.000    0.000    0.000    0.000 {len}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       31    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        3    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.005    0.005    0.005    0.005 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {range}
-        5    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0000 0.0100                   4.001 testimages/fit2d_click.edf
-Thu Oct 30 12:14:40 2008    stats
-
-         119 function calls in 0.013 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.013    0.013 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.012    0.012 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.013    0.013 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.008    0.002    0.008    0.002 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.004    0.004    0.004    0.004 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0000 0.0000 0.0200 0.0646 0.0200     4.001 testimages/fit2d_click.edf.bz2
-Thu Oct 30 12:14:40 2008    stats
-
-         119 function calls in 0.027 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.027    0.027 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.025    0.025 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.027    0.027 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.022    0.005    0.022    0.005 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.004    0.004    0.004    0.004 {numpy.core.multiarray.fromstring}
-
-
-0.0000 0.0000 0.0500 0.0864 0.0300     4.001 testimages/fit2d_click.edf.gz
-Thu Oct 30 12:14:40 2008    stats
-
-         242 function calls in 0.053 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.053    0.053 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.007    0.007 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.046    0.046 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        4    0.004    0.001    0.047    0.012 gzip.py:208(read)
-        6    0.000    0.000    0.043    0.007 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        5    0.014    0.003    0.022    0.004 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.053    0.053 openimage.py:67(openimage)
-        1    0.000    0.000    0.007    0.007 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {apply}
-        5    0.021    0.004    0.021    0.004 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       20    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       47    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        5    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.004    0.004    0.004    0.004 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        7    0.008    0.001    0.008    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.1400                   0.126 testimages/fit2d_click.msk
-Thu Oct 30 12:14:41 2008    stats
-
-         82 function calls in 0.125 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.125    0.125 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.013    0.013    0.125    0.125 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.125    0.125 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        9    0.014    0.002    0.014    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.097    0.097    0.097    0.097 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.001    0.000    0.001    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.1300 0.0389 0.0000     0.126 testimages/fit2d_click.msk.bz2
-Thu Oct 30 12:14:41 2008    stats
-
-         82 function calls in 0.135 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.135    0.135 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.012    0.012    0.134    0.134 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.135    0.135 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        4    0.000    0.000    0.000    0.000 {len}
-        9    0.014    0.002    0.014    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.001    0.000    0.001    0.000 {method 'read' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.106    0.106    0.106    0.106 {numpy.core.multiarray.where}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.zeros}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.1200 0.0346 0.0000     0.126 testimages/fit2d_click.msk.gz
-Thu Oct 30 12:14:41 2008    stats
-
-         193 function calls in 0.134 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.134    0.134 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.001    0.001 fit2dmaskimage.py:19(_readheader)
-        1    0.012    0.012    0.132    0.132 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        6    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        3    0.000    0.000    0.002    0.001 gzip.py:208(read)
-        2    0.000    0.000    0.002    0.001 gzip.py:245(_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        2    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        2    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        4    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 numeric.py:797(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.134    0.134 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        4    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.001    0.001    0.001    0.001 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       10    0.000    0.000    0.000    0.000 {len}
-        9    0.013    0.001    0.013    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       46    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        4    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.104    0.104    0.104    0.104 {numpy.core.multiarray.where}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {range}
-        4    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0800 0.0700 0.1600                  36.001 testimages/mb_LP_1_001.edf
-Thu Oct 30 12:14:42 2008    stats
-
-         119 function calls in 0.164 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.006    0.006    0.164    0.164 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.151    0.151 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.006    0.006    0.158    0.158 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        9    0.000    0.000    0.000    0.000 {len}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.072    0.018    0.072    0.018 {method 'read' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.079    0.079    0.079    0.079 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0400 0.0400 0.1600                  18.000 testimages/mb_LP_1_001.img
-Thu Oct 30 12:14:42 2008    stats
-
-         183 function calls in 0.158 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.003    0.003    0.158    0.158 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.004    0.004    0.152    0.152 adscimage.py:25(read)
-        1    0.000    0.000    0.023    0.023 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.002    0.002    0.155    0.155 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       22    0.000    0.000    0.000    0.000 {len}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.058    0.058    0.058    0.058 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.034    0.017    0.034    0.017 {method 'read' of 'file' objects}
-       19    0.022    0.001    0.022    0.001 {method 'readline' of 'file' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.034    0.034    0.034    0.034 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0100 0.0100 3.0700 2.2536 2.1600    18.000 testimages/mb_LP_1_001.img.bz2
-Thu Oct 30 12:14:53 2008    stats
-
-         183 function calls in 3.079 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.003    0.003    3.079    3.079 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    3.033    3.033 adscimage.py:25(read)
-        1    0.000    0.000    0.782    0.782 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.004    0.004    3.076    3.076 openimage.py:67(openimage)
-        1    0.000    0.000    0.039    0.039 openimage.py:81(_openimage)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-       22    0.000    0.000    0.000    0.000 {len}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.062    0.062    0.062    0.062 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    2.149    1.075    2.149    1.075 {method 'read' of 'bz2.BZ2File' objects}
-       19    0.782    0.041    0.782    0.041 {method 'readline' of 'bz2.BZ2File' objects}
-        8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.039    0.039    0.039    0.039 {method 'seek' of 'bz2.BZ2File' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.036    0.036    0.036    0.036 {numpy.core.multiarray.fromstring}
-
-
-0.0100 0.0100 0.5100 0.4089 0.2700    18.000 testimages/mb_LP_1_001.img.gz
-Thu Oct 30 12:14:55 2008    stats
-
-         1123 function calls in 0.519 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.003    0.003    0.519    0.519 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:62(getnum)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    0.512    0.512 adscimage.py:25(read)
-        1    0.000    0.000    0.129    0.129 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        3    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        3    0.000    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       37    0.009    0.000    0.392    0.011 gzip.py:208(read)
-       19    0.004    0.000    0.004    0.000 gzip.py:240(_unread)
-       75    0.001    0.000    0.383    0.005 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       74    0.087    0.001    0.126    0.002 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        3    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        3    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-       19    0.003    0.000    0.129    0.007 gzip.py:391(readline)
-        3    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.003    0.003    0.516    0.516 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        3    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {apply}
-       74    0.243    0.003    0.243    0.003 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      239    0.000    0.000    0.000    0.000 {len}
-       51    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.062    0.062    0.062    0.062 {method 'byteswap' of 'numpy.ndarray' objects}
-        3    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       38    0.005    0.000    0.005    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-       20    0.005    0.000    0.005    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      136    0.012    0.000    0.012    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       90    0.000    0.000    0.000    0.000 {min}
-        1    0.036    0.036    0.036    0.036 {numpy.core.multiarray.fromstring}
-        3    0.001    0.000    0.001    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-       77    0.039    0.001    0.039    0.001 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0200 0.0000 0.2000                   8.067 testimages/oPPA_5grains_0001.tif
-Thu Oct 30 12:14:56 2008    stats
-
-         11340 function calls in 0.234 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.236    0.236 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.008    0.008 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.002    0.000    0.006    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.062    0.062 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.121    0.121 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.001    0.000 Image.py:91(isTupleType)
-        1    0.005    0.005    0.098    0.098 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.008    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.004    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.004    0.004 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.007    0.007 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.002    0.000    0.003    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.231    0.231 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.030    0.030 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.007    0.007    0.230    0.230 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      512    0.054    0.000    0.054    0.000 {built-in method decode}
-      256    0.030    0.000    0.030    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        3    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      523    0.001    0.000    0.001    0.000 {isinstance}
-      557    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.030    0.010    0.030    0.010 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      541    0.023    0.000    0.023    0.000 {method 'read' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-      528    0.007    0.000    0.007    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.002    0.002 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-     1024    0.001    0.000    0.001    0.000 {min}
-        2    0.032    0.016    0.032    0.016 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-     2244    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.7100 0.4409 0.4700     8.067 testimages/oPPA_5grains_0001.tif.bz2
-Thu Oct 30 12:14:58 2008    stats
-
-         11342 function calls in 0.722 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.723    0.723 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.009    0.009 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.002    0.000    0.005    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.063    0.063 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.104    0.104 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.001    0.000 Image.py:91(isTupleType)
-        1    0.005    0.005    0.080    0.080 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.008    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.004    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.004    0.004 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.008    0.008 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.002    0.000    0.003    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.487    0.244 fabioimage.py:259(_open)
-        2    0.001    0.000    0.487    0.243 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.718    0.718 openimage.py:67(openimage)
-        1    0.000    0.000    0.013    0.013 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.030    0.030 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.007    0.007    0.703    0.703 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.024    0.024    0.024    0.024 {built-in method convert}
-      512    0.054    0.000    0.054    0.000 {built-in method decode}
-      256    0.033    0.000    0.033    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        3    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      523    0.001    0.000    0.001    0.000 {isinstance}
-      557    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.030    0.010    0.030    0.010 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.499    0.249    0.499    0.249 {method 'read' of 'bz2.BZ2File' objects}
-      540    0.012    0.000    0.012    0.000 {method 'read' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'cStringIO.StringI' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-      528    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.002    0.002 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-     1024    0.001    0.000    0.001    0.000 {min}
-        2    0.033    0.017    0.033    0.017 {numpy.core.multiarray.fromstring}
-     2244    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.2700 0.1194 0.0500     8.067 testimages/oPPA_5grains_0001.tif.gz
-Thu Oct 30 12:14:59 2008    stats
-
-         11494 function calls in 0.276 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.004    0.004    0.277    0.277 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.009    0.009 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.002    0.000    0.005    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.066    0.066 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.100    0.100 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.001    0.000 Image.py:91(isTupleType)
-        1    0.005    0.005    0.079    0.079 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.008    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.004    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.004    0.004 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.008    0.008 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.007    0.007 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.002    0.000    0.003    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.055    0.027 fabioimage.py:259(_open)
-        2    0.000    0.000    0.055    0.027 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.055    0.028 gzip.py:208(read)
-        8    0.000    0.000    0.055    0.007 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        7    0.026    0.004    0.040    0.006 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.273    0.273 openimage.py:67(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.032    0.032 string.py:306(join)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.007    0.007    0.270    0.270 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.021    0.021    0.021    0.021 {built-in method convert}
-      512    0.052    0.000    0.052    0.000 {built-in method decode}
-        7    0.014    0.002    0.014    0.002 {built-in method decompress}
-      256    0.033    0.000    0.033    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        3    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      523    0.001    0.000    0.001    0.000 {isinstance}
-      572    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.032    0.011    0.032    0.011 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      540    0.012    0.000    0.012    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       61    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-      528    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.002    0.002 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-     1031    0.001    0.000    0.001    0.000 {min}
-        2    0.033    0.017    0.033    0.017 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-     2248    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-        9    0.013    0.001    0.013    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0000 0.0400                   2.004 testimages/somedata_0001.mccd
-Thu Oct 30 12:15:00 2008    stats
-
-         3424 function calls in 0.032 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.032    0.032 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.010    0.010 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.008    0.008 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.004    0.004 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.032    0.032 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.032    0.032 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.004    0.004    0.004    0.004 {built-in method convert}
-       32    0.001    0.000    0.001    0.000 {built-in method decode}
-       64    0.004    0.000    0.004    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       40    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      229    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.006    0.002    0.006    0.002 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       56    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.005    0.005    0.005    0.005 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.2900 0.2321 0.2200     2.004 testimages/somedata_0001.mccd.bz2
-Thu Oct 30 12:15:01 2008    stats
-
-         3426 function calls in 0.300 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.300    0.300 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.013    0.013 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.007    0.007 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.003    0.003 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.214    0.107 fabioimage.py:259(_open)
-        2    0.001    0.000    0.213    0.107 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.300    0.300 openimage.py:67(openimage)
-        1    0.000    0.000    0.050    0.050 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.007    0.007 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.250    0.250 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.004    0.004    0.004    0.004 {built-in method convert}
-       32    0.001    0.000    0.001    0.000 {built-in method decode}
-       64    0.005    0.000    0.005    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       40    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      229    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.007    0.002    0.007    0.002 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.261    0.131    0.261    0.131 {method 'read' of 'bz2.BZ2File' objects}
-       55    0.001    0.000    0.001    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.007    0.007    0.007    0.007 {numpy.core.multiarray.fromstring}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0600 0.0715 0.0300     2.004 testimages/somedata_0001.mccd.gz
-Thu Oct 30 12:15:01 2008    stats
-
-         3604 function calls in 0.073 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.073    0.073 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.013    0.013 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.012    0.012 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.005    0.005 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.032    0.016 fabioimage.py:259(_open)
-        2    0.000    0.000    0.032    0.016 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.032    0.016 gzip.py:208(read)
-       12    0.000    0.000    0.031    0.003 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       11    0.007    0.001    0.010    0.001 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        1    0.006    0.006    0.007    0.007 marccdimage.py:264(interpret_header)
-        1    0.000    0.000    0.007    0.007 marccdimage.py:292(_readheader)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.073    0.073 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        3    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.072    0.072 tifimage.py:53(read)
-        1    0.001    0.001    0.001    0.001 {PIL._imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.007    0.007    0.007    0.007 {built-in method convert}
-       32    0.002    0.000    0.002    0.000 {built-in method decode}
-       11    0.019    0.002    0.019    0.002 {built-in method decompress}
-       64    0.006    0.000    0.006    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       12    0.000    0.000    0.000    0.000 {isinstance}
-       63    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-      229    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-     2523    0.001    0.000    0.001    0.000 {method 'has_key' of 'dict' objects}
-        3    0.006    0.002    0.006    0.002 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       55    0.002    0.000    0.002    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       59    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        3    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        1    0.006    0.006    0.006    0.006 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      192    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       13    0.003    0.000    0.003    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0000 0.0000 0.0000                   0.023 testimages/testmap1_0002.tif
-Thu Oct 30 12:15:01 2008    stats
-
-         616 function calls in 0.003 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:259(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.003    0.003 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.000    0.000    0.002    0.002 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       29    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      204    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0000 0.0360 0.0000     0.023 testimages/testmap1_0002.tif.bz2
-Thu Oct 30 12:15:01 2008    stats
-
-         618 function calls in 0.004 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.004    0.004 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.001    0.001 fabioimage.py:259(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.004    0.004 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        4    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.000    0.000    0.003    0.003 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'read' of 'bz2.BZ2File' objects}
-       28    0.000    0.000    0.000    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       10    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        4    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-      204    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0000 0.0000 0.0000 0.0343 0.0000     0.023 testimages/testmap1_0002.tif.gz
-Thu Oct 30 12:15:02 2008    stats
-
-         738 function calls in 0.005 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.005    0.005 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:139(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:77(__init__)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:187(resetvals)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:259(_open)
-        2    0.000    0.000    0.002    0.001 fabioimage.py:288(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:83(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        6    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.001    0.000 gzip.py:208(read)
-        3    0.000    0.000    0.001    0.000 gzip.py:245(_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        2    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        2    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        4    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.001 gzip.py:60(__init__)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.005    0.005 openimage.py:67(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:81(_openimage)
-        2    0.000    0.000    0.000    0.000 posixpath.py:74(split)
-        2    0.000    0.000    0.000    0.000 posixpath.py:89(splitext)
-        1    0.000    0.000    0.000    0.000 re.py:178(compile)
-        1    0.000    0.000    0.000    0.000 re.py:219(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        4    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(_readheader)
-        1    0.000    0.000    0.004    0.004 tifimage.py:53(read)
-        1    0.000    0.000    0.000    0.000 {PIL._imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        2    0.000    0.000    0.000    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       50    0.000    0.000    0.000    0.000 {len}
-        1    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       28    0.000    0.000    0.000    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       50    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        6    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.001    0.001    0.001 {open}
-      208    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-        4    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
diff --git a/test/profile/get_test_images.sh b/test/profile/get_test_images.sh
deleted file mode 100644
index aa9c120..0000000
--- a/test/profile/get_test_images.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-
-#
-#wget "http://teamsites.risoe.dk/totalcryst/File exchange/fabio_testimages.zip"
-# --http-user=username
-# --http-password=password
-
-
-wget http://downloads.sourceforge.net/fable/fabio_testimages.zip
-
-cd testimages
-
-unzip ../fabio_testimages.zip
-
-for name in $(ls *.bz2 ) ; do
-    bunzip2 -k $name
-    sleep 1
-    gzip ${name%.bz2}
-    sleep 1
-    bunzip2 -k $name
-done
-
-fit2d_12_081_i686_linux2.4.20 -nogr <<EOF
-3072
-3072
-NO
-INPUT
-ADSC
-mb_LP_1_001.img
-OUTPUT
-"KLORA" 
-mb_LP_1_001.edf
-QUIT
-YES
-EOF
diff --git a/test/profile/lapwright_benchheaders b/test/profile/lapwright_benchheaders
deleted file mode 100644
index 6e13ad3..0000000
--- a/test/profile/lapwright_benchheaders
+++ /dev/null
@@ -1,47 +0,0 @@
-  0.000583 testimages/Cr8F8140k103.0026
-  0.051907 testimages/Cr8F8140k103.0026.bz2
-  0.000820 testimages/Cr8F8140k103.0026.gz
-  0.000396 testimages/F2K_Seb_Lyso0675.edf
-  0.100052 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.000672 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000184 testimages/GE_aSI_detector_image_1529
-  0.071242 testimages/GE_aSI_detector_image_1529.bz2
-  0.000594 testimages/GE_aSI_detector_image_1529.gz
-  0.000318 testimages/b191_1_9_1.img
-  0.073274 testimages/b191_1_9_1.img.bz2
-  0.000767 testimages/b191_1_9_1.img.gz
-  0.000301 testimages/b191_1_9_1_uncompressed.img
-  0.088887 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.000809 testimages/b191_1_9_1_uncompressed.img.gz
-  0.003353 testimages/corkcont2_H_0089.mccd
-  0.081050 testimages/corkcont2_H_0089.mccd.bz2
-  0.003884 testimages/corkcont2_H_0089.mccd.gz
-  0.000363 testimages/example.mar2300
-  0.193586 testimages/example.mar2300.bz2
-  0.000607 testimages/example.mar2300.gz
-  0.000173 testimages/face.edf
-  0.001616 testimages/face.edf.bz2
-  0.001207 testimages/face.edf.gz
-  0.000128 testimages/face.msk
-  0.000726 testimages/face.msk.bz2
-  0.000348 testimages/face.msk.gz
-  0.000167 testimages/fit2d_click.edf
-  0.002242 testimages/fit2d_click.edf.bz2
-  0.009748 testimages/fit2d_click.edf.gz
-  0.000131 testimages/fit2d_click.msk
-  0.000441 testimages/fit2d_click.msk.bz2
-  0.001680 testimages/fit2d_click.msk.gz
-  0.000174 testimages/mb_LP_1_001.edf
-  0.013777 testimages/mb_LP_1_001.img
-  0.666265 testimages/mb_LP_1_001.img.bz2
-  0.147505 testimages/mb_LP_1_001.img.gz
-  0.000139 testimages/oPPA_5grains_0001.tif
-  0.011123 testimages/oPPA_5grains_0001.tif.bz2
-  0.001009 testimages/oPPA_5grains_0001.tif.gz
-  0.003373 testimages/somedata_0001.mccd
-  0.095547 testimages/somedata_0001.mccd.bz2
-  0.003814 testimages/somedata_0001.mccd.gz
-  0.000128 testimages/testmap1_0002.tif
-  0.000211 testimages/testmap1_0002.tif.bz2
-  0.000349 testimages/testmap1_0002.tif.gz
-  0.000383 testimages/testspr.spr.gz
diff --git a/test/profile/lapwright_benchmark b/test/profile/lapwright_benchmark
deleted file mode 100644
index aa9b7ec..0000000
--- a/test/profile/lapwright_benchmark
+++ /dev/null
@@ -1,54 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0000 0.0000 0.0000                   0.508 testimages/Cr8F8140k103.0026
-0.0000 0.0000 0.0600 0.0363 0.0300     0.508 testimages/Cr8F8140k103.0026.bz2
-0.0000 0.0000 0.0100 0.0111 0.0100     0.508 testimages/Cr8F8140k103.0026.gz
-0.0100 0.0100 0.0200                   8.003 testimages/F2K_Seb_Lyso0675.edf
-0.0100 0.0000 0.7300 0.7201 0.6900     8.003 testimages/F2K_Seb_Lyso0675.edf.bz2
-0.0100 0.0000 0.1600 0.1851 0.1500     8.003 testimages/F2K_Seb_Lyso0675.edf.gz
-0.0100 0.0100 0.0200                   8.008 testimages/GE_aSI_detector_image_1529
-0.0100 0.0000 0.6200 0.6092 0.4900     8.008 testimages/GE_aSI_detector_image_1529.bz2
-0.0000 0.0100 0.1200 0.1191 0.1200     8.008 testimages/GE_aSI_detector_image_1529.gz
-0.0100 0.0000 0.4100                   0.256 testimages/b191_1_9_1.img
-0.0000 0.0000 0.4700 0.0305 0.0300     0.256 testimages/b191_1_9_1.img.bz2
-0.0000 0.0000 0.4600 0.0071 0.0100     0.256 testimages/b191_1_9_1.img.gz
-0.0000 0.0000 0.0100                   1.005 testimages/b191_1_9_1_uncompressed.img
-0.0000 0.0000 0.1200 0.0655 0.0600     1.005 testimages/b191_1_9_1_uncompressed.img.bz2
-0.0000 0.0000 0.0400 0.0341 0.0100     1.005 testimages/b191_1_9_1_uncompressed.img.gz
-0.0200 0.0000 0.1300                   8.004 testimages/corkcont2_H_0089.mccd
-0.0000 0.0000 0.4200 0.3214 0.2900     8.004 testimages/corkcont2_H_0089.mccd.bz2
-0.0000 0.0000 0.1800 0.0977 0.0900     8.004 testimages/corkcont2_H_0089.mccd.gz
-0.0000 0.0000 0.1800                   3.471 testimages/example.mar2300
-0.0100 0.0000 0.7600 0.4990 0.5800     3.471 testimages/example.mar2300.bz2
-0.0100 0.0000 0.3000 0.0672 0.0500     3.471 testimages/example.mar2300.gz
-0.0000 0.0000 0.0000                   0.215 testimages/face.edf
-0.0000 0.0000 0.0000 0.0109 0.0000     0.215 testimages/face.edf.bz2
-0.0000 0.0000 0.0000 0.0098 0.0000     0.215 testimages/face.edf.gz
-0.0000 0.0000 0.0100                   0.008 testimages/face.msk
-0.0000 0.0000 0.0100 0.0089 0.0000     0.008 testimages/face.msk.bz2
-0.0000 0.0000 0.0100 0.0084 0.0000     0.008 testimages/face.msk.gz
-0.0000 0.0100 0.0100                   4.001 testimages/fit2d_click.edf
-0.0000 0.0000 0.0300 0.0498 0.0200     4.001 testimages/fit2d_click.edf.bz2
-0.0000 0.0000 0.0400 0.0433 0.0300     4.001 testimages/fit2d_click.edf.gz
-0.0000 0.0000 0.1100                   0.126 testimages/fit2d_click.msk
-0.0000 0.0000 0.1100 0.0184 0.0000     0.126 testimages/fit2d_click.msk.bz2
-0.0000 0.0000 0.1300 0.0117 0.0000     0.126 testimages/fit2d_click.msk.gz
-0.0400 0.0400 0.0800                  36.001 testimages/mb_LP_1_001.edf
-0.0200 0.0200 0.1100                  18.000 testimages/mb_LP_1_001.img
-0.0100 0.0000 1.9300 1.3436 1.1800    18.000 testimages/mb_LP_1_001.img.bz2
-0.0100 0.0100 0.4200 0.3263 0.2600    18.000 testimages/mb_LP_1_001.img.gz
-0.0200 0.0000 0.1400                   8.067 testimages/oPPA_5grains_0001.tif
-0.0000 0.0000 0.3800 0.2985 0.2300     8.067 testimages/oPPA_5grains_0001.tif.bz2
-0.0000 0.0000 0.1600 0.0624 0.0600     8.067 testimages/oPPA_5grains_0001.tif.gz
-0.0100 0.0000 0.0200                   2.004 testimages/somedata_0001.mccd
-0.0000 0.0000 0.1800 0.1373 0.1200     2.004 testimages/somedata_0001.mccd.bz2
-0.0000 0.0000 0.0400 0.0466 0.0300     2.004 testimages/somedata_0001.mccd.gz
-0.0000 0.0000 0.0100                   0.023 testimages/testmap1_0002.tif
-0.0000 0.0000 0.0000 0.0080 0.0000     0.023 testimages/testmap1_0002.tif.bz2
-0.0000 0.0000 0.0000 0.0078 0.0000     0.023 testimages/testmap1_0002.tif.gz
-0.0000 0.0000 1.0200 0.1523 0.1200     9.141 testimages/testspr.spr.gz
diff --git a/test/profile/lintaillefer_benchHeaders b/test/profile/lintaillefer_benchHeaders
deleted file mode 100644
index c08838e..0000000
--- a/test/profile/lintaillefer_benchHeaders
+++ /dev/null
@@ -1,95 +0,0 @@
-  0.000329 testimages/Cr8F8140k103.0026
-  0.037044 testimages/Cr8F8140k103.0026.bz2
-  0.000592 testimages/Cr8F8140k103.0026.gz
-  0.003818 testimages/F2K_Seb_Lyso0675.edf
-  0.557174 testimages/F2K_Seb_Lyso0675.edf.bz2
-  0.086970 testimages/F2K_Seb_Lyso0675.edf.gz
-  0.000493 testimages/F2K_Seb_Lyso0675_header_only.edf
-  0.001307 testimages/F2K_Seb_Lyso0675_header_only.edf.bz2
-  0.000816 testimages/F2K_Seb_Lyso0675_header_only.edf.gz
-  0.000236 testimages/GE_aSI_detector_image_1529
-  0.051342 testimages/GE_aSI_detector_image_1529.bz2
-  0.000785 testimages/GE_aSI_detector_image_1529.gz
-  0.001612 testimages/MultiFrame-Frame0.edf
-  0.176526 testimages/MultiFrame-Frame0.edf.bz2
-  0.021154 testimages/MultiFrame-Frame0.edf.gz
-  0.001412 testimages/MultiFrame-Frame1.edf
-  0.176522 testimages/MultiFrame-Frame1.edf.bz2
-  0.021324 testimages/MultiFrame-Frame1.edf.gz
-  0.003797 testimages/MultiFrame.edf
-  0.505238 testimages/MultiFrame.edf.bz2
-  0.086753 testimages/MultiFrame.edf.gz
-  0.000412 testimages/XSDataImage.edf
-  0.003893 testimages/XSDataImage.xml
-  0.003825 testimages/XSDataImageInv.xml
-  0.000221 testimages/b191_1_9_1.img
-  0.055115 testimages/b191_1_9_1.img.bz2
-  0.000593 testimages/b191_1_9_1.img.gz
-  0.000210 testimages/b191_1_9_1_uncompressed.img
-  0.060150 testimages/b191_1_9_1_uncompressed.img.bz2
-  0.000622 testimages/b191_1_9_1_uncompressed.img.gz
-  0.002060 testimages/corkcont2_H_0089.mccd
-  0.056873 testimages/corkcont2_H_0089.mccd.bz2
-  0.002520 testimages/corkcont2_H_0089.mccd.gz
-  0.001412 testimages/edfCompressed_U16.edf
-  0.409378 testimages/edfCompressed_U16.edf.bz2
-  0.009362 testimages/edfCompressed_U16.edf.gz
-  0.001355 testimages/edfGzip_U16.edf
-  0.409779 testimages/edfGzip_U16.edf.bz2
-  0.009243 testimages/edfGzip_U16.edf.gz
-  0.003138 testimages/edfUncompressed_U16.edf
-  0.461300 testimages/edfUncompressed_U16.edf.bz2
-  0.065004 testimages/edfUncompressed_U16.edf.gz
-  0.000304 testimages/example.mar2300
-  0.132916 testimages/example.mar2300.bz2
-  0.000491 testimages/example.mar2300.gz
-  0.000294 testimages/face.edf
-  0.002074 testimages/face.edf.bz2
-  0.001499 testimages/face.edf.gz
-  0.000097 testimages/face.msk
-  0.000470 testimages/face.msk.bz2
-  0.000302 testimages/face.msk.gz
-  0.001673 testimages/fit2d_click.edf
-  0.018431 testimages/fit2d_click.edf.bz2
-  0.020730 testimages/fit2d_click.edf.gz
-  0.000095 testimages/fit2d_click.msk
-  0.000281 testimages/fit2d_click.msk.bz2
-  0.001220 testimages/fit2d_click.msk.gz
-  0.001084 testimages/i01f0001.edf
-  0.110340 testimages/i01f0001.edf.bz2
-  0.012220 testimages/i01f0001.edf.gz
-  0.001402 testimages/i01f0001.kcd
-  0.078815 testimages/i01f0001.kcd.bz2
-  0.007362 testimages/i01f0001.kcd.gz
-  0.000401 testimages/id13_badPadding.edf
-  0.066293 testimages/id13_badPadding.edf.bz2
-  0.007500 testimages/id13_badPadding.edf.gz
-  0.000297 testimages/im0000.edf
-  0.005363 testimages/im0000.edf.bz2
-  0.001566 testimages/im0000.edf.gz
-  0.000166 testimages/image.0000
-  0.001915 testimages/image.0000.bz2
-  0.000981 testimages/image.0000.gz
-  0.021417 testimages/mb_LP_1_001.edf
-  1.442814 testimages/mb_LP_1_001.edf.bz2
-  0.267614 testimages/mb_LP_1_001.edf.gz
-  0.011164 testimages/mb_LP_1_001.img
-  0.395687 testimages/mb_LP_1_001.img.bz2
-  0.067309 testimages/mb_LP_1_001.img.gz
-  0.011211 testimages/mb_LP_1_002.img
-  0.000093 testimages/oPPA_5grains_0001.tif
-  0.011608 testimages/oPPA_5grains_0001.tif.bz2
-  0.001260 testimages/oPPA_5grains_0001.tif.gz
-  0.102151 testimages/run2_1_00148.cbf
-  0.577272 testimages/run2_1_00148.cbf.bz2
-  0.156771 testimages/run2_1_00148.cbf.gz
-  0.010526 testimages/run2_1_00148.edf
-  0.862486 testimages/run2_1_00148.edf.bz2
-  0.118586 testimages/run2_1_00148.edf.gz
-  0.002041 testimages/somedata_0001.mccd
-  0.070370 testimages/somedata_0001.mccd.bz2
-  0.002538 testimages/somedata_0001.mccd.gz
-  0.000089 testimages/testmap1_0002.tif
-  0.000198 testimages/testmap1_0002.tif.bz2
-  0.000430 testimages/testmap1_0002.tif.gz
-  0.000087 testimages/tifimagewrite_test0000.tif
diff --git a/test/profile/win32_benchheaders b/test/profile/win32_benchheaders
deleted file mode 100644
index d8c759d..0000000
--- a/test/profile/win32_benchheaders
+++ /dev/null
@@ -1,46 +0,0 @@
-  0.002363 testimages\Cr8F8140k103.0026
-  0.066067 testimages\Cr8F8140k103.0026.bz2
-  0.001853 testimages\Cr8F8140k103.0026.gz
-  0.002819 testimages\F2K_Seb_Lyso0675.edf
-  0.121077 testimages\F2K_Seb_Lyso0675.edf.bz2
-  0.002366 testimages\F2K_Seb_Lyso0675.edf.gz
-  0.001428 testimages\GE_aSI_detector_image_1529
-  0.082350 testimages\GE_aSI_detector_image_1529.bz2
-  0.003077 testimages\GE_aSI_detector_image_1529.gz
-  0.000956 testimages\b191_1_9_1.img
-  0.096141 testimages\b191_1_9_1.img.bz2
-  0.002030 testimages\b191_1_9_1.img.gz
-  0.001849 testimages\b191_1_9_1_uncompressed.img
-  0.107067 testimages\b191_1_9_1_uncompressed.img.bz2
-  0.001737 testimages\b191_1_9_1_uncompressed.img.gz
-  0.001170 testimages\corkcont2_H_0089.mccd
-  0.091742 testimages\corkcont2_H_0089.mccd.bz2
-  0.002270 testimages\corkcont2_H_0089.mccd.gz
-  0.001537 testimages\example.mar2300
-  0.257166 testimages\example.mar2300.bz2
-  0.002286 testimages\example.mar2300.gz
-  0.001194 testimages\face.edf
-  0.002741 testimages\face.edf.bz2
-  0.003132 testimages\face.edf.gz
-  0.000567 testimages\face.msk
-  0.001318 testimages\face.msk.bz2
-  0.000881 testimages\face.msk.gz
-  0.001576 testimages\fit2d_click.edf
-  0.002984 testimages\fit2d_click.edf.bz2
-  0.016475 testimages\fit2d_click.edf.gz
-  0.000976 testimages\fit2d_click.msk
-  0.000984 testimages\fit2d_click.msk.bz2
-  0.003222 testimages\fit2d_click.msk.gz
-  0.062191 testimages\mb_LP_1_001.img
-  1.668834 testimages\mb_LP_1_001.img.bz2
-  0.181976 testimages\mb_LP_1_001.img.gz
-  0.058940 testimages\mb_LP_1_002.img
-  0.000631 testimages\oPPA_5grains_0001.tif
-  0.028324 testimages\oPPA_5grains_0001.tif.bz2
-  0.004554 testimages\oPPA_5grains_0001.tif.gz
-  0.000595 testimages\somedata_0001.mccd
-  0.113065 testimages\somedata_0001.mccd.bz2
-  0.001092 testimages\somedata_0001.mccd.gz
-  0.000538 testimages\testmap1_0002.tif
-  0.000787 testimages\testmap1_0002.tif.bz2
-  0.001096 testimages\testmap1_0002.tif.gz
diff --git a/test/profile/win32_benchmark b/test/profile/win32_benchmark
deleted file mode 100644
index 6fe2c51..0000000
--- a/test/profile/win32_benchmark
+++ /dev/null
@@ -1,3285 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0025 0.0020 0.0095                   0.508 testimages\Cr8F8140k103.0026
-Mon Mar 16 12:20:12 2009    stats
-
-         637 function calls in 0.011 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.011    0.011 <string>:1(<module>)
-        1    0.001    0.001    0.002    0.002 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.010    0.010 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.011    0.011 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.005    0.005 readbytestream.py:27(readbytestream)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        4    0.000    0.000    0.000    0.000 {max}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        6    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0012 0.0009 0.1342 0.1880 0.0778     0.508 testimages\Cr8F8140k103.0026.bz2
-Mon Mar 16 12:20:14 2009    stats
-
-         637 function calls in 0.137 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.137    0.137 <string>:1(<module>)
-        1    0.002    0.002    0.054    0.054 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.083    0.083 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.001 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.137    0.137 openimage.py:68(openimage)
-        1    0.000    0.000    0.054    0.054 openimage.py:94(_openimage)
-        1    0.000    0.000    0.025    0.025 readbytestream.py:27(readbytestream)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        4    0.000    0.000    0.000    0.000 {max}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        6    0.126    0.021    0.126    0.021 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'bz2.BZ2File' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tell' of 'bz2.BZ2File' objects}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.002    0.002    0.002    0.002 {numpy.core.multiarray.fromstring}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0015 0.0011 0.0306 0.1250 0.0194     0.508 testimages\Cr8F8140k103.0026.gz
-Mon Mar 16 12:20:14 2009    stats
-
-         814 function calls in 0.032 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.032    0.032 <string>:1(<module>)
-        1    0.001    0.001    0.003    0.003 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.030    0.030 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        7    0.002    0.000    0.021    0.003 gzip.py:208(read)
-       12    0.000    0.000    0.019    0.002 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       12    0.005    0.000    0.006    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:360(tell)
-        1    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.032    0.032 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.024    0.024 readbytestream.py:27(readbytestream)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       12    0.011    0.001    0.011    0.001 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       25    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       58    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       12    0.000    0.000    0.000    0.000 {min}
-        1    0.002    0.002    0.002    0.002 {numpy.core.multiarray.array}
-        1    0.002    0.002    0.002    0.002 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        2    0.000    0.000    0.000    0.000 {range}
-       14    0.001    0.000    0.001    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0350 0.0294 0.0529                   8.003 testimages\F2K_Seb_Lyso0675.edf
-Mon Mar 16 12:20:14 2009    stats
-
-         624 function calls in 0.052 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.052    0.052 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.002    0.002    0.002    0.002 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.049    0.049 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.051    0.051 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       10    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        8    0.027    0.003    0.027    0.003 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.019    0.019    0.019    0.019 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0102 0.0091 1.3386 1.6250 1.2248     8.003 testimages\F2K_Seb_Lyso0675.edf.bz2
-Mon Mar 16 12:20:20 2009    stats
-
-         624 function calls in 1.319 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    1.319    1.319 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.001    0.001    0.061    0.061 edfimage.py:55(_readheader)
-        1    0.000    0.000    1.252    1.252 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    1.318    1.318 openimage.py:68(openimage)
-        1    0.001    0.001    0.065    0.065 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       10    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        8    1.301    0.163    1.301    0.163 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.012    0.012    0.012    0.012 {numpy.core.multiarray.fromstring}
-
-
-0.0115 0.0139 0.2080 0.3750 0.1809     8.003 testimages\F2K_Seb_Lyso0675.edf.gz
-Mon Mar 16 12:20:20 2009    stats
-
-         841 function calls in 0.209 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.209    0.209 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.002    0.002    0.003    0.003 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.206    0.206 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        8    0.002    0.000    0.189    0.024 gzip.py:208(read)
-       17    0.001    0.000    0.187    0.011 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       16    0.032    0.002    0.044    0.003 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.208    0.208 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {apply}
-       16    0.125    0.008    0.125    0.008 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       43    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       68    0.018    0.000    0.018    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.014    0.014    0.014    0.014 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-       18    0.011    0.001    0.011    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0174 0.0233 0.0333                   8.008 testimages\GE_aSI_detector_image_1529
-Mon Mar 16 12:20:20 2009    stats
-
-         475 function calls in 0.039 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.039    0.039 <string>:1(<module>)
-        1    0.001    0.001    0.002    0.002 GEimage.py:183(_readheader)
-        1    0.000    0.000    0.038    0.038 GEimage.py:196(read)
-        1    0.000    0.000    0.000    0.000 GEimage.py:211(_makeframename)
-        1    0.001    0.001    0.035    0.035 GEimage.py:217(_readframe)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.038    0.038 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-      130    0.000    0.000    0.001    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      157    0.022    0.000    0.022    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-      130    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        1    0.012    0.012    0.012    0.012 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0047 0.0043 1.0045 1.3290 0.9405     8.008 testimages\GE_aSI_detector_image_1529.bz2
-Mon Mar 16 12:20:24 2009    stats
-
-         477 function calls in 1.016 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    1.016    1.016 <string>:1(<module>)
-        1    0.001    0.001    0.002    0.002 GEimage.py:183(_readheader)
-        1    0.000    0.000    0.970    0.970 GEimage.py:196(read)
-        1    0.000    0.000    0.000    0.000 GEimage.py:211(_makeframename)
-        1    0.001    0.001    0.028    0.028 GEimage.py:217(_readframe)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.001    0.000    0.939    0.470 fabioimage.py:284(_open)
-        2    0.001    0.000    0.938    0.469 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    1.015    1.015 openimage.py:68(openimage)
-        1    0.001    0.001    0.045    0.045 openimage.py:94(_openimage)
-      130    0.001    0.000    0.001    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.982    0.491    0.982    0.491 {method 'read' of 'bz2.BZ2File' objects}
-      156    0.015    0.000    0.015    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-      130    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        1    0.012    0.012    0.012    0.012 {numpy.core.multiarray.fromstring}
-
-
-0.0079 0.0071 0.2199 0.3750 0.1330     8.008 testimages\GE_aSI_detector_image_1529.gz
-Mon Mar 16 12:20:26 2009    stats
-
-         683 function calls in 0.166 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.166    0.166 <string>:1(<module>)
-        1    0.001    0.001    0.002    0.002 GEimage.py:183(_readheader)
-        1    0.000    0.000    0.165    0.165 GEimage.py:196(read)
-        1    0.000    0.000    0.000    0.000 GEimage.py:211(_makeframename)
-        1    0.001    0.001    0.026    0.026 GEimage.py:217(_readframe)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.136    0.068 fabioimage.py:284(_open)
-        2    0.000    0.000    0.136    0.068 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.001    0.001    0.136    0.068 gzip.py:208(read)
-       14    0.000    0.000    0.135    0.010 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.033    0.003    0.044    0.003 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.166    0.166 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-      132    0.001    0.000    0.001    0.000 struct.py:77(unpack)
-       13    0.082    0.006    0.082    0.006 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       27    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      156    0.014    0.000    0.014    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       77    0.008    0.000    0.008    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-      132    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        1    0.011    0.011    0.011    0.011 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-       15    0.011    0.001    0.011    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0017 0.0007 0.8216                   0.256 testimages\b191_1_9_1.img
-Mon Mar 16 12:20:28 2009    stats
-
-         128 function calls in 0.758 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.758    0.758 <string>:1(<module>)
-        1    0.743    0.743    0.757    0.757 OXDimage.py:145(read)
-        1    0.001    0.001    0.001    0.001 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.758    0.758 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        2    0.003    0.002    0.003    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.002    0.002    0.002    0.002 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        8    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.001    0.000    0.001    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        1    0.006    0.006    0.006    0.006 {range}
-
-
-0.0179 0.0004 0.7436 0.0930 0.0380     0.256 testimages\b191_1_9_1.img.bz2
-Mon Mar 16 12:20:28 2009    stats
-
-         128 function calls in 0.773 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.773    0.773 <string>:1(<module>)
-        1    0.657    0.657    0.740    0.740 OXDimage.py:145(read)
-        1    0.001    0.001    0.066    0.066 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.001 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.773    0.773 openimage.py:68(openimage)
-        1    0.000    0.000    0.032    0.032 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        2    0.003    0.001    0.003    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.002    0.002    0.002    0.002 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        8    0.037    0.005    0.037    0.005 {method 'read' of 'bz2.BZ2File' objects}
-        6    0.034    0.006    0.034    0.006 {method 'readline' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.031    0.010    0.031    0.010 {method 'seek' of 'bz2.BZ2File' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.006    0.006    0.006    0.006 {range}
-
-
-0.0141 0.0004 0.6509 0.0620 0.0056     0.256 testimages\b191_1_9_1.img.gz
-Mon Mar 16 12:20:30 2009    stats
-
-         394 function calls in 0.660 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.660    0.660 <string>:1(<module>)
-        1    0.642    0.642    0.659    0.659 OXDimage.py:145(read)
-        1    0.001    0.001    0.002    0.002 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       22    0.001    0.000    0.006    0.000 gzip.py:208(read)
-        6    0.000    0.000    0.000    0.000 gzip.py:240(_unread)
-       11    0.000    0.000    0.006    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       11    0.001    0.000    0.001    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        6    0.000    0.000    0.001    0.000 gzip.py:391(readline)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.660    0.660 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       11    0.003    0.000    0.003    0.000 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       45    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-       10    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.002    0.001    0.002    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.002    0.002    0.002    0.002 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       19    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       70    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        4    0.006    0.001    0.006    0.001 {range}
-       14    0.000    0.000    0.000    0.000 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0024 0.0024 0.0064                   1.005 testimages\b191_1_9_1_uncompressed.img
-Mon Mar 16 12:20:30 2009    stats
-
-         120 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        1    0.000    0.000    0.006    0.006 OXDimage.py:145(read)
-        1    0.000    0.000    0.000    0.000 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        1    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.002    0.002    0.002    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        7    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.001    0.000    0.001    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0021 0.0005 0.1782 0.1870 0.1076     1.005 testimages\b191_1_9_1_uncompressed.img.bz2
-Mon Mar 16 12:20:32 2009    stats
-
-         120 function calls in 0.178 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.178    0.178 <string>:1(<module>)
-        1    0.000    0.000    0.142    0.142 OXDimage.py:145(read)
-        1    0.000    0.000    0.071    0.071 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.178    0.178 openimage.py:68(openimage)
-        1    0.001    0.001    0.036    0.036 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        1    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.001    0.001    0.001    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        7    0.102    0.015    0.102    0.015 {method 'read' of 'bz2.BZ2File' objects}
-        6    0.035    0.006    0.035    0.006 {method 'readline' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.036    0.012    0.036    0.012 {method 'seek' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.002    0.000    0.002    0.000 {numpy.core.multiarray.fromstring}
-
-
-0.0030 0.0009 0.0189 0.0790 0.0152     1.005 testimages\b191_1_9_1_uncompressed.img.gz
-Mon Mar 16 12:20:32 2009    stats
-
-         429 function calls in 0.020 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.020    0.020 <string>:1(<module>)
-        1    0.000    0.000    0.019    0.019 OXDimage.py:145(read)
-        1    0.000    0.000    0.001    0.001 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       19    0.000    0.000    0.015    0.001 gzip.py:208(read)
-        6    0.000    0.000    0.000    0.000 gzip.py:240(_unread)
-       13    0.000    0.000    0.015    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.004    0.000    0.005    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        6    0.000    0.000    0.001    0.000 gzip.py:391(readline)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.020    0.020 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       13    0.008    0.001    0.008    0.001 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        8    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.001    0.001    0.001    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       17    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      111    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.001    0.000    0.001    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        3    0.000    0.000    0.000    0.000 {range}
-       16    0.001    0.000    0.001    0.000 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0164 0.0176 0.2444                   8.004 testimages\corkcont2_H_0089.mccd
-Mon Mar 16 12:20:32 2009    stats
-
-         1304 function calls in 0.142 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.006    0.006    0.142    0.142 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.003    0.003 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.049    0.049 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.050    0.050 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.028    0.028 ImageFile.py:115(load)
-        1    0.000    0.000    0.012    0.012 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.002    0.001 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.001    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.136    0.136 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.023    0.023 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.006    0.006    0.135    0.135 tifimage.py:58(read)
-        1    0.012    0.012    0.012    0.012 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      128    0.005    0.000    0.005    0.000 {built-in method decode}
-      256    0.025    0.000    0.025    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       34    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-      267    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.023    0.011    0.023    0.011 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      152    0.010    0.000    0.010    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        2    0.028    0.014    0.028    0.014 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0034 0.0042 0.7445 0.8120 0.5688     8.004 testimages\corkcont2_H_0089.mccd.bz2
-Mon Mar 16 12:20:34 2009    stats
-
-         1306 function calls in 0.748 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.006    0.006    0.748    0.748 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.003    0.003 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.049    0.049 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.040    0.040 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.018    0.018 ImageFile.py:115(load)
-        1    0.000    0.000    0.009    0.009 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.002    0.001 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.001    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.001    0.000    0.566    0.283 fabioimage.py:284(_open)
-        2    0.001    0.000    0.565    0.282 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.742    0.742 openimage.py:68(openimage)
-        1    0.001    0.001    0.050    0.050 openimage.py:94(_openimage)
-        1    0.000    0.000    0.023    0.023 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.007    0.007    0.691    0.691 tifimage.py:58(read)
-        1    0.009    0.009    0.009    0.009 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.023    0.023    0.023    0.023 {built-in method convert}
-      128    0.004    0.000    0.004    0.000 {built-in method decode}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       34    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-      267    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.023    0.012    0.023    0.012 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.613    0.307    0.613    0.307 {method 'read' of 'bz2.BZ2File' objects}
-      151    0.003    0.000    0.003    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        2    0.027    0.014    0.027    0.014 {numpy.core.multiarray.fromstring}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0045 0.0051 0.2546 0.3130 0.1230     8.004 testimages\corkcont2_H_0089.mccd.gz
-Mon Mar 16 12:20:36 2009    stats
-
-         1494 function calls in 0.258 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.258    0.258 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.048    0.048 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.041    0.041 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.019    0.019 ImageFile.py:115(load)
-        1    0.000    0.000    0.010    0.010 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.122    0.061 fabioimage.py:284(_open)
-        2    0.000    0.000    0.122    0.061 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.001    0.001    0.122    0.061 gzip.py:208(read)
-       13    0.000    0.000    0.120    0.009 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       12    0.040    0.003    0.051    0.004 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.253    0.253 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        1    0.000    0.000    0.023    0.023 string.py:306(join)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.009    0.009    0.250    0.250 tifimage.py:58(read)
-        1    0.010    0.010    0.010    0.010 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      128    0.005    0.000    0.005    0.000 {built-in method decode}
-       12    0.065    0.005    0.065    0.005 {built-in method decompress}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       59    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-      267    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.023    0.012    0.023    0.012 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      151    0.003    0.000    0.003    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       66    0.003    0.000    0.003    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       14    0.000    0.000    0.000    0.000 {min}
-        2    0.029    0.015    0.029    0.015 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      192    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       14    0.011    0.001    0.011    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0089 0.8983                   3.471 testimages\example.mar2300
-Mon Mar 16 12:20:36 2009    stats
-
-         231 function calls in 0.517 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.517    0.517 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:137(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:74(__init__)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.515    0.515 mar345image.py:19(read)
-        1    0.001    0.001    0.001    0.001 mar345image.py:47(_readheader)
-        2    0.000    0.000    0.000    0.000 ntpath.py:116(splitdrive)
-        2    0.000    0.000    0.000    0.000 ntpath.py:158(split)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.517    0.517 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 re.py:186(compile)
-        1    0.000    0.000    0.000    0.000 re.py:227(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       15    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       17    0.000    0.000    0.000    0.000 {len}
-        1    0.514    0.514    0.514    0.514 {mar345_io.unpack}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        4    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-       15    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        2    0.001    0.000    0.001    0.000 {open}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0077 0.0079 1.4724 1.0150 0.7642     3.471 testimages\example.mar2300.bz2
-Mon Mar 16 12:20:42 2009    stats
-
-         236 function calls in 1.510 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    1.510    1.510 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:137(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:74(__init__)
-        2    0.000    0.000    0.837    0.418 fabioimage.py:284(_open)
-        2    0.001    0.001    0.836    0.418 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    1.383    1.383 mar345image.py:19(read)
-        1    0.000    0.000    0.001    0.001 mar345image.py:47(_readheader)
-        2    0.000    0.000    0.000    0.000 ntpath.py:116(splitdrive)
-        2    0.000    0.000    0.000    0.000 ntpath.py:158(split)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    1.510    1.510 openimage.py:68(openimage)
-        1    0.001    0.001    0.127    0.127 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 re.py:186(compile)
-        1    0.000    0.000    0.000    0.000 re.py:227(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       15    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       17    0.000    0.000    0.000    0.000 {len}
-        1    0.545    0.545    0.545    0.545 {mar345_io.unpack}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.886    0.443    0.886    0.443 {method 'read' of 'bz2.BZ2File' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-       15    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        1    0.074    0.074    0.074    0.074 {method 'write' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {nt.tmpfile}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0076 0.0078 0.6351 0.1410 0.0660     3.471 testimages\example.mar2300.gz
-Mon Mar 16 12:20:44 2009    stats
-
-         419 function calls in 0.649 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.649    0.649 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:137(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:74(__init__)
-        2    0.000    0.000    0.127    0.064 fabioimage.py:284(_open)
-        2    0.000    0.000    0.127    0.064 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.001    0.000    0.066    0.033 gzip.py:208(read)
-       14    0.000    0.000    0.065    0.005 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.012    0.001    0.017    0.001 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.648    0.648 mar345image.py:19(read)
-        1    0.001    0.001    0.001    0.001 mar345image.py:47(_readheader)
-        2    0.000    0.000    0.000    0.000 ntpath.py:116(splitdrive)
-        2    0.000    0.000    0.000    0.000 ntpath.py:158(split)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.649    0.649 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 re.py:186(compile)
-        1    0.000    0.000    0.000    0.000 re.py:227(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       17    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       13    0.040    0.003    0.040    0.003 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        1    0.519    0.519    0.519    0.519 {mar345_io.unpack}
-        2    0.000    0.000    0.000    0.000 {max}
-        3    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       58    0.008    0.000    0.008    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        1    0.060    0.060    0.060    0.060 {method 'write' of 'file' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {nt.tmpfile}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       15    0.005    0.000    0.005    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0046 0.0005 0.0012                   0.215 testimages\face.edf
-Mon Mar 16 12:20:44 2009    stats
-
-         119 function calls in 0.001 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.001    0.001 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.001    0.001 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.001    0.001 openimage.py:68(openimage)
-        1    0.000    0.000    0.000    0.000 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        7    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0016 0.0002 0.0045 0.0620 0.0036     0.215 testimages\face.edf.bz2
-Mon Mar 16 12:20:44 2009    stats
-
-         119 function calls in 0.005 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.005    0.005 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.004    0.004 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.005    0.005 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        7    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.004    0.001    0.004    0.001 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-
-
-0.0003 0.0003 0.0038 0.0620 0.0030     0.215 testimages\face.edf.gz
-Mon Mar 16 12:20:44 2009    stats
-
-         208 function calls in 0.005 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.005    0.005 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.003    0.003 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        4    0.000    0.000    0.003    0.001 gzip.py:208(read)
-        4    0.000    0.000    0.003    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        3    0.000    0.000    0.001    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.005    0.005 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {apply}
-        3    0.002    0.001    0.002    0.001 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       14    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       31    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        3    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        5    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0007 0.0004 0.0054                   0.008 testimages\face.msk
-Mon Mar 16 12:20:44 2009    stats
-
-         82 function calls in 0.006 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.006    0.006 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.002    0.002    0.005    0.005 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.006    0.006 openimage.py:68(openimage)
-        1    0.000    0.000    0.000    0.000 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.003    0.003    0.003    0.003 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0003 0.0002 0.0057 0.0630 0.0012     0.008 testimages\face.msk.bz2
-Mon Mar 16 12:20:44 2009    stats
-
-         82 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.001    0.001    0.006    0.006 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.001    0.000    0.001    0.000 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.003    0.003    0.003    0.003 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0004 0.0004 0.0056 0.0630 0.0010     0.008 testimages\face.msk.gz
-Mon Mar 16 12:20:44 2009    stats
-
-         167 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.001    0.001    0.005    0.005 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        3    0.000    0.000    0.001    0.000 gzip.py:208(read)
-        3    0.000    0.000    0.001    0.000 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        3    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        3    0.000    0.000    0.000    0.000 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        9    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       31    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        3    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.003    0.003    0.003    0.003 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {range}
-        5    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.1201 0.0069 0.0154                   4.001 testimages\fit2d_click.edf
-Mon Mar 16 12:20:44 2009    stats
-
-         119 function calls in 0.025 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.025    0.025 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.023    0.023 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.025    0.025 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        7    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.006    0.001    0.006    0.001 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.016    0.016    0.016    0.016 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0030 0.0005 0.0681 0.1250 0.0623     4.001 testimages\fit2d_click.edf.bz2
-Mon Mar 16 12:20:44 2009    stats
-
-         119 function calls in 0.067 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.067    0.067 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.002    0.002 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.062    0.062 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.065    0.065 openimage.py:68(openimage)
-        1    0.000    0.000    0.003    0.003 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        7    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.057    0.014    0.057    0.014 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.006    0.006    0.006    0.006 {numpy.core.multiarray.fromstring}
-
-
-0.0008 0.0004 0.0632 0.1410 0.0437     4.001 testimages\fit2d_click.edf.gz
-Mon Mar 16 12:20:44 2009    stats
-
-         238 function calls in 0.063 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.063    0.063 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.011    0.011 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.055    0.055 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        4    0.004    0.001    0.052    0.013 gzip.py:208(read)
-        6    0.000    0.000    0.048    0.008 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        5    0.015    0.003    0.023    0.005 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.062    0.062 openimage.py:68(openimage)
-        1    0.000    0.000    0.007    0.007 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {apply}
-        5    0.024    0.005    0.024    0.005 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       18    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       47    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        5    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.008    0.008    0.008    0.008 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        7    0.007    0.001    0.007    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0009 0.0003 0.0767                   0.126 testimages\fit2d_click.msk
-Mon Mar 16 12:20:44 2009    stats
-
-         82 function calls in 0.081 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.081    0.081 <string>:1(<module>)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.014    0.014    0.080    0.080 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.081    0.081 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        9    0.007    0.001    0.007    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.057    0.057    0.057    0.057 {numpy.core.multiarray.where}
-        1    0.002    0.002    0.002    0.002 {numpy.core.multiarray.zeros}
-        2    0.001    0.000    0.001    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0017 0.0003 0.0777 0.0620 0.0022     0.126 testimages\fit2d_click.msk.bz2
-Mon Mar 16 12:20:44 2009    stats
-
-         82 function calls in 0.080 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.080    0.080 <string>:1(<module>)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.012    0.012    0.079    0.079 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.080    0.080 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        9    0.007    0.001    0.007    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.001    0.000    0.001    0.000 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.057    0.057    0.057    0.057 {numpy.core.multiarray.where}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.zeros}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0021 0.0003 0.0750 0.0630 0.0020     0.126 testimages\fit2d_click.msk.gz
-Mon Mar 16 12:20:46 2009    stats
-
-         189 function calls in 0.077 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.077    0.077 <string>:1(<module>)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.001    0.001 fit2dmaskimage.py:19(_readheader)
-        1    0.012    0.012    0.075    0.075 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        6    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        3    0.000    0.000    0.003    0.001 gzip.py:208(read)
-        2    0.000    0.000    0.002    0.001 gzip.py:245(_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        2    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        2    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        4    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.077    0.077 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        4    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.001    0.001    0.001    0.001 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        8    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        9    0.006    0.001    0.006    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       46    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        4    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.054    0.054    0.054    0.054 {numpy.core.multiarray.where}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {range}
-        4    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0377 0.0507 0.2064                  18.000 testimages\mb_LP_1_001.img
-Mon Mar 16 12:20:46 2009    stats
-
-         183 function calls in 0.210 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.210    0.210 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    0.204    0.204 adscimage.py:25(read)
-        1    0.000    0.000    0.074    0.074 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.003    0.003    0.208    0.208 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       20    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.060    0.060    0.060    0.060 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.040    0.020    0.040    0.020 {method 'read' of 'file' objects}
-       19    0.074    0.004    0.074    0.004 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.027    0.027    0.027    0.027 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.1270 0.0125 4.6505 3.4060 2.6507    18.000 testimages\mb_LP_1_001.img.bz2
-Mon Mar 16 12:21:00 2009    stats
-
-         183 function calls in 4.413 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    4.413    4.413 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.002    0.002    4.356    4.356 adscimage.py:25(read)
-        1    0.000    0.000    1.657    1.657 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.002    0.002    4.411    4.411 openimage.py:68(openimage)
-        1    0.001    0.001    0.054    0.054 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       20    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.051    0.051    0.051    0.051 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    2.626    1.313    2.626    1.313 {method 'read' of 'bz2.BZ2File' objects}
-       19    1.657    0.087    1.657    0.087 {method 'readline' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.045    0.045    0.045    0.045 {method 'seek' of 'bz2.BZ2File' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.026    0.026    0.026    0.026 {numpy.core.multiarray.fromstring}
-
-
-0.1923 0.0227 0.5979 1.0000 0.3347    18.000 testimages\mb_LP_1_001.img.gz
-Mon Mar 16 12:21:04 2009    stats
-
-         1121 function calls in 0.607 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.607    0.607 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    0.601    0.601 adscimage.py:25(read)
-        1    0.001    0.001    0.179    0.179 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        3    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        3    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       37    0.019    0.001    0.485    0.013 gzip.py:208(read)
-       19    0.005    0.000    0.005    0.000 gzip.py:240(_unread)
-       75    0.002    0.000    0.466    0.006 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       74    0.104    0.001    0.138    0.002 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        3    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        3    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-       19    0.005    0.000    0.178    0.009 gzip.py:391(readline)
-        3    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        3    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.002    0.002    0.605    0.605 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {apply}
-       74    0.295    0.004    0.295    0.004 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-      237    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-       51    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.056    0.056    0.056    0.056 {method 'byteswap' of 'numpy.ndarray' objects}
-        3    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       38    0.005    0.000    0.005    0.000 {method 'find' of 'str' objects}
-       20    0.007    0.000    0.007    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      136    0.030    0.000    0.030    0.000 {method 'read' of 'file' objects}
-        9    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       90    0.000    0.000    0.000    0.000 {min}
-        1    0.034    0.034    0.034    0.034 {numpy.core.multiarray.fromstring}
-        3    0.001    0.000    0.001    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-       77    0.034    0.000    0.034    0.000 {zlib.crc32}
-        3    0.001    0.000    0.001    0.000 {zlib.decompressobj}
-
-
-0.7949 0.0430 0.1928                  18.000 testimages\mb_LP_1_002.img
-Mon Mar 16 12:21:04 2009    stats
-
-         183 function calls in 0.208 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.208    0.208 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    0.203    0.203 adscimage.py:25(read)
-        1    0.000    0.000    0.084    0.084 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.002    0.002    0.206    0.206 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       20    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.052    0.052    0.052    0.052 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.037    0.018    0.037    0.018 {method 'read' of 'file' objects}
-       19    0.084    0.004    0.084    0.004 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.027    0.027    0.027    0.027 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.2505 0.0227 0.2163                   8.067 testimages\oPPA_5grains_0001.tif
-Mon Mar 16 12:21:06 2009    stats
-
-         11319 function calls in 0.221 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.004    0.004    0.223    0.223 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.019    0.019 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.003    0.000    0.006    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.055    0.055 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.110    0.110 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.002    0.000 Image.py:91(isTupleType)
-        1    0.008    0.008    0.088    0.088 ImageFile.py:115(load)
-        1    0.000    0.000    0.010    0.010 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.018    0.005 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.010    0.001 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.003    0.003    0.009    0.009 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.018    0.018 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.018    0.018 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.005    0.005    0.017    0.017 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.005    0.000    0.007    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.219    0.219 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.030    0.030 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.005    0.005    0.218    0.218 tifimage.py:58(read)
-        1    0.010    0.010    0.010    0.010 {_imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      512    0.039    0.000    0.039    0.000 {built-in method decode}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      524    0.001    0.000    0.001    0.000 {isinstance}
-      551    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.030    0.015    0.030    0.015 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      541    0.019    0.000    0.019    0.000 {method 'read' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      528    0.002    0.000    0.002    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.001    0.001 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-     1024    0.001    0.000    0.001    0.000 {min}
-        2    0.030    0.015    0.030    0.015 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-     2244    0.002    0.000    0.002    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0164 0.0005 0.7279 0.8430 0.5297     8.067 testimages\oPPA_5grains_0001.tif.bz2
-Mon Mar 16 12:21:08 2009    stats
-
-         11321 function calls in 0.759 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.004    0.004    0.765    0.765 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.010    0.010 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.003    0.000    0.007    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.053    0.053 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.121    0.121 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.002    0.000 Image.py:91(isTupleType)
-        1    0.008    0.008    0.099    0.099 ImageFile.py:115(load)
-        1    0.000    0.000    0.007    0.007 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.010    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.006    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.005    0.005 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.010    0.010 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.009    0.009 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.008    0.008 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.003    0.000    0.004    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.001    0.000    0.528    0.264 fabioimage.py:284(_open)
-        2    0.001    0.000    0.527    0.264 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.761    0.761 openimage.py:68(openimage)
-        1    0.001    0.001    0.015    0.015 openimage.py:94(_openimage)
-        1    0.000    0.000    0.028    0.028 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.006    0.006    0.746    0.746 tifimage.py:58(read)
-        1    0.007    0.007    0.007    0.007 {_imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      512    0.040    0.000    0.040    0.000 {built-in method decode}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      524    0.001    0.000    0.001    0.000 {isinstance}
-      551    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.028    0.014    0.028    0.014 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.540    0.270    0.540    0.270 {method 'read' of 'bz2.BZ2File' objects}
-      540    0.028    0.000    0.028    0.000 {method 'read' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      528    0.001    0.000    0.001    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.001    0.001 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-     1024    0.001    0.000    0.001    0.000 {min}
-        2    0.028    0.014    0.028    0.014 {numpy.core.multiarray.fromstring}
-     2244    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0125 0.0006 0.2968 0.2810 0.0891     8.067 testimages\oPPA_5grains_0001.tif.gz
-Mon Mar 16 12:21:10 2009    stats
-
-         11469 function calls in 0.283 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.006    0.006    0.284    0.284 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.010    0.010 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.003    0.000    0.006    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.049    0.049 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.096    0.096 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.002    0.000 Image.py:91(isTupleType)
-        1    0.007    0.007    0.074    0.074 ImageFile.py:115(load)
-        1    0.000    0.000    0.007    0.007 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.010    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.006    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.005    0.005 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.010    0.010 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.010    0.010 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.009    0.009 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.003    0.000    0.004    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.082    0.041 fabioimage.py:284(_open)
-        2    0.000    0.000    0.082    0.041 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.001    0.001    0.084    0.042 gzip.py:208(read)
-        8    0.000    0.000    0.083    0.010 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        7    0.032    0.005    0.045    0.006 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.278    0.278 openimage.py:68(openimage)
-        1    0.000    0.000    0.004    0.004 openimage.py:94(_openimage)
-        1    0.000    0.000    0.024    0.024 string.py:306(join)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.008    0.008    0.273    0.273 tifimage.py:58(read)
-        1    0.007    0.007    0.007    0.007 {_imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      512    0.039    0.000    0.039    0.000 {built-in method decode}
-        7    0.037    0.005    0.037    0.005 {built-in method decompress}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      524    0.001    0.000    0.001    0.000 {isinstance}
-      566    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.024    0.012    0.024    0.012 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      540    0.010    0.000    0.010    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       61    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      528    0.001    0.000    0.001    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.001    0.001 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-     1031    0.001    0.000    0.001    0.000 {min}
-        2    0.028    0.014    0.028    0.014 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-     2248    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-        9    0.012    0.001    0.012    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0576 0.0076 0.0391                   2.004 testimages\somedata_0001.mccd
-Mon Mar 16 12:21:10 2009    stats
-
-         728 function calls in 0.045 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.045    0.045 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.003    0.003 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.016    0.016 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.016    0.016 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.008    0.008 ImageFile.py:115(load)
-        1    0.000    0.000    0.002    0.002 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.002    0.001 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.001    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.044    0.044 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.002    0.002    0.043    0.043 tifimage.py:58(read)
-        1    0.002    0.002    0.002    0.002 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.008    0.008    0.008    0.008 {built-in method convert}
-       32    0.002    0.000    0.002    0.000 {built-in method decode}
-       64    0.010    0.000    0.010    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       34    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-       75    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.006    0.003    0.006    0.003 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       56    0.004    0.000    0.004    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        2    0.006    0.003    0.006    0.003 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0265 0.0011 0.2741 0.3130 0.1863     2.004 testimages\somedata_0001.mccd.bz2
-Mon Mar 16 12:21:10 2009    stats
-
-         730 function calls in 0.280 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.280    0.280 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.003    0.003 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.012    0.012 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.009    0.009 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.004    0.004 ImageFile.py:115(load)
-        1    0.000    0.000    0.002    0.002 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.002    0.001 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.001    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.001    0.000    0.189    0.095 fabioimage.py:284(_open)
-        2    0.001    0.000    0.189    0.094 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.279    0.279 openimage.py:68(openimage)
-        1    0.001    0.001    0.059    0.059 openimage.py:94(_openimage)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.002    0.002    0.220    0.220 tifimage.py:58(read)
-        1    0.002    0.002    0.002    0.002 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.005    0.005    0.005    0.005 {built-in method convert}
-       32    0.001    0.000    0.001    0.000 {built-in method decode}
-       64    0.006    0.000    0.006    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       34    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-       75    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.006    0.003    0.006    0.003 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.246    0.123    0.246    0.123 {method 'read' of 'bz2.BZ2File' objects}
-       55    0.001    0.000    0.001    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        2    0.006    0.003    0.006    0.003 {numpy.core.multiarray.fromstring}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0307 0.0016 0.0655 0.1090 0.0349     2.004 testimages\somedata_0001.mccd.gz
-Mon Mar 16 12:21:12 2009    stats
-
-         904 function calls in 0.067 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.067    0.067 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.012    0.012 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.008    0.008 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.004    0.004 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.034    0.017 fabioimage.py:284(_open)
-        2    0.000    0.000    0.034    0.017 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.035    0.017 gzip.py:208(read)
-       12    0.000    0.000    0.034    0.003 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       11    0.007    0.001    0.010    0.001 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.066    0.066 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.002    0.002    0.064    0.064 tifimage.py:58(read)
-        1    0.001    0.001    0.001    0.001 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.005    0.005    0.005    0.005 {built-in method convert}
-       32    0.001    0.000    0.001    0.000 {built-in method decode}
-       11    0.021    0.002    0.021    0.002 {built-in method decompress}
-       64    0.006    0.000    0.006    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       57    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-       75    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.006    0.003    0.006    0.003 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       55    0.001    0.000    0.001    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       59    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        2    0.006    0.003    0.006    0.003 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      192    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       13    0.003    0.000    0.003    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0031 0.0008 0.0030                   0.023 testimages\testmap1_0002.tif
-Mon Mar 16 12:21:12 2009    stats
-
-         595 function calls in 0.003 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.003    0.003 openimage.py:68(openimage)
-        1    0.000    0.000    0.000    0.000 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.000    0.000    0.002    0.002 tifimage.py:58(read)
-        1    0.000    0.000    0.000    0.000 {_imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       14    0.000    0.000    0.000    0.000 {isinstance}
-       38    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       29    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-      204    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0018 0.0003 0.0024 0.0470 0.0008     0.023 testimages\testmap1_0002.tif.bz2
-Mon Mar 16 12:21:12 2009    stats
-
-         597 function calls in 0.003 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.003    0.003 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.000    0.000    0.003    0.003 tifimage.py:58(read)
-        1    0.000    0.000    0.000    0.000 {_imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       14    0.000    0.000    0.000    0.000 {isinstance}
-       38    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'read' of 'bz2.BZ2File' objects}
-       28    0.000    0.000    0.000    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        4    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-      204    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0004 0.0003 0.0023 0.0470 0.0012     0.023 testimages\testmap1_0002.tif.gz
-Mon Mar 16 12:21:12 2009    stats
-
-         713 function calls in 0.004 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.004    0.004 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.001 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        6    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.001    0.000 gzip.py:208(read)
-        3    0.000    0.000    0.001    0.000 gzip.py:245(_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        2    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        2    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        4    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.004    0.004 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        4    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.000    0.000    0.003    0.003 tifimage.py:58(read)
-        1    0.000    0.000    0.000    0.000 {_imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        2    0.000    0.000    0.000    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       14    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       28    0.000    0.000    0.000    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       50    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        6    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-      208    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-        4    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
diff --git a/test/testOXDimage.py b/test/testOXDimage.py
old mode 100755
new mode 100644
diff --git a/test/test_all.bat b/test/test_all.bat
deleted file mode 100644
index aee516e..0000000
--- a/test/test_all.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-cd ..
-set PYT=c:\python25\python
-%PYT% setup.py build --compiler=mingw32
-set PYTHONPATH=..\build\lib.win32-2.5
-cd test
-
-%PYT% testheadernotsingleton.py
-%PYT% testadscimage.py
-%PYT% testbrukerimage.py
-%PYT% testedfimage.py
-%PYT% testfabioimage.py
-%PYT% testfilenames.py
-%PYT% test_filename_steps.py
-%PYT% test_file_series.py
-%PYT% testfit2dmaskimage.py
-%PYT% testGEimage.py
-%PYT% testmar345image.py
-%PYT% testmccdimage.py
-%PYT% testopenheader.py
-%PYT% testopenimage.py
-%PYT% testOXDimage.py
-%PYT% testtifgz.py
-
-%PYT% test_all_images.py > win32_benchmark
-%PYT% benchheader.py > win32_benchheaders
-:END
diff --git a/test/test_all.sh b/test/test_all.sh
deleted file mode 100755
index 164a018..0000000
--- a/test/test_all.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-
-echo "Deprecated !!!"
-exit 0
-
-cd ..
-export PYT=python
-$PYT setup.py build
-export PYTHONPATH=../build/lib.linux-x86_64-2.6
-cd test
-
-# ls *.py | awk '{print "$PYT",$1}'
-
-$PYT testheadernotsingleton.py
-$PYT testadscimage.py
-$PYT testbrukerimage.py
-$PYT testedfimage.py
-$PYT testfabioimage.py
-$PYT testfilenames.py
-$PYT test_filename_steps.py
-$PYT test_file_series.py
-$PYT testfit2dmaskimage.py
-$PYT testGEimage.py
-$PYT testmar345image.py
-$PYT testmccdimage.py
-$PYT testopenheader.py
-$PYT testopenimage.py
-$PYT testOXDimage.py
-$PYT testtifgz.py
-
-$PYT test_all_images.py > `hostname`_benchmark
-$PYT benchheader.py > `hostname`_benchheaders
-
diff --git a/test/test_file_series.py b/test/test_file_series.py
old mode 100755
new mode 100644
diff --git a/test/test_filename_steps.py b/test/test_filename_steps.py
old mode 100755
new mode 100644
diff --git a/test/testbrukerimage.py b/test/testbrukerimage.py
index 21d0a19..23b0e86 100644
--- a/test/testbrukerimage.py
+++ b/test/testbrukerimage.py
@@ -6,7 +6,7 @@
 #built on testedfimage
 """
 
-import unittest, sys, os, logging
+import unittest, sys, os, logging, tempfile
 logger = logging.getLogger("testbrukerimage")
 force_build = False
 
@@ -32,6 +32,7 @@ import fabio
 from fabio.brukerimage import brukerimage
 import numpy
 import bz2, gzip
+import tempfile
 #this is actually a violation of the bruker format since the order of
 # the header items is specified
 #in the standard, whereas the order of a python dictionary is not
@@ -108,6 +109,20 @@ class testgzipbruker(testbruker):
             self.filename += ".gz"
 
 
+class testbrukerLinear(unittest.TestCase):
+    """basic test, test a random array of float32"""
+    fd, filename = tempfile.mkstemp('0000', "bruker")
+    os.close(fd)
+    data = numpy.random.random((500, 550)).astype("float32")
+    
+    def test_linear(self):
+        """ test for self consitency of random data read/write """
+        obj = brukerimage(data=self.data)
+        obj.write(self.filename)
+        new = brukerimage()
+        new.read(self.filename)
+        error = abs(new.data - self.data).max()
+        self.assert_(error < numpy.finfo(numpy.float32).eps, "Error is %s>1e-7" % error)
 
 
 # statistics come from fit2d I think
@@ -124,7 +139,9 @@ class test_real_im(unittest.TestCase):
         """
         download images
         """
+
         self.im_dir = os.path.dirname(UtilsTest.getimage("Cr8F8140k103.0026.bz2"))
+        self.tempdir = tempfile.mkdtemp()
 
     def test_read(self):
         """ check we can read bruker images"""
@@ -142,12 +159,36 @@ class test_real_im(unittest.TestCase):
             self.assertEqual(dim1, obj.dim1, "dim1")
             self.assertEqual(dim2, obj.dim2, "dim2")
 
+    def test_write(self):
+        "Test writing with self consistency at the fabio level"
+        for line in TESTIMAGES.split("\n"):
+            vals = line.split()
+            name = vals[0]
+            obj = brukerimage()
+            ref = brukerimage()
+            fname = os.path.join(self.im_dir, name)
+            obj.read(fname)
+            obj.write(os.path.join(self.tempdir, name))
+            other = brukerimage()
+            other.read(os.path.join(self.tempdir, name))
+            ref.read(fname)
+            self.assertEqual(abs(obj.data - other.data).max(), 0, "data are the same")
+            for key in ref.header:
+                if key in ("filename",):
+                    continue
+                if key not in other.header:
+                    logger.warning("Key %s is missing in new header, was %s" % (key, ref.header[key]))
+                else:
+                    self.assertEqual(ref.header[key], other.header[key], "value are the same for key %s: was %s now %s" % (key, ref.header[key], other.header[key]))
+
 def test_suite_all_bruker():
     testSuite = unittest.TestSuite()
     testSuite.addTest(testbruker("test_read"))
     testSuite.addTest(testbzipbruker("test_read"))
     testSuite.addTest(testgzipbruker("test_read"))
     testSuite.addTest(test_real_im("test_read"))
+    testSuite.addTest(test_real_im("test_write"))
+    testSuite.addTest(testbrukerLinear("test_linear"))
     return testSuite
 
 if __name__ == '__main__':
diff --git a/test/testedfimage.py b/test/testedfimage.py
index 9455d60..19f7497 100755
--- a/test/testedfimage.py
+++ b/test/testedfimage.py
@@ -1,12 +1,12 @@
 #!/usr/bin/env python
-# -*- coding: utf8 -*- 
+# -*- coding: utf8 -*-
 
 """
 # Unit tests
 
 # builds on stuff from ImageD11.test.testpeaksearch
 """
-import unittest, sys, os, logging
+import unittest, sys, os, logging, tempfile
 logger = logging.getLogger("testedfimage")
 force_build = False
 
@@ -87,7 +87,6 @@ History-1 = something=something else;
 
 
 
-
 class testbzipedf(testflatedfs):
     """ same for bzipped versions """
     def setUp(self):
@@ -274,6 +273,43 @@ class testedffastread(unittest.TestCase):
         obt = ref.fastReadData(self.fastFilename)
         self.assertEqual(abs(obt - refdata).max(), 0, "testedffastread: Same data")
 
+class testedfwrite(unittest.TestCase):
+    """
+    Write dummy edf files with various compression schemes
+    
+    """
+    def setUp(self):
+        self.data = numpy.arange(100).reshape((10, 10))
+        self.header = {"toto": "tutu"}
+        self.tmpdir = tempfile.mkdtemp(prefix="testedfwrite")
+    def testFlat(self):
+        self.filename = os.path.join(self.tmpdir, "merged.azim")
+        e = edfimage(data=self.data, header=self.header)
+        e.write(self.filename)
+        r = fabio.open(self.filename)
+        self.assert_(r.header["toto"] == self.header["toto"], "header are OK")
+        self.assert_(abs(r.data - self.data).max() == 0, "data are OK")
+        self.assertEqual(int(r.header["EDF_HeaderSize"]), 512, "header size is one 512 block")
+    def testGzip(self):
+        self.filename = os.path.join(self.tmpdir, "merged.azim.gz")
+        e = edfimage(data=self.data, header=self.header)
+        e.write(self.filename)
+        r = fabio.open(self.filename)
+        self.assert_(r.header["toto"] == self.header["toto"], "header are OK")
+        self.assert_(abs(r.data - self.data).max() == 0, "data are OK")
+        self.assertEqual(int(r.header["EDF_HeaderSize"]), 512, "header size is one 512 block")
+    def testBzip2(self):
+        self.filename = os.path.join(self.tmpdir, "merged.azim.gz")
+        e = edfimage(data=self.data, header=self.header)
+        e.write(self.filename)
+        r = fabio.open(self.filename)
+        self.assert_(r.header["toto"] == self.header["toto"], "header are OK")
+        self.assert_(abs(r.data - self.data).max() == 0, "data are OK")
+        self.assertEqual(int(r.header["EDF_HeaderSize"]), 512, "header size is one 512 block")
+    def tearDown(self):
+        os.unlink(self.filename)
+        os.rmdir(self.tmpdir)
+
 def test_suite_all_edf():
     testSuite = unittest.TestSuite()
     testSuite.addTest(testflatedfs("test_read"))
@@ -292,6 +328,9 @@ def test_suite_all_edf():
     testSuite.addTest(testedfmultiframe("test_previous_multi"))
     testSuite.addTest(testedfmultiframe("test_openimage_multiframes"))
     testSuite.addTest(testedffastread("test_fastread"))
+    testSuite.addTest(testedfwrite("testFlat"))
+    testSuite.addTest(testedfwrite("testGzip"))
+    testSuite.addTest(testedfwrite("testBzip2"))
 
     return testSuite
 
diff --git a/test/testfilenames.py b/test/testfilenames.py
index 30a5072..48a76a0 100644
--- a/test/testfilenames.py
+++ b/test/testfilenames.py
@@ -86,7 +86,7 @@ class testfilenames(unittest.TestCase):
     def test_many_cases(self):
         """ loop over CASES """
         for num, typ, name in CASES:
-            obj = fabio.deconstruct_filename(name)
+            obj = fabio.FilenameObject(filename=name)
             self.assertEqual(num, obj.num , name + " num=" + str(num) + \
                                                  " != obj.num=" + str(obj.num))
             self.assertEqual(typ, "_or_".join(obj.format),
diff --git a/test/testfit2dmaskimage.py b/test/testfit2dmaskimage.py
old mode 100755
new mode 100644
diff --git a/test/testheadernotsingleton.py b/test/testheadernotsingleton.py
old mode 100755
new mode 100644
diff --git a/test/testmar345image.py b/test/testmar345image.py
index c5dda4c..10d83cb 100644
--- a/test/testmar345image.py
+++ b/test/testmar345image.py
@@ -48,7 +48,7 @@ class testMAR345(unittest.TestCase):
 
     def test_read(self):
         """
-        Test the reading of Mar345 images 
+        Test the reading of Mar345 images
         """
         for line in TESTIMAGES.split('\n'):
             vals = line.strip().split()
@@ -67,6 +67,7 @@ class testMAR345(unittest.TestCase):
     def test_write(self):
         "Test writing with self consistency at the fabio level"
         for line in TESTIMAGES.split("\n"):
+            logger.debug("Processing file: %s" % line)
             vals = line.split()
             name = vals[0]
             obj = mar345image()
@@ -80,6 +81,15 @@ class testMAR345(unittest.TestCase):
                     continue
                 self.assertTrue(key in other.header, "Key %s is in header" % key)
                 self.assertEqual(obj.header[key], other.header[key], "value are the same for key %s: [%s|%s]" % (key, obj.header[key], other.header[key]))
+    def test_memoryleak(self):
+        """
+        This test takes a lot of time, so only in debug mode.
+        """
+        if logger.getEffectiveLevel() <= logging.INFO:
+            logger.debug("Testing for memory leak")
+            for i in range(1000):
+                img = fabio.open(self.mar)
+                print i
 
 
 
@@ -87,6 +97,7 @@ def test_suite_all_mar345():
     testSuite = unittest.TestSuite()
     testSuite.addTest(testMAR345("test_read"))
     testSuite.addTest(testMAR345("test_write"))
+    testSuite.addTest(testMAR345("test_memoryleak"))
 
     return testSuite
 
diff --git a/test/testopenheader.py b/test/testopenheader.py
old mode 100755
new mode 100644
diff --git a/test/testopenimage.py b/test/testopenimage.py
old mode 100755
new mode 100644
diff --git a/test/testtifgz.py b/test/testtifgz.py
old mode 100755
new mode 100644
diff --git a/test/win32_benchheaders b/test/win32_benchheaders
deleted file mode 100644
index d8c759d..0000000
--- a/test/win32_benchheaders
+++ /dev/null
@@ -1,46 +0,0 @@
-  0.002363 testimages\Cr8F8140k103.0026
-  0.066067 testimages\Cr8F8140k103.0026.bz2
-  0.001853 testimages\Cr8F8140k103.0026.gz
-  0.002819 testimages\F2K_Seb_Lyso0675.edf
-  0.121077 testimages\F2K_Seb_Lyso0675.edf.bz2
-  0.002366 testimages\F2K_Seb_Lyso0675.edf.gz
-  0.001428 testimages\GE_aSI_detector_image_1529
-  0.082350 testimages\GE_aSI_detector_image_1529.bz2
-  0.003077 testimages\GE_aSI_detector_image_1529.gz
-  0.000956 testimages\b191_1_9_1.img
-  0.096141 testimages\b191_1_9_1.img.bz2
-  0.002030 testimages\b191_1_9_1.img.gz
-  0.001849 testimages\b191_1_9_1_uncompressed.img
-  0.107067 testimages\b191_1_9_1_uncompressed.img.bz2
-  0.001737 testimages\b191_1_9_1_uncompressed.img.gz
-  0.001170 testimages\corkcont2_H_0089.mccd
-  0.091742 testimages\corkcont2_H_0089.mccd.bz2
-  0.002270 testimages\corkcont2_H_0089.mccd.gz
-  0.001537 testimages\example.mar2300
-  0.257166 testimages\example.mar2300.bz2
-  0.002286 testimages\example.mar2300.gz
-  0.001194 testimages\face.edf
-  0.002741 testimages\face.edf.bz2
-  0.003132 testimages\face.edf.gz
-  0.000567 testimages\face.msk
-  0.001318 testimages\face.msk.bz2
-  0.000881 testimages\face.msk.gz
-  0.001576 testimages\fit2d_click.edf
-  0.002984 testimages\fit2d_click.edf.bz2
-  0.016475 testimages\fit2d_click.edf.gz
-  0.000976 testimages\fit2d_click.msk
-  0.000984 testimages\fit2d_click.msk.bz2
-  0.003222 testimages\fit2d_click.msk.gz
-  0.062191 testimages\mb_LP_1_001.img
-  1.668834 testimages\mb_LP_1_001.img.bz2
-  0.181976 testimages\mb_LP_1_001.img.gz
-  0.058940 testimages\mb_LP_1_002.img
-  0.000631 testimages\oPPA_5grains_0001.tif
-  0.028324 testimages\oPPA_5grains_0001.tif.bz2
-  0.004554 testimages\oPPA_5grains_0001.tif.gz
-  0.000595 testimages\somedata_0001.mccd
-  0.113065 testimages\somedata_0001.mccd.bz2
-  0.001092 testimages\somedata_0001.mccd.gz
-  0.000538 testimages\testmap1_0002.tif
-  0.000787 testimages\testmap1_0002.tif.bz2
-  0.001096 testimages\testmap1_0002.tif.gz
diff --git a/test/win32_benchmark b/test/win32_benchmark
deleted file mode 100644
index 6fe2c51..0000000
--- a/test/win32_benchmark
+++ /dev/null
@@ -1,3285 +0,0 @@
-I/O 1  : Time to read the image
-I/O 2  : Time to read the image (repeat
-Fabio  : Time for fabio to read the image
-Shell  : Time for shell to do decompression
-Python : Time for python to do decompression
-
-I/O 1  I/O 2  Fabio  Shell  Python   Size/MB
-0.0025 0.0020 0.0095                   0.508 testimages\Cr8F8140k103.0026
-Mon Mar 16 12:20:12 2009    stats
-
-         637 function calls in 0.011 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.011    0.011 <string>:1(<module>)
-        1    0.001    0.001    0.002    0.002 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.010    0.010 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.011    0.011 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.005    0.005 readbytestream.py:27(readbytestream)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        4    0.000    0.000    0.000    0.000 {max}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        6    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0012 0.0009 0.1342 0.1880 0.0778     0.508 testimages\Cr8F8140k103.0026.bz2
-Mon Mar 16 12:20:14 2009    stats
-
-         637 function calls in 0.137 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.137    0.137 <string>:1(<module>)
-        1    0.002    0.002    0.054    0.054 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.083    0.083 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.001 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.137    0.137 openimage.py:68(openimage)
-        1    0.000    0.000    0.054    0.054 openimage.py:94(_openimage)
-        1    0.000    0.000    0.025    0.025 readbytestream.py:27(readbytestream)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        4    0.000    0.000    0.000    0.000 {max}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        6    0.126    0.021    0.126    0.021 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'bz2.BZ2File' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tell' of 'bz2.BZ2File' objects}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.array}
-        1    0.002    0.002    0.002    0.002 {numpy.core.multiarray.fromstring}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0015 0.0011 0.0306 0.1250 0.0194     0.508 testimages\Cr8F8140k103.0026.gz
-Mon Mar 16 12:20:14 2009    stats
-
-         814 function calls in 0.032 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.032    0.032 <string>:1(<module>)
-        1    0.001    0.001    0.003    0.003 brukerimage.py:35(_readheader)
-        1    0.000    0.000    0.030    0.030 brukerimage.py:84(read)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        7    0.002    0.000    0.021    0.003 gzip.py:208(read)
-       12    0.000    0.000    0.019    0.002 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       12    0.005    0.000    0.006    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:360(tell)
-        1    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.032    0.032 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.024    0.024 readbytestream.py:27(readbytestream)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       12    0.011    0.001    0.011    0.001 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        6    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       25    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-       80    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.003    0.003    0.003    0.003 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-      127    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-       92    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       58    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       92    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-      184    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       12    0.000    0.000    0.000    0.000 {min}
-        1    0.002    0.002    0.002    0.002 {numpy.core.multiarray.array}
-        1    0.002    0.002    0.002    0.002 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        2    0.000    0.000    0.000    0.000 {range}
-       14    0.001    0.000    0.001    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0350 0.0294 0.0529                   8.003 testimages\F2K_Seb_Lyso0675.edf
-Mon Mar 16 12:20:14 2009    stats
-
-         624 function calls in 0.052 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.052    0.052 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.002    0.002    0.002    0.002 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.049    0.049 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.051    0.051 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       10    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        8    0.027    0.003    0.027    0.003 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.019    0.019    0.019    0.019 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0102 0.0091 1.3386 1.6250 1.2248     8.003 testimages\F2K_Seb_Lyso0675.edf.bz2
-Mon Mar 16 12:20:20 2009    stats
-
-         624 function calls in 1.319 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    1.319    1.319 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.001    0.001    0.061    0.061 edfimage.py:55(_readheader)
-        1    0.000    0.000    1.252    1.252 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    1.318    1.318 openimage.py:68(openimage)
-        1    0.001    0.001    0.065    0.065 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       10    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        8    1.301    0.163    1.301    0.163 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.012    0.012    0.012    0.012 {numpy.core.multiarray.fromstring}
-
-
-0.0115 0.0139 0.2080 0.3750 0.1809     8.003 testimages\F2K_Seb_Lyso0675.edf.gz
-Mon Mar 16 12:20:20 2009    stats
-
-         841 function calls in 0.209 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.209    0.209 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.002    0.002    0.003    0.003 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.206    0.206 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        8    0.002    0.000    0.189    0.024 gzip.py:208(read)
-       17    0.001    0.000    0.187    0.011 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       16    0.032    0.002    0.044    0.003 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.208    0.208 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {apply}
-       16    0.125    0.008    0.125    0.008 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       43    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-       90    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      180    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       68    0.018    0.000    0.018    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      180    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       91    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.014    0.014    0.014    0.014 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-       18    0.011    0.001    0.011    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0174 0.0233 0.0333                   8.008 testimages\GE_aSI_detector_image_1529
-Mon Mar 16 12:20:20 2009    stats
-
-         475 function calls in 0.039 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.039    0.039 <string>:1(<module>)
-        1    0.001    0.001    0.002    0.002 GEimage.py:183(_readheader)
-        1    0.000    0.000    0.038    0.038 GEimage.py:196(read)
-        1    0.000    0.000    0.000    0.000 GEimage.py:211(_makeframename)
-        1    0.001    0.001    0.035    0.035 GEimage.py:217(_readframe)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.038    0.038 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-      130    0.000    0.000    0.001    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      157    0.022    0.000    0.022    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-      130    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        1    0.012    0.012    0.012    0.012 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0047 0.0043 1.0045 1.3290 0.9405     8.008 testimages\GE_aSI_detector_image_1529.bz2
-Mon Mar 16 12:20:24 2009    stats
-
-         477 function calls in 1.016 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    1.016    1.016 <string>:1(<module>)
-        1    0.001    0.001    0.002    0.002 GEimage.py:183(_readheader)
-        1    0.000    0.000    0.970    0.970 GEimage.py:196(read)
-        1    0.000    0.000    0.000    0.000 GEimage.py:211(_makeframename)
-        1    0.001    0.001    0.028    0.028 GEimage.py:217(_readframe)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.001    0.000    0.939    0.470 fabioimage.py:284(_open)
-        2    0.001    0.000    0.938    0.469 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    1.015    1.015 openimage.py:68(openimage)
-        1    0.001    0.001    0.045    0.045 openimage.py:94(_openimage)
-      130    0.001    0.000    0.001    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.982    0.491    0.982    0.491 {method 'read' of 'bz2.BZ2File' objects}
-      156    0.015    0.000    0.015    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-      130    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        1    0.012    0.012    0.012    0.012 {numpy.core.multiarray.fromstring}
-
-
-0.0079 0.0071 0.2199 0.3750 0.1330     8.008 testimages\GE_aSI_detector_image_1529.gz
-Mon Mar 16 12:20:26 2009    stats
-
-         683 function calls in 0.166 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.166    0.166 <string>:1(<module>)
-        1    0.001    0.001    0.002    0.002 GEimage.py:183(_readheader)
-        1    0.000    0.000    0.165    0.165 GEimage.py:196(read)
-        1    0.000    0.000    0.000    0.000 GEimage.py:211(_makeframename)
-        1    0.001    0.001    0.026    0.026 GEimage.py:217(_readframe)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.136    0.068 fabioimage.py:284(_open)
-        2    0.000    0.000    0.136    0.068 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.001    0.001    0.136    0.068 gzip.py:208(read)
-       14    0.000    0.000    0.135    0.010 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.033    0.003    0.044    0.003 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.166    0.166 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-      132    0.001    0.000    0.001    0.000 struct.py:77(unpack)
-       13    0.082    0.006    0.082    0.006 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       27    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      156    0.014    0.000    0.014    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       77    0.008    0.000    0.008    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-      132    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        1    0.011    0.011    0.011    0.011 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-       15    0.011    0.001    0.011    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0017 0.0007 0.8216                   0.256 testimages\b191_1_9_1.img
-Mon Mar 16 12:20:28 2009    stats
-
-         128 function calls in 0.758 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.758    0.758 <string>:1(<module>)
-        1    0.743    0.743    0.757    0.757 OXDimage.py:145(read)
-        1    0.001    0.001    0.001    0.001 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.758    0.758 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        2    0.003    0.002    0.003    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.002    0.002    0.002    0.002 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        8    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.001    0.000    0.001    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        1    0.006    0.006    0.006    0.006 {range}
-
-
-0.0179 0.0004 0.7436 0.0930 0.0380     0.256 testimages\b191_1_9_1.img.bz2
-Mon Mar 16 12:20:28 2009    stats
-
-         128 function calls in 0.773 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.773    0.773 <string>:1(<module>)
-        1    0.657    0.657    0.740    0.740 OXDimage.py:145(read)
-        1    0.001    0.001    0.066    0.066 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.001 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.773    0.773 openimage.py:68(openimage)
-        1    0.000    0.000    0.032    0.032 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        2    0.003    0.001    0.003    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.002    0.002    0.002    0.002 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        8    0.037    0.005    0.037    0.005 {method 'read' of 'bz2.BZ2File' objects}
-        6    0.034    0.006    0.034    0.006 {method 'readline' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.031    0.010    0.031    0.010 {method 'seek' of 'bz2.BZ2File' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.006    0.006    0.006    0.006 {range}
-
-
-0.0141 0.0004 0.6509 0.0620 0.0056     0.256 testimages\b191_1_9_1.img.gz
-Mon Mar 16 12:20:30 2009    stats
-
-         394 function calls in 0.660 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.660    0.660 <string>:1(<module>)
-        1    0.642    0.642    0.659    0.659 OXDimage.py:145(read)
-        1    0.001    0.001    0.002    0.002 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       22    0.001    0.000    0.006    0.000 gzip.py:208(read)
-        6    0.000    0.000    0.000    0.000 gzip.py:240(_unread)
-       11    0.000    0.000    0.006    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       11    0.001    0.000    0.001    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        6    0.000    0.000    0.001    0.000 gzip.py:391(readline)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.660    0.660 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       11    0.003    0.000    0.003    0.000 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       45    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-       10    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.002    0.001    0.002    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.002    0.002    0.002    0.002 {method 'copy' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       19    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       70    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       46    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        4    0.006    0.001    0.006    0.001 {range}
-       14    0.000    0.000    0.000    0.000 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0024 0.0024 0.0064                   1.005 testimages\b191_1_9_1_uncompressed.img
-Mon Mar 16 12:20:30 2009    stats
-
-         120 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        1    0.000    0.000    0.006    0.006 OXDimage.py:145(read)
-        1    0.000    0.000    0.000    0.000 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        1    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.002    0.002    0.002    0.002 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        7    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.001    0.000    0.001    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0021 0.0005 0.1782 0.1870 0.1076     1.005 testimages\b191_1_9_1_uncompressed.img.bz2
-Mon Mar 16 12:20:32 2009    stats
-
-         120 function calls in 0.178 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.178    0.178 <string>:1(<module>)
-        1    0.000    0.000    0.142    0.142 OXDimage.py:145(read)
-        1    0.000    0.000    0.071    0.071 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.178    0.178 openimage.py:68(openimage)
-        1    0.001    0.001    0.036    0.036 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        1    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.001    0.001    0.001    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        9    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        7    0.102    0.015    0.102    0.015 {method 'read' of 'bz2.BZ2File' objects}
-        6    0.035    0.006    0.035    0.006 {method 'readline' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        3    0.036    0.012    0.036    0.012 {method 'seek' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.002    0.000    0.002    0.000 {numpy.core.multiarray.fromstring}
-
-
-0.0030 0.0009 0.0189 0.0790 0.0152     1.005 testimages\b191_1_9_1_uncompressed.img.gz
-Mon Mar 16 12:20:32 2009    stats
-
-         429 function calls in 0.020 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.020    0.020 <string>:1(<module>)
-        1    0.000    0.000    0.019    0.019 OXDimage.py:145(read)
-        1    0.000    0.000    0.001    0.001 OXDimage.py:27(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       19    0.000    0.000    0.015    0.001 gzip.py:208(read)
-        6    0.000    0.000    0.000    0.000 gzip.py:240(_unread)
-       13    0.000    0.000    0.015    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.004    0.000    0.005    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        1    0.000    0.000    0.000    0.000 gzip.py:363(rewind)
-        3    0.000    0.000    0.000    0.000 gzip.py:374(seek)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        6    0.000    0.000    0.001    0.000 gzip.py:391(readline)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.020    0.020 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       13    0.008    0.001    0.008    0.001 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        8    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.001    0.001    0.001    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       17    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      111    0.001    0.000    0.001    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       16    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-       45    0.001    0.000    0.001    0.000 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-        3    0.000    0.000    0.000    0.000 {range}
-       16    0.001    0.000    0.001    0.000 {zlib.crc32}
-        3    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0164 0.0176 0.2444                   8.004 testimages\corkcont2_H_0089.mccd
-Mon Mar 16 12:20:32 2009    stats
-
-         1304 function calls in 0.142 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.006    0.006    0.142    0.142 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.003    0.003 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.049    0.049 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.050    0.050 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.028    0.028 ImageFile.py:115(load)
-        1    0.000    0.000    0.012    0.012 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.002    0.001 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.001    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.136    0.136 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.023    0.023 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.006    0.006    0.135    0.135 tifimage.py:58(read)
-        1    0.012    0.012    0.012    0.012 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      128    0.005    0.000    0.005    0.000 {built-in method decode}
-      256    0.025    0.000    0.025    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       34    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-      267    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.023    0.011    0.023    0.011 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      152    0.010    0.000    0.010    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        2    0.028    0.014    0.028    0.014 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0034 0.0042 0.7445 0.8120 0.5688     8.004 testimages\corkcont2_H_0089.mccd.bz2
-Mon Mar 16 12:20:34 2009    stats
-
-         1306 function calls in 0.748 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.006    0.006    0.748    0.748 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.003    0.003 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.049    0.049 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.040    0.040 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.018    0.018 ImageFile.py:115(load)
-        1    0.000    0.000    0.009    0.009 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.002    0.001 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.001    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.001    0.000    0.566    0.283 fabioimage.py:284(_open)
-        2    0.001    0.000    0.565    0.282 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.742    0.742 openimage.py:68(openimage)
-        1    0.001    0.001    0.050    0.050 openimage.py:94(_openimage)
-        1    0.000    0.000    0.023    0.023 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.007    0.007    0.691    0.691 tifimage.py:58(read)
-        1    0.009    0.009    0.009    0.009 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.023    0.023    0.023    0.023 {built-in method convert}
-      128    0.004    0.000    0.004    0.000 {built-in method decode}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       34    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-      267    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.023    0.012    0.023    0.012 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.613    0.307    0.613    0.307 {method 'read' of 'bz2.BZ2File' objects}
-      151    0.003    0.000    0.003    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        2    0.027    0.014    0.027    0.014 {numpy.core.multiarray.fromstring}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0045 0.0051 0.2546 0.3130 0.1230     8.004 testimages\corkcont2_H_0089.mccd.gz
-Mon Mar 16 12:20:36 2009    stats
-
-         1494 function calls in 0.258 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.005    0.005    0.258    0.258 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.048    0.048 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.041    0.041 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.001    0.001    0.019    0.019 ImageFile.py:115(load)
-        1    0.000    0.000    0.010    0.010 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.122    0.061 fabioimage.py:284(_open)
-        2    0.000    0.000    0.122    0.061 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.001    0.001    0.122    0.061 gzip.py:208(read)
-       13    0.000    0.000    0.120    0.009 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       12    0.040    0.003    0.051    0.004 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.253    0.253 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        1    0.000    0.000    0.023    0.023 string.py:306(join)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.009    0.009    0.250    0.250 tifimage.py:58(read)
-        1    0.010    0.010    0.010    0.010 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      128    0.005    0.000    0.005    0.000 {built-in method decode}
-       12    0.065    0.005    0.065    0.005 {built-in method decompress}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       59    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-      267    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.023    0.012    0.023    0.012 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      151    0.003    0.000    0.003    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       66    0.003    0.000    0.003    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       14    0.000    0.000    0.000    0.000 {min}
-        2    0.029    0.015    0.029    0.015 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      192    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       14    0.011    0.001    0.011    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0100 0.0089 0.8983                   3.471 testimages\example.mar2300
-Mon Mar 16 12:20:36 2009    stats
-
-         231 function calls in 0.517 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.517    0.517 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:137(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:74(__init__)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.515    0.515 mar345image.py:19(read)
-        1    0.001    0.001    0.001    0.001 mar345image.py:47(_readheader)
-        2    0.000    0.000    0.000    0.000 ntpath.py:116(splitdrive)
-        2    0.000    0.000    0.000    0.000 ntpath.py:158(split)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.517    0.517 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 re.py:186(compile)
-        1    0.000    0.000    0.000    0.000 re.py:227(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       15    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       17    0.000    0.000    0.000    0.000 {len}
-        1    0.514    0.514    0.514    0.514 {mar345_io.unpack}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        4    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-       15    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        2    0.001    0.000    0.001    0.000 {open}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0077 0.0079 1.4724 1.0150 0.7642     3.471 testimages\example.mar2300.bz2
-Mon Mar 16 12:20:42 2009    stats
-
-         236 function calls in 1.510 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    1.510    1.510 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:137(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:74(__init__)
-        2    0.000    0.000    0.837    0.418 fabioimage.py:284(_open)
-        2    0.001    0.001    0.836    0.418 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    1.383    1.383 mar345image.py:19(read)
-        1    0.000    0.000    0.001    0.001 mar345image.py:47(_readheader)
-        2    0.000    0.000    0.000    0.000 ntpath.py:116(splitdrive)
-        2    0.000    0.000    0.000    0.000 ntpath.py:158(split)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    1.510    1.510 openimage.py:68(openimage)
-        1    0.001    0.001    0.127    0.127 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 re.py:186(compile)
-        1    0.000    0.000    0.000    0.000 re.py:227(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       15    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       17    0.000    0.000    0.000    0.000 {len}
-        1    0.545    0.545    0.545    0.545 {mar345_io.unpack}
-        4    0.000    0.000    0.000    0.000 {max}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.886    0.443    0.886    0.443 {method 'read' of 'bz2.BZ2File' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-       15    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        1    0.074    0.074    0.074    0.074 {method 'write' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {nt.tmpfile}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0076 0.0078 0.6351 0.1410 0.0660     3.471 testimages\example.mar2300.gz
-Mon Mar 16 12:20:44 2009    stats
-
-         419 function calls in 0.649 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.649    0.649 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:121(numstem)
-        1    0.000    0.000    0.000    0.000 __init__.py:137(deconstruct_filename)
-        1    0.000    0.000    0.000    0.000 __init__.py:74(__init__)
-        2    0.000    0.000    0.127    0.064 fabioimage.py:284(_open)
-        2    0.000    0.000    0.127    0.064 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.001    0.000    0.066    0.033 gzip.py:208(read)
-       14    0.000    0.000    0.065    0.005 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       13    0.012    0.001    0.017    0.001 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        1    0.000    0.000    0.648    0.648 mar345image.py:19(read)
-        1    0.001    0.001    0.001    0.001 mar345image.py:47(_readheader)
-        2    0.000    0.000    0.000    0.000 ntpath.py:116(splitdrive)
-        2    0.000    0.000    0.000    0.000 ntpath.py:158(split)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.649    0.649 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 re.py:186(compile)
-        1    0.000    0.000    0.000    0.000 re.py:227(_compile)
-        1    0.000    0.000    0.000    0.000 string.py:246(strip)
-       17    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-       13    0.040    0.003    0.040    0.003 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method groups}
-        1    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        1    0.519    0.519    0.519    0.519 {mar345_io.unpack}
-        2    0.000    0.000    0.000    0.000 {max}
-        3    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        3    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       58    0.008    0.000    0.008    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       67    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
-       17    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       11    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
-        1    0.060    0.060    0.060    0.060 {method 'write' of 'file' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {nt.tmpfile}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       15    0.005    0.000    0.005    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0046 0.0005 0.0012                   0.215 testimages\face.edf
-Mon Mar 16 12:20:44 2009    stats
-
-         119 function calls in 0.001 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.001    0.001 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.001    0.001 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.001    0.001 openimage.py:68(openimage)
-        1    0.000    0.000    0.000    0.000 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        7    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-
-
-0.0016 0.0002 0.0045 0.0620 0.0036     0.215 testimages\face.edf.bz2
-Mon Mar 16 12:20:44 2009    stats
-
-         119 function calls in 0.005 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.005    0.005 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.004    0.004 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.005    0.005 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        7    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.004    0.001    0.004    0.001 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-
-
-0.0003 0.0003 0.0038 0.0620 0.0030     0.215 testimages\face.edf.gz
-Mon Mar 16 12:20:44 2009    stats
-
-         208 function calls in 0.005 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.005    0.005 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.001    0.001 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.003    0.003 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        4    0.000    0.000    0.003    0.001 gzip.py:208(read)
-        4    0.000    0.000    0.003    0.001 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        3    0.000    0.000    0.001    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.005    0.005 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {apply}
-        3    0.002    0.001    0.002    0.001 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       14    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       31    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        3    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        5    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0007 0.0004 0.0054                   0.008 testimages\face.msk
-Mon Mar 16 12:20:44 2009    stats
-
-         82 function calls in 0.006 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.006    0.006 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.002    0.002    0.005    0.005 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.006    0.006 openimage.py:68(openimage)
-        1    0.000    0.000    0.000    0.000 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.003    0.003    0.003    0.003 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0003 0.0002 0.0057 0.0630 0.0012     0.008 testimages\face.msk.bz2
-Mon Mar 16 12:20:44 2009    stats
-
-         82 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.001    0.001    0.006    0.006 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.001    0.000    0.001    0.000 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.003    0.003    0.003    0.003 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0004 0.0004 0.0056 0.0630 0.0010     0.008 testimages\face.msk.gz
-Mon Mar 16 12:20:44 2009    stats
-
-         167 function calls in 0.007 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.007    0.007 <string>:1(<module>)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.001    0.001    0.005    0.005 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        3    0.000    0.000    0.001    0.000 gzip.py:208(read)
-        3    0.000    0.000    0.001    0.000 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        3    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.007    0.007 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        3    0.000    0.000    0.000    0.000 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        9    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        9    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       31    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        3    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.003    0.003    0.003    0.003 {numpy.core.multiarray.where}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {range}
-        5    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.1201 0.0069 0.0154                   4.001 testimages\fit2d_click.edf
-Mon Mar 16 12:20:44 2009    stats
-
-         119 function calls in 0.025 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.025    0.025 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.000    0.000 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.023    0.023 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.025    0.025 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        7    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.006    0.001    0.006    0.001 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.016    0.016    0.016    0.016 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.0030 0.0005 0.0681 0.1250 0.0623     4.001 testimages\fit2d_click.edf.bz2
-Mon Mar 16 12:20:44 2009    stats
-
-         119 function calls in 0.067 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.067    0.067 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.002    0.002 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.062    0.062 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.065    0.065 openimage.py:68(openimage)
-        1    0.000    0.000    0.003    0.003 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        7    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-        4    0.057    0.014    0.057    0.014 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.006    0.006    0.006    0.006 {numpy.core.multiarray.fromstring}
-
-
-0.0008 0.0004 0.0632 0.1410 0.0437     4.001 testimages\fit2d_click.edf.gz
-Mon Mar 16 12:20:44 2009    stats
-
-         238 function calls in 0.063 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.063    0.063 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:1321(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:959(debug)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.000    0.000    0.000    0.000 edfimage.py:153(swap_needed)
-        1    0.000    0.000    0.011    0.011 edfimage.py:55(_readheader)
-        1    0.000    0.000    0.055    0.055 edfimage.py:87(read)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        4    0.004    0.001    0.052    0.013 gzip.py:208(read)
-        6    0.000    0.000    0.048    0.008 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        5    0.015    0.003    0.023    0.005 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.062    0.062 openimage.py:68(openimage)
-        1    0.000    0.000    0.007    0.007 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.000    0.000    0.000    0.000 {apply}
-        5    0.024    0.005    0.024    0.005 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       18    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        7    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        8    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       12    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
-       47    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        7    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        5    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.008    0.008    0.008    0.008 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        7    0.007    0.001    0.007    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0009 0.0003 0.0767                   0.126 testimages\fit2d_click.msk
-Mon Mar 16 12:20:44 2009    stats
-
-         82 function calls in 0.081 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.081    0.081 <string>:1(<module>)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.014    0.014    0.080    0.080 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.081    0.081 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        9    0.007    0.001    0.007    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.057    0.057    0.057    0.057 {numpy.core.multiarray.where}
-        1    0.002    0.002    0.002    0.002 {numpy.core.multiarray.zeros}
-        2    0.001    0.000    0.001    0.000 {open}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0017 0.0003 0.0777 0.0620 0.0022     0.126 testimages\fit2d_click.msk.bz2
-Mon Mar 16 12:20:44 2009    stats
-
-         82 function calls in 0.080 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.080    0.080 <string>:1(<module>)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fit2dmaskimage.py:19(_readheader)
-        1    0.012    0.012    0.079    0.079 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.080    0.080 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        2    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-        9    0.007    0.001    0.007    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        3    0.001    0.000    0.001    0.000 {method 'read' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.057    0.057    0.057    0.057 {numpy.core.multiarray.where}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.zeros}
-        1    0.000    0.000    0.000    0.000 {range}
-
-
-0.0021 0.0003 0.0750 0.0630 0.0020     0.126 testimages\fit2d_click.msk.gz
-Mon Mar 16 12:20:46 2009    stats
-
-         189 function calls in 0.077 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.077    0.077 <string>:1(<module>)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.001    0.001 fit2dmaskimage.py:19(_readheader)
-        1    0.012    0.012    0.075    0.075 fit2dmaskimage.py:36(read)
-        2    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        6    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        3    0.000    0.000    0.003    0.001 gzip.py:208(read)
-        2    0.000    0.000    0.002    0.001 gzip.py:245(_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        2    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        2    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        4    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 numeric.py:1461(ones)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.077    0.077 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        4    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        2    0.001    0.001    0.001    0.001 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-        8    0.000    0.000    0.000    0.000 {len}
-        2    0.000    0.000    0.000    0.000 {max}
-        9    0.006    0.001    0.006    0.001 {method 'astype' of 'numpy.ndarray' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fill' of 'numpy.ndarray' objects}
-       12    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       46    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'tostring' of 'numpy.ndarray' objects}
-        4    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.array}
-        1    0.000    0.000    0.000    0.000 {numpy.core.multiarray.empty}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        1    0.054    0.054    0.054    0.054 {numpy.core.multiarray.where}
-        1    0.001    0.001    0.001    0.001 {numpy.core.multiarray.zeros}
-        2    0.000    0.000    0.000    0.000 {open}
-        4    0.000    0.000    0.000    0.000 {ord}
-        1    0.000    0.000    0.000    0.000 {range}
-        4    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0377 0.0507 0.2064                  18.000 testimages\mb_LP_1_001.img
-Mon Mar 16 12:20:46 2009    stats
-
-         183 function calls in 0.210 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.210    0.210 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    0.204    0.204 adscimage.py:25(read)
-        1    0.000    0.000    0.074    0.074 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.003    0.003    0.208    0.208 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       20    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.060    0.060    0.060    0.060 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.040    0.020    0.040    0.020 {method 'read' of 'file' objects}
-       19    0.074    0.004    0.074    0.004 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.027    0.027    0.027    0.027 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.1270 0.0125 4.6505 3.4060 2.6507    18.000 testimages\mb_LP_1_001.img.bz2
-Mon Mar 16 12:21:00 2009    stats
-
-         183 function calls in 4.413 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    4.413    4.413 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.002    0.002    4.356    4.356 adscimage.py:25(read)
-        1    0.000    0.000    1.657    1.657 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.001    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.002    0.002    4.411    4.411 openimage.py:68(openimage)
-        1    0.001    0.001    0.054    0.054 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       20    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.051    0.051    0.051    0.051 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.001    0.001    0.001    0.001 {method 'close' of 'bz2.BZ2File' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    2.626    1.313    2.626    1.313 {method 'read' of 'bz2.BZ2File' objects}
-       19    1.657    0.087    1.657    0.087 {method 'readline' of 'bz2.BZ2File' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.045    0.045    0.045    0.045 {method 'seek' of 'bz2.BZ2File' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.026    0.026    0.026    0.026 {numpy.core.multiarray.fromstring}
-
-
-0.1923 0.0227 0.5979 1.0000 0.3347    18.000 testimages\mb_LP_1_001.img.gz
-Mon Mar 16 12:21:04 2009    stats
-
-         1121 function calls in 0.607 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.607    0.607 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    0.601    0.601 adscimage.py:25(read)
-        1    0.001    0.001    0.179    0.179 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        3    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        3    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        3    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        3    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-       37    0.019    0.001    0.485    0.013 gzip.py:208(read)
-       19    0.005    0.000    0.005    0.000 gzip.py:240(_unread)
-       75    0.002    0.000    0.466    0.006 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       74    0.104    0.001    0.138    0.002 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        3    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        3    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-       19    0.005    0.000    0.178    0.009 gzip.py:391(readline)
-        3    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        3    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.002    0.002    0.605    0.605 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 {apply}
-       74    0.295    0.004    0.295    0.004 {built-in method decompress}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-      237    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-       51    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.056    0.056    0.056    0.056 {method 'byteswap' of 'numpy.ndarray' objects}
-        3    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-       38    0.005    0.000    0.005    0.000 {method 'find' of 'str' objects}
-       20    0.007    0.000    0.007    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      136    0.030    0.000    0.030    0.000 {method 'read' of 'file' objects}
-        9    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        8    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       90    0.000    0.000    0.000    0.000 {min}
-        1    0.034    0.034    0.034    0.034 {numpy.core.multiarray.fromstring}
-        3    0.001    0.000    0.001    0.000 {open}
-        6    0.000    0.000    0.000    0.000 {ord}
-       77    0.034    0.000    0.034    0.000 {zlib.crc32}
-        3    0.001    0.000    0.001    0.000 {zlib.decompressobj}
-
-
-0.7949 0.0430 0.1928                  18.000 testimages\mb_LP_1_002.img
-Mon Mar 16 12:21:04 2009    stats
-
-         183 function calls in 0.208 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.002    0.002    0.208    0.208 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 __init__.py:1158(getEffectiveLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1313(info)
-        1    0.000    0.000    0.000    0.000 __init__.py:973(info)
-        1    0.003    0.003    0.203    0.203 adscimage.py:25(read)
-        1    0.000    0.000    0.084    0.084 adscimage.py:71(_readheader)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.002    0.002    0.206    0.206 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 {apply}
-        2    0.000    0.000    0.000    0.000 {getattr}
-        4    0.000    0.000    0.000    0.000 {hasattr}
-        1    0.000    0.000    0.000    0.000 {isinstance}
-       20    0.000    0.000    0.000    0.000 {len}
-        4    0.000    0.000    0.000    0.000 {max}
-       17    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.052    0.052    0.052    0.052 {method 'byteswap' of 'numpy.ndarray' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.037    0.018    0.037    0.018 {method 'read' of 'file' objects}
-       19    0.084    0.004    0.084    0.004 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-       17    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-       51    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        1    0.027    0.027    0.027    0.027 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-
-
-0.2505 0.0227 0.2163                   8.067 testimages\oPPA_5grains_0001.tif
-Mon Mar 16 12:21:06 2009    stats
-
-         11319 function calls in 0.221 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.004    0.004    0.223    0.223 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.019    0.019 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.003    0.000    0.006    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.055    0.055 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.110    0.110 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.002    0.000 Image.py:91(isTupleType)
-        1    0.008    0.008    0.088    0.088 ImageFile.py:115(load)
-        1    0.000    0.000    0.010    0.010 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.018    0.005 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.010    0.001 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.003    0.003    0.009    0.009 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.018    0.018 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.018    0.018 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.005    0.005    0.017    0.017 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.005    0.000    0.007    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.219    0.219 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.030    0.030 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.005    0.005    0.218    0.218 tifimage.py:58(read)
-        1    0.010    0.010    0.010    0.010 {_imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      512    0.039    0.000    0.039    0.000 {built-in method decode}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      524    0.001    0.000    0.001    0.000 {isinstance}
-      551    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.030    0.015    0.030    0.015 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      541    0.019    0.000    0.019    0.000 {method 'read' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      528    0.002    0.000    0.002    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.001    0.001 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-     1024    0.001    0.000    0.001    0.000 {min}
-        2    0.030    0.015    0.030    0.015 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-     2244    0.002    0.000    0.002    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0164 0.0005 0.7279 0.8430 0.5297     8.067 testimages\oPPA_5grains_0001.tif.bz2
-Mon Mar 16 12:21:08 2009    stats
-
-         11321 function calls in 0.759 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.004    0.004    0.765    0.765 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.010    0.010 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.003    0.000    0.007    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.053    0.053 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.121    0.121 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.002    0.000 Image.py:91(isTupleType)
-        1    0.008    0.008    0.099    0.099 ImageFile.py:115(load)
-        1    0.000    0.000    0.007    0.007 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.010    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.006    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.005    0.005 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.010    0.010 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.009    0.009 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.008    0.008 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.003    0.000    0.004    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.001    0.000    0.528    0.264 fabioimage.py:284(_open)
-        2    0.001    0.000    0.527    0.264 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.761    0.761 openimage.py:68(openimage)
-        1    0.001    0.001    0.015    0.015 openimage.py:94(_openimage)
-        1    0.000    0.000    0.028    0.028 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.006    0.006    0.746    0.746 tifimage.py:58(read)
-        1    0.007    0.007    0.007    0.007 {_imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      512    0.040    0.000    0.040    0.000 {built-in method decode}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      524    0.001    0.000    0.001    0.000 {isinstance}
-      551    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.028    0.014    0.028    0.014 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.540    0.270    0.540    0.270 {method 'read' of 'bz2.BZ2File' objects}
-      540    0.028    0.000    0.028    0.000 {method 'read' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      528    0.001    0.000    0.001    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.001    0.001 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-     1024    0.001    0.000    0.001    0.000 {min}
-        2    0.028    0.014    0.028    0.014 {numpy.core.multiarray.fromstring}
-     2244    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0125 0.0006 0.2968 0.2810 0.0891     8.067 testimages\oPPA_5grains_0001.tif.gz
-Mon Mar 16 12:21:10 2009    stats
-
-         11469 function calls in 0.283 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.006    0.006    0.284    0.284 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.010    0.010 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-      512    0.003    0.000    0.006    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.001    0.001    0.049    0.049 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.096    0.096 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-      513    0.001    0.000    0.002    0.000 Image.py:91(isTupleType)
-        1    0.007    0.007    0.074    0.074 ImageFile.py:115(load)
-        1    0.000    0.000    0.007    0.007 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-      511    0.001    0.000    0.001    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.010    0.002 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.006    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.001    0.001    0.005    0.005 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.010    0.010 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.010    0.010 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.002    0.002    0.009    0.009 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-      536    0.003    0.000    0.004    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.082    0.041 fabioimage.py:284(_open)
-        2    0.000    0.000    0.082    0.041 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.001    0.001    0.084    0.042 gzip.py:208(read)
-        8    0.000    0.000    0.083    0.010 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        7    0.032    0.005    0.045    0.006 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.001    0.001    0.278    0.278 openimage.py:68(openimage)
-        1    0.000    0.000    0.004    0.004 openimage.py:94(_openimage)
-        1    0.000    0.000    0.024    0.024 string.py:306(join)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.008    0.008    0.273    0.273 tifimage.py:58(read)
-        1    0.007    0.007    0.007    0.007 {_imaging.new}
-      513    0.001    0.000    0.001    0.000 {apply}
-        1    0.022    0.022    0.022    0.022 {built-in method convert}
-      512    0.039    0.000    0.039    0.000 {built-in method decode}
-        7    0.037    0.005    0.037    0.005 {built-in method decompress}
-      256    0.024    0.000    0.024    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method match}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        3    0.000    0.000    0.000    0.000 {chr}
-      511    0.000    0.000    0.000    0.000 {cmp}
-      515    0.001    0.000    0.001    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-      524    0.001    0.000    0.001    0.000 {isinstance}
-      566    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-     1290    0.001    0.000    0.001    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.024    0.012    0.024    0.012 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-      540    0.010    0.000    0.010    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       61    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'readline' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-      528    0.001    0.000    0.001    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.001    0.001 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-     1031    0.001    0.000    0.001    0.000 {min}
-        2    0.028    0.014    0.028    0.014 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-     2248    0.001    0.000    0.001    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-        9    0.012    0.001    0.012    0.001 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0576 0.0076 0.0391                   2.004 testimages\somedata_0001.mccd
-Mon Mar 16 12:21:10 2009    stats
-
-         728 function calls in 0.045 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.045    0.045 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.003    0.003 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.016    0.016 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.016    0.016 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.008    0.008 ImageFile.py:115(load)
-        1    0.000    0.000    0.002    0.002 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.002    0.001 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.001    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.044    0.044 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.002    0.002    0.043    0.043 tifimage.py:58(read)
-        1    0.002    0.002    0.002    0.002 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.008    0.008    0.008    0.008 {built-in method convert}
-       32    0.002    0.000    0.002    0.000 {built-in method decode}
-       64    0.010    0.000    0.010    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       34    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-       75    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.006    0.003    0.006    0.003 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       56    0.004    0.000    0.004    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        2    0.006    0.003    0.006    0.003 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0265 0.0011 0.2741 0.3130 0.1863     2.004 testimages\somedata_0001.mccd.bz2
-Mon Mar 16 12:21:10 2009    stats
-
-         730 function calls in 0.280 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.280    0.280 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.003    0.003 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.012    0.012 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.009    0.009 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.004    0.004 ImageFile.py:115(load)
-        1    0.000    0.000    0.002    0.002 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.002    0.001 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.001    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.001    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.002    0.002 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.001    0.000    0.189    0.095 fabioimage.py:284(_open)
-        2    0.001    0.000    0.189    0.094 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.279    0.279 openimage.py:68(openimage)
-        1    0.001    0.001    0.059    0.059 openimage.py:94(_openimage)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.002    0.002    0.220    0.220 tifimage.py:58(read)
-        1    0.002    0.002    0.002    0.002 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.005    0.005    0.005    0.005 {built-in method convert}
-       32    0.001    0.000    0.001    0.000 {built-in method decode}
-       64    0.006    0.000    0.006    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       34    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-       75    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.006    0.003    0.006    0.003 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.246    0.123    0.246    0.123 {method 'read' of 'bz2.BZ2File' objects}
-       55    0.001    0.000    0.001    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        2    0.000    0.000    0.000    0.000 {min}
-        2    0.006    0.003    0.006    0.003 {numpy.core.multiarray.fromstring}
-      188    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-
-
-0.0307 0.0016 0.0655 0.1090 0.0349     2.004 testimages\somedata_0001.mccd.gz
-Mon Mar 16 12:21:12 2009    stats
-
-         904 function calls in 0.067 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.001    0.001    0.067    0.067 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        1    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.012    0.012 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.008    0.008 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        2    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.004    0.004 ImageFile.py:115(load)
-        1    0.000    0.000    0.001    0.001 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        2    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        4    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       31    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       25    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.034    0.017 fabioimage.py:284(_open)
-        2    0.000    0.000    0.034    0.017 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        3    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.035    0.017 gzip.py:208(read)
-       12    0.000    0.000    0.034    0.003 gzip.py:245(_read)
-        1    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-       11    0.007    0.001    0.010    0.001 gzip.py:295(_add_read_data)
-        1    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        2    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.001    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.066    0.066 openimage.py:68(openimage)
-        1    0.000    0.000    0.002    0.002 openimage.py:94(_openimage)
-        1    0.000    0.000    0.006    0.006 string.py:306(join)
-        2    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.002    0.002    0.064    0.064 tifimage.py:58(read)
-        1    0.001    0.001    0.001    0.001 {_imaging.new}
-        2    0.000    0.000    0.000    0.000 {apply}
-        1    0.005    0.005    0.005    0.005 {built-in method convert}
-       32    0.001    0.000    0.001    0.000 {built-in method decode}
-       11    0.021    0.002    0.021    0.002 {built-in method decompress}
-       64    0.006    0.000    0.006    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        4    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       13    0.000    0.000    0.000    0.000 {isinstance}
-       57    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-       75    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.006    0.003    0.006    0.003 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       55    0.001    0.000    0.001    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       59    0.002    0.000    0.002    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       11    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        7    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        2    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-       13    0.000    0.000    0.000    0.000 {min}
-        2    0.006    0.003    0.006    0.003 {numpy.core.multiarray.fromstring}
-        2    0.001    0.000    0.001    0.000 {open}
-      192    0.000    0.000    0.000    0.000 {ord}
-       11    0.000    0.000    0.000    0.000 {range}
-       13    0.003    0.000    0.003    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-
-0.0031 0.0008 0.0030                   0.023 testimages\testmap1_0002.tif
-Mon Mar 16 12:21:12 2009    stats
-
-         595 function calls in 0.003 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.002    0.002 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.003    0.003 openimage.py:68(openimage)
-        1    0.000    0.000    0.000    0.000 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.000    0.000    0.002    0.002 tifimage.py:58(read)
-        1    0.000    0.000    0.000    0.000 {_imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       14    0.000    0.000    0.000    0.000 {isinstance}
-       38    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       29    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-      204    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0018 0.0003 0.0024 0.0470 0.0008     0.023 testimages\testmap1_0002.tif.bz2
-Mon Mar 16 12:21:12 2009    stats
-
-         597 function calls in 0.003 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        4    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.003    0.003 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.000    0.000    0.003    0.003 tifimage.py:58(read)
-        1    0.000    0.000    0.000    0.000 {_imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       14    0.000    0.000    0.000    0.000 {isinstance}
-       38    0.000    0.000    0.000    0.000 {len}
-        5    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'read' of 'bz2.BZ2File' objects}
-       28    0.000    0.000    0.000    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        4    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-      204    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-
-
-0.0004 0.0003 0.0023 0.0470 0.0012     0.023 testimages\testmap1_0002.tif.gz
-Mon Mar 16 12:21:12 2009    stats
-
-         713 function calls in 0.004 CPU seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.004    0.004 <string>:1(<module>)
-        1    0.000    0.000    0.000    0.000 ArgImagePlugin.py:401(_accept)
-        1    0.000    0.000    0.000    0.000 BmpImagePlugin.py:55(_accept)
-        1    0.000    0.000    0.000    0.000 BufrStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 CurImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:32(i32)
-        1    0.000    0.000    0.000    0.000 DcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:118(_accept)
-        1    0.000    0.000    0.000    0.000 EpsImagePlugin.py:29(i32)
-        1    0.000    0.000    0.000    0.000 FitsStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:25(i16)
-        1    0.000    0.000    0.000    0.000 FliImagePlugin.py:34(_accept)
-        1    0.000    0.000    0.000    0.000 FpxImagePlugin.py:46(_accept)
-        2    0.000    0.000    0.000    0.000 GbrImagePlugin.py:18(i32)
-        1    0.000    0.000    0.000    0.000 GbrImagePlugin.py:21(_accept)
-        1    0.000    0.000    0.000    0.000 GifImagePlugin.py:47(_accept)
-        1    0.000    0.000    0.000    0.000 GribStubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 Hdf5StubImagePlugin.py:28(_accept)
-        1    0.000    0.000    0.000    0.000 IcnsImagePlugin.py:204(<lambda>)
-        1    0.000    0.000    0.000    0.000 IcoImagePlugin.py:37(_accept)
-        1    0.000    0.000    0.000    0.000 ImImagePlugin.py:110(_open)
-        1    0.000    0.000    0.001    0.001 Image.py:1879(open)
-        1    0.000    0.000    0.000    0.000 Image.py:280(preinit)
-        2    0.000    0.000    0.000    0.000 Image.py:361(_getdecoder)
-        1    0.000    0.000    0.000    0.000 Image.py:377(_getencoder)
-        5    0.000    0.000    0.000    0.000 Image.py:439(__init__)
-        1    0.000    0.000    0.000    0.000 Image.py:448(_new)
-        4    0.000    0.000    0.000    0.000 Image.py:484(__getattr__)
-        1    0.000    0.000    0.000    0.000 Image.py:503(tostring)
-        3    0.000    0.000    0.000    0.000 Image.py:587(load)
-        1    0.000    0.000    0.000    0.000 Image.py:638(convert)
-        5    0.000    0.000    0.000    0.000 Image.py:82(isStringType)
-        3    0.000    0.000    0.000    0.000 Image.py:91(isTupleType)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:115(load)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:219(load_prepare)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:228(load_end)
-        1    0.000    0.000    0.000    0.000 ImageFile.py:49(_tilesort)
-        4    0.000    0.000    0.000    0.000 ImageFile.py:508(_safe_read)
-        4    0.000    0.000    0.001    0.000 ImageFile.py:63(__init__)
-        1    0.000    0.000    0.000    0.000 ImtImagePlugin.py:37(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:110(_open)
-        1    0.000    0.000    0.000    0.000 IptcImagePlugin.py:62(field)
-        1    0.000    0.000    0.000    0.000 JpegImagePlugin.py:231(_accept)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:28(i32)
-        1    0.000    0.000    0.000    0.000 McIdasImagePlugin.py:31(_accept)
-        1    0.000    0.000    0.000    0.000 PcxImagePlugin.py:35(_accept)
-        1    0.000    0.000    0.000    0.000 PngImagePlugin.py:261(_accept)
-        1    0.000    0.000    0.000    0.000 PpmImagePlugin.py:40(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:157(_accept)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:168(__init__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:180(reset)
-       14    0.000    0.000    0.000    0.000 TiffImagePlugin.py:199(__getitem__)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:209(get)
-       11    0.000    0.000    0.000    0.000 TiffImagePlugin.py:215(getscalar)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:230(has_key)
-        8    0.000    0.000    0.000    0.000 TiffImagePlugin.py:255(load_short)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:262(load_long)
-        2    0.000    0.000    0.000    0.000 TiffImagePlugin.py:269(load_rational)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:295(load)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:445(_open)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:477(_seek)
-        1    0.000    0.000    0.000    0.000 TiffImagePlugin.py:497(_decoder)
-        1    0.000    0.000    0.001    0.001 TiffImagePlugin.py:521(_setup)
-       37    0.000    0.000    0.000    0.000 TiffImagePlugin.py:64(il16)
-       26    0.000    0.000    0.000    0.000 TiffImagePlugin.py:66(il32)
-        1    0.000    0.000    0.000    0.000 fabioimage.py:212(resetvals)
-        2    0.000    0.000    0.001    0.001 fabioimage.py:284(_open)
-        2    0.000    0.000    0.001    0.000 fabioimage.py:314(_compressed_stream)
-        2    0.000    0.000    0.000    0.000 fabioimage.py:39(__init__)
-        1    0.000    0.000    0.000    0.000 fromnumeric.py:101(reshape)
-        2    0.000    0.000    0.000    0.000 gzip.py:157(_init_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:161(_read_gzip_header)
-        6    0.000    0.000    0.000    0.000 gzip.py:18(U32)
-        2    0.000    0.000    0.001    0.000 gzip.py:208(read)
-        3    0.000    0.000    0.001    0.000 gzip.py:245(_read)
-        2    0.000    0.000    0.000    0.000 gzip.py:27(LOWU32)
-        2    0.000    0.000    0.000    0.000 gzip.py:295(_add_read_data)
-        2    0.000    0.000    0.000    0.000 gzip.py:301(_read_eof)
-        2    0.000    0.000    0.000    0.000 gzip.py:315(close)
-        2    0.000    0.000    0.000    0.000 gzip.py:334(__del__)
-        4    0.000    0.000    0.000    0.000 gzip.py:39(read32)
-        2    0.000    0.000    0.000    0.000 gzip.py:60(__init__)
-        2    0.000    0.000    0.000    0.000 ntpath.py:183(splitext)
-        1    0.000    0.000    0.000    0.000 openimage.py:54(do_magic)
-        1    0.000    0.000    0.004    0.004 openimage.py:68(openimage)
-        1    0.000    0.000    0.001    0.001 openimage.py:94(_openimage)
-        1    0.000    0.000    0.000    0.000 string.py:306(join)
-        4    0.000    0.000    0.000    0.000 struct.py:77(unpack)
-        1    0.000    0.000    0.000    0.000 tifimage.py:34(__init__)
-        1    0.000    0.000    0.000    0.000 tifimage.py:39(_readheader)
-        1    0.000    0.000    0.003    0.003 tifimage.py:58(read)
-        1    0.000    0.000    0.000    0.000 {_imaging.new}
-        3    0.000    0.000    0.000    0.000 {apply}
-        1    0.000    0.000    0.000    0.000 {built-in method convert}
-        2    0.000    0.000    0.000    0.000 {built-in method decode}
-        2    0.000    0.000    0.000    0.000 {built-in method decompress}
-        1    0.000    0.000    0.000    0.000 {built-in method encode}
-        2    0.000    0.000    0.000    0.000 {built-in method pixel_access}
-        1    0.000    0.000    0.000    0.000 {built-in method setimage}
-        1    0.000    0.000    0.000    0.000 {cStringIO.StringIO}
-        1    0.000    0.000    0.000    0.000 {cmp}
-        5    0.000    0.000    0.000    0.000 {getattr}
-        5    0.000    0.000    0.000    0.000 {hasattr}
-       14    0.000    0.000    0.000    0.000 {isinstance}
-       44    0.000    0.000    0.000    0.000 {len}
-        3    0.000    0.000    0.000    0.000 {max}
-       15    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
-        2    0.000    0.000    0.000    0.000 {method 'close' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        3    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        5    0.000    0.000    0.000    0.000 {method 'has_key' of 'dict' objects}
-        2    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
-       28    0.000    0.000    0.000    0.000 {method 'read' of 'cStringIO.StringI' objects}
-       50    0.000    0.000    0.000    0.000 {method 'read' of 'file' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-       16    0.000    0.000    0.000    0.000 {method 'seek' of 'cStringIO.StringI' objects}
-        9    0.000    0.000    0.000    0.000 {method 'seek' of 'file' objects}
-        1    0.000    0.000    0.000    0.000 {method 'sort' of 'list' objects}
-        5    0.000    0.000    0.000    0.000 {method 'tell' of 'cStringIO.StringI' objects}
-        6    0.000    0.000    0.000    0.000 {method 'tell' of 'file' objects}
-        4    0.000    0.000    0.000    0.000 {method 'unpack' of 'Struct' objects}
-        6    0.000    0.000    0.000    0.000 {min}
-        2    0.000    0.000    0.000    0.000 {numpy.core.multiarray.fromstring}
-        2    0.000    0.000    0.000    0.000 {open}
-      208    0.000    0.000    0.000    0.000 {ord}
-       12    0.000    0.000    0.000    0.000 {range}
-        4    0.000    0.000    0.000    0.000 {zlib.crc32}
-        2    0.000    0.000    0.000    0.000 {zlib.decompressobj}
-
-

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/python-fabio.git



More information about the debian-science-commits mailing list